Re: [detente] Organiser des noms

Nicolas Delsaux <[email protected]>
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
2010/11/13 Hervé Agnoux <[email protected]>
>
> Bonjour,
>
> Je m'aventure à proposer des améliorations au langage, que j'espère
> intégrables pour Java 9 :-) Comme c'est le week-end, j'ai le droit :-)

La semaine aussi, on a le droit de rêver :-)
>
> J'ai souvent été géné par des déclarations du genre :
>
> public class ResourceException extends Exception
>
Personnellement, pour les exceptions, j'ai arrêté (enfin j'essaye)
pour remplacer ça par un nom de classe hyper-descriptif. Ainsi, je
n'ai jamais de ResourceException lancé dans 36c as, mais plutôt une
classe d'exception par erreur possible (avec une hiérarchie de fou) et
un nom du genre

TheFileYouChooseHasNotTheExpectedFormat

En fait, j'essaye d'utiliser les leçons des frameworks de BDD (façon
easyb et autres) pour mes exceptions. Et jusqu'à présent, tout le
monde est content.

>
> Ou bien par :
>
> File fileDatas;
> InputStream ioDatas;
> Document docDatas;
>
> ... et j'en passe ! À quoi servent "file", "io", ou "doc", puisqu'on voit
> parfaitement qu'il y a un datas qui prend plusieurs formes, formes
> parfaitement connues que sont File, InputStream et Document ?

Ah ça, faut bien reconnaître que c'est chiant comme la pluie à écrire.
>
> Au fond, on pourrait parfaitement écrire :
>
> File datas;
> InputStream datas;
>
> datas = new File("toto");
> datas = new InputStream(datas);
>
> Certes ce n'est pas conforme, mais un compilateur étudié pourrait parfaitement
> s'y reconnaitre.
>
> On va me dire que ça va créer des ambiguités, etc. Mais par un jeu de préfixes
> ou suffixes, on peut lever ces ambiguités. Ex :
>
> int taille = File.datas.getSize();
>
> C'est ce qu'on fait naturellement en nommant les données (le "fileDatas"),
> mais je me dis que ça serait mieux si c'était intégré au langage. Ça serait
> plus facile de suivre le flux d'un traitement à la mode Camel, de réaliser un
> binding, etc.

En fait, dans certains langages, on peut faire ça à l'aide de
Type:variable. Ou "variable as Type" (ça c'est en groovy, par
exemple). D'aucuns me diront que dans ce cas, on fait un simple cast,
n'empêche, ça pourrait donner une syntaxe sympa (j'aime
particulièrement le ":")
>
> Qu'en pensez-vous ? Connaissez-vous des langages qui proposent déjà ce genre
> de choses ?

Personnellement, je suis pour et contre.
Pour, parce que c'est pénible d'avoir vingt facettes du même objet
appelées différement.
Contre, parce qu'au niveau lisibilité, c'est infernal.
>
> Cordialement.
>



--
Nicolas Delsaux
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.