91 votes

À quoi ressemble le code d'un bon programmeur ?

Je suis un programmeur amateur (j'ai commencé avec VBA pour rendre Excel plus rapide) et j'ai travaillé avec VB.NET / C#.NET et j'essaie d'apprendre ADO.NET. C'est mon premier message et je m'excuse pour la nature subjective de ma question.

Une facette de la programmation qui m'a toujours frustré est de savoir à quoi ressemble le "bon". Je ne suis pas un professionnel et j'ai donc peu de points de comparaison. Qu'est-ce qui fait un meilleur programmeur ? Est-ce que c'est :

  • Ils ont une meilleure compréhension de tous les objets / classes / méthodes dans un langage donné ?
  • Leurs programmes sont plus efficaces ?
  • La conception de leurs programmes est bien meilleure en termes de documentation, bon choix de noms pour les fonctions, etc.

En d'autres termes, si je devais regarder le code d'un programmeur professionnel, quelle serait la première chose que je remarquerais dans son code par rapport au mien ? Par exemple, je lis des livres comme "Professional ASP.NET" de Wrox Press. Les exemples de code de ce livre sont-ils de "classe mondiale" ? Est-ce le summum ? N'importe quel programmeur de haut niveau regarderait-il ce code et penserait-il que c'est du bon code ?

2voto

Yar Points 25421

Je voulais juste ajouter mes deux cents... les commentaires dans votre code -- et votre code lui-même, en général -- devraient dire ce que votre code fait, maintenant comment il le fait. Une fois que vous avez le concept de code "client", qui est le code qui appelle un autre code (l'exemple le plus simple est le code qui appelle une méthode), vous devriez toujours être plus soucieux de rendre votre code compréhensible du point de vue du "client". Au fur et à mesure que votre code se développe, vous verrez que c'est... euh, bien.

Beaucoup d'autres choses sur le bon code concernent les sauts mentaux que vous ferez (certainement, si vous faites attention)... 99% d'entre eux ont à voir avec le fait de faire un peu plus de travail maintenant pour vous épargner une tonne de travail plus tard, et la réutilisabilité. Il s'agit aussi de faire les choses correctement : j'ai presque toujours envie d'aller dans l'autre sens plutôt que d'utiliser des expressions régulières, mais chaque fois que je m'y mets, je vois pourquoi... tout le monde les utilise dans toutes les langues dans lesquelles je travaille (elles sont abstruses, mais fonctionnent et ne pourraient probablement pas être meilleures).

Pour ce qui est de savoir s'il faut regarder les livres, je dirais que certainement pas d'après mon expérience. Regardez les API, les frameworks, les conventions de code et le code des autres, et utilisez vos propres instincts, et essayez de comprendre pourquoi les choses sont comme elles sont et quelles sont leurs implications. La chose que le code dans les livres ne fait presque jamais est de prévoir l'imprévu, ce qui est le but de la vérification des erreurs. Cela ne porte ses fruits que lorsque quelqu'un vous envoie un e-mail et vous dit "J'ai eu l'erreur 321" au lieu de "Hé, l'application est cassée, yo".

Un bon code est écrit en pensant à l'avenir, tant du point de vue du programmeur que de celui de l'utilisateur.

1voto

le dorfier Points 27267

Le livre de Fowler, "Refactoring", répond assez bien à cette question. Il s'agit de l'absence de toutes les "odeurs" qu'il décrit tout au long du livre.

1voto

Darius Bacon Points 9741

Je n'ai pas vu "Professional ASP.NET", mais je serais surpris qu'il soit meilleur que "OK". Voir cette question pour des livres avec un très bon code. (Cela varie, bien sûr, mais la réponse acceptée là-bas est difficile à battre).

1voto

ididak Points 4208

Cela semble être (devrait être) une FAQ. Il y a un article de l'ACM sur le beau code récemment. L'accent semble être mis sur la facilité de lecture/compréhension. Je qualifierais cela par "facile à lire/comprendre par les experts du domaine". Les très bons programmeurs ont tendance à utiliser les meilleurs algorithmes (au lieu des algorithmes naïfs faciles à comprendre O(n^2)) pour tout problème donné, ce qui pourrait être difficile à suivre si vous n'êtes pas familier avec l'algorithme, même si le bon programmeur donne une référence à l'algorithme.

Personne n'est parfait, y compris les bons programmeurs, mais leur code a tendance à s'efforcer pour :

  1. la correction et l'efficacité au moyen d'algorithmes éprouvés (au lieu de bidouillages naïfs et ad hoc).
  2. Clarté (commentaire sur l'intention en référence aux algorithmes non triviaux)
  3. L'exhaustivité pour couvrir les éléments de base (convention de codage, versionnement, documentation, tests unitaires, etc.)
  4. Succinctivité (DRY)
  5. Robustesse (résilience aux entrées arbitraires et aux perturbations des demandes de changement)

1voto

Ray Tayek Points 4635

Je recommande également le "clean code" de l'oncle bob. mais vous pouvez aussi jeter un coup d'oeil à http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091 car je pense que cela répond un peu mieux à votre question spécifique. Un bon code doit sauter de la page et vous dire ce qu'il fait/comment il fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X