J'avais posé cette question sur Stackoverflow, et avant qu'il ne soit hué, j'ai reçu la suggestion utile de Péter Török que ce serait un meilleur endroit pour la poster.
Je programme en Java depuis quelques années. J'ai souvent discuté des décisions de conception avec des collègues sur la base de ce qui constitue un «bon style». En effet, il existe un certain nombre de questions / réponses sur StackOverflow qui discutent d'une conception en fonction du fait que quelque chose est de «bon style».
Mais qu'est-ce qui fait le «bon style»? Comme beaucoup de choses, je le sais quand je le vois ... mais je voulais avoir une meilleure idée que ma conscience en disant que ce design ne me semble pas bien.
À quoi pensez-vous pour produire un bon code bien conçu?
(Je reconnais que c'est quelque peu subjectif, car ce qui est du «bon style» dépendra de la tâche à accomplir). (De plus, je dois ajouter que je ne suis pas intéressé par les styles d'équipe - par exemple "nous utilisons des retraits de 2 espaces plutôt que 4" ..., et je ne suis pas intéressé par les conventions du code Java.)
Edit: merci pour toutes les bonnes réponses / commentaires jusqu'à présent. Je suis particulièrement désireux de trouver des réponses qui aideraient à codifier les choses qui font que la conscience (et peut-être l'estomac) d'un programmeur est déchirante?
la source
Réponses:
Quelques brèves remarques:
la source
Ajout à la liste de Ryan:
xFactoryFactory
classe, vous vous trompez :-)Je m'arrête là.
la source
HammerFactoryFactoryFactory
classe? ;-)Tout en appréciant les réponses des autres, j'ai pensé qu'il était juste de partager quelques-unes des choses auxquelles je pense en essayant d'écrire du bon code:
que faut-il savoir sur cette classe / méthode / variable? c'est-à-dire où cette connaissance devrait-elle vivre?
comment ce code peut-il affecter la mémoire / les performances de mon application? (Je reconnais que `` l'optimisation prématurée est la racine de tout mal ''; je ne suggère donc pas de passer beaucoup de temps à optimiser, mais plutôt une conscience lors de l'écriture initiale de mon code.)
est-il clair (à partir du code et des structures de code) ce que cela fait? (J'essaie de suivre la maxime: "Efforcez-vous de ne pas permettre aux gens de comprendre, efforcez-vous de rendre les gens incompréhensibles".)
la source
Lisez la classe String et ArrayList pour d'excellents exemples de programmation Java appropriée. Mais ils sont très concis, presque de style C, ce qui n'est pas nécessairement le meilleur pour le code maintenable avec des documents java minimaux. La pratique courante dans ma boutique n'est pas de commentaires, donc j'essaie de commenter par code en utilisant des noms var verbeux camelCase et une utilisation excessive de nouvelles lignes pour délimiter une ligne de pensée d'une autre. Je continue de débattre sur l'utilisation d'onglets pour séparer les variables de leurs valeurs. Les onglets peuvent améliorer la lisibilité, IMO, mais seulement lorsqu'ils sont effectués de manière minimale et c'est très subjectif. Je trouve que ça concerne vraiment le public. Il n'y a pas de meilleure réponse ici.
la source