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 ?

15voto

bruceatk Points 4226

Je programme depuis 28 ans et je trouve qu'il est difficile de répondre à cette question. Pour moi, un bon code est un ensemble complet. Le code est proprement écrit, avec des noms de variables et de méthodes significatifs. Il comporte des commentaires bien placés qui expliquent l'intention du code et ne se contente pas de régurgiter le code que vous pouvez déjà lire. Le code fait ce qu'il est censé faire de manière efficace, sans gaspiller de ressources. Il doit également être écrit dans un souci de maintenabilité.

L'essentiel, c'est qu'il n'a pas la même signification pour tout le monde. Ce que je pourrais qualifier de bon code, quelqu'un d'autre pourrait le détester. Un bon code aura des caractéristiques communes que je pense avoir identifiées ci-dessus.

La meilleure chose que vous puissiez faire est de vous exposer au code. Regardez le code des autres. Les projets Open Source sont une bonne source pour cela. Vous trouverez du bon code et du mauvais code. Plus vous le regarderez, plus vous saurez reconnaître ce que vous considérez comme du bon et du mauvais code.

En fin de compte, vous serez votre propre juge. Lorsque vous trouverez des styles et des techniques qui vous plaisent, adoptez-les. Avec le temps, vous créerez votre propre style, qui évoluera avec le temps. Il n'y a personne ici qui puisse dire d'un coup de baguette magique ce qui est bon et ce qui est mauvais.

11voto

Scott Langham Points 17447

Lire le livre Code Complete. Il explique beaucoup d'idées sur la façon de structurer le code et les raisons de le faire. Sa lecture devrait vous permettre d'acquérir l'expérience nécessaire pour distinguer le bon du mauvais.

http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1229267173&sr=8-1

8voto

Sarah Jamie Lewis Points 3244

Ayant moi-même programmé pendant près de 10 ans et ayant travaillé avec d'autres personnes, je peux affirmer sans parti pris que il n'y a pas de différence entre le code d'un bon programmeur et celui d'un programmeur moyen

Tous les programmeurs ont un niveau de compétence :

  • Commentez correctement
  • Structurer efficacement
  • Documenter proprement

Une fois, j'ai entendu un collègue dire " J'ai toujours eu un esprit très logique et rationnel. Je pense que c'est pour cela que j'aime développer "

Voilà, à mon avis, l'esprit d'un programmeur moyen. Celui qui voit le monde en termes de règles et de logique et qui, en fin de compte, obéit à ces règles lorsqu'il conçoit et écrit un programme.

Le programmeur expert, lui, comprend les règles, mais aussi leur contexte. Cela l'amène finalement à proposer de nouvelles idées et mises en œuvre, ce qui est la marque d'un programmeur expert. La programmation est en définitive une forme d'art.

6voto

coobird Points 70356

Succinctement dit, le code d'un bon programmeur peut être lu et compris.

À mon avis, un le code d'un bon programmeur est agnostique en termes de langage ; un code bien écrit peut être lu et compris en peu de temps avec un minimum de réflexion, quel que soit le langage de programmation utilisé. Que le code soit en Java, Python, C++ ou Haskell, un code bien écrit est compréhensible par des personnes qui ne programment même pas dans ce langage particulier.

Parmi les caractéristiques d'un code facile à lire, citons les méthodes bien nommées, l'absence de "trucs" et d'"optimisations" alambiquées, les classes bien conçues, pour n'en citer que quelques-unes. Comme d'autres l'ont mentionné, le style de codage est cohérent, succinct et direct .

Par exemple, l'autre jour, j'ai jeté un coup d'oeil au code pour TinyMCE pour répondre à une des questions sur Stack Overflow. Il est écrit en JavaScript, un langage que je n'ai pratiquement jamais utilisé. Pourtant, grâce au style de codage et aux commentaires qui sont inclus, ainsi qu'à la structure du code lui-même, il était assez compréhensible et j'ai pu naviguer dans le code en quelques minutes.

Un livre qui était tout à fait révélateur pour moi en ce qui concerne la lecture du code d'un bon programmeur est Beau Code . Il contient de nombreux articles écrits par des auteurs de divers projets de programmation dans divers langages de programmation. Pourtant, lorsque je l'ai lu, j'ai pu comprendre ce que l'auteur écrivait dans son code malgré le fait que je n'ai jamais programmé dans ce langage particulier.

Peut-être que ce que nous devrions garder à l'esprit est que la programmation est aussi une question de communication, non seulement avec l'ordinateur mais aussi avec les gens. Le code d'un bon programmeur est donc presque comme un livre bien écrit, qui peut communiquer au lecteur les idées qu'il veut transmettre.

6voto

kloucks Points 1530
  • Facile à lire
  • facile à écrire
  • facile à entretenir

tout le reste est du filigrane

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