Re: [detente] Organiser des noms
Laurent Forêt <[email protected]>
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <[email protected]> |
2010/11/15 Nicolas Delsaux <[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. > Je suis contre pour les mêmes raisons. > > > > Cordialement. > > > > > > -- > Nicolas Delsaux >