Je n'ai jamais compris quel est le moyen idéal de nommer un projet, un package, une classe. Je le fais de manière aléatoire qui n'a pas l'air professionnel du tout. Je sais que le nom de la classe devrait commencer par un alphabet de capital. Mais ce que je n'ai pas vraiment de problème avec consiste à trouver les noms appropriés et d'aspect professionnel. Permet de considérer cet exemple. Si j'écris un programme pour la série Fibonacci, je donne des noms comme ceci:
project name = fibonacci_project package name = org.fib.code1 class name = Code1
6 Réponses :
Pour commencer, c'est Fibonacci . P>
voir Conventions de nommage Java de Sun pour certains détails sur le paquet / noms de classe. P>
En dehors de cela, la règle générale est - tous vos noms devraient être descriptifs: p>
+1 Utiliser les conventions de nommage du soleil, ils sont la norme de facto que presque tout le monde semble utiliser pour Java.
+1 - En plus d'être la norme DEFACTO, les règles du soleil aident également à éviter différents groupes d'utiliser accidentellement les mêmes FQNS pour différentes classes.
Votre nom de projet pourrait être "Fibonacci Solver".
Votre colis pourrait commencer par "com.silverkid.fibsolver"
Votre classe principale serait "fibonaccisolver.java" p>
Il y a quelques conseils sur la dénomination:
longclassname code> li>
- Sun a toujours préféré des noms longs qui expliquent clairement la signification de la classe (pensent à
defaultTableModel code>). Code1 Code> n'est définitivement pas correct, peut-être fibonaccicalc code> ou quelque chose qui contient fibonacci code> conviendrait mieux. Li>
- préprend
abstrait code> si c'est une classe abstraite li>
- APPendez
Implez code> s'il s'agit d'une implémentation d'une interface particulière li>
- Les noms de packages doivent commencer par org, com, elle, etc. (généralement, il s'agissait d'une URL ascendante du référentiel de projet ou du Nick du codeur) Li>
- Vous devez diviser vos paquets en fonction de la fonctionnalité, votre exemple est vraiment simple, il n'ya donc pas un moyen de le faire. Li>
ol>
pense à quelque chose de plus complexe dans lequel vous avez: p> xxx pré> p>
4 n'est approprié que dans des cas limités. Généralement, là où il n'y a qu'une interface et généralement une seule implémentation. S'il existe plusieurs implémentations, le nom doit représenter cette implémentation spécifique, pas l'interface.
Je suis maintenant en désaccord avec 3 et 4: ces noms supplémentaires n'ajoutent aucune information pertinente sur la mise en œuvre / la classe. Suivi: groups.google.com/forum/#! Topic / Clean-Code-Discussion / ...
Désolé pour le nécropost. Et si mon site Web est (par exemple) Fourinchknife.github.IO? Serais-je ... / SRC / MAIN / JAVA / IO / GITUB / FOURINCHKNIFE /
Exemples: P>
Nom du projet - FibonacciseriesProducteur
Nom du paquet - com.lazywithclass.utils, com.lazywithclass.Entrypoint
Nom de classe - Fibonaccilogic.java, fibonacciprinter.java
P>
Voici comment je l'aurais fait, peut-être pendant le développement, cela changera un peu, la convention vraiment importante est la convention de nommage pour les noms de classe, voir si ces étapes sont d'une aide: p>
voir ici pour quelques exemples. P >
J'aime le schéma de dénomination du projet Eclipse, où un nom de projet est simplement le nom du forfait principal que le projet fournit, par ex. Nom du projet: org.eclipse.emf.core ou org.eclipse.emf.common p>
Votre nom de classe doit toujours commencer par majuscule. Le nom de votre colis doit toujours commencer par des minuscules. et votre nom de méthode à l'intérieur de la classe devrait également commencer par les minuscules. P>