45 votes

Qu'est-ce qui constitue un beau code ?

Pour tous ceux qui se passionnent pour le développement de logiciels, je suis d'avis qu'il faut toujours s'efforcer d'écrire du beau code, mais.., existe-t-il une définition claire de ce qu'est vraiment un beau code ?

D'une part, je considère qu'un code élégant est un code facile à lire qui résout simultanément le problème posé de la manière la plus efficace possible. Il semble que la lisibilité du code se fasse souvent au prix, par exemple, de la création de plusieurs nouvelles variables afin de représenter les données avec lesquelles vous travaillez. En fonction de votre plate-forme (ou de votre degré d'exigence), la création de ces variables peut être considérée comme une perte de performance.

D'un autre côté, cela soulève une autre perspective que j'ai souvent vue, qui définit le beau code comme un code qui résout succinctement et efficacement le problème donné. On peut toutefois faire valoir qu'un code succinct peut se faire au détriment de la lisibilité et donc, en fin de compte, nuire à l'attrait du code.

Personnellement, je veux pouvoir écrire un code expressif, efficace et élégant, mais je me retrouve souvent à me demander si l'ajout de quelques variables supplémentaires pour améliorer la lisibilité du code trois mois plus tard améliore (ou pollue) réellement le code.

75voto

Louis Brandy Points 4844

Un beau code est comme une obscénité. On le reconnaît quand on le voit. Voici des choses qui pourraient être belles :

  1. Les abstractions s'emboîtent parfaitement. Il y a très peu de fuites. Le code se lit comme de l'anglais. Les structures de données et/ou les objets correspondent parfaitement au problème. Tout entre et sort des procédures et des fonctions avec un minimum d'effort.
  2. Vous pouvez utiliser une belle API basée sur l'intuition. Vous savez presque ce qu'il faut taper sans même le chercher grâce à la structure interne de l'API.
  3. Chaque ligne de code est élégante en ce sens qu'elle effectue des opérations apparemment compliquées avec une simplicité étonnante et de manière très succincte, tout en paraissant à l'épreuve des balles (en ne supposant rien).

24voto

Shog9 Points 82052

L'éditeur se tient ouvert et vide, un vaste champ de blanc entaché seulement par le mince curseur clignotant. C'est magnifique.

Le programmeur est assis tranquillement, immobile à l'exception du doigt d'une main qui tape sur le bureau. Dans son esprit, les idées tourbillonnent et se tordent, les conceptions se développent à partir d'elles, composées comme par leur propre volonté, et sont aussi rapidement déchirées. Quelque chose commence à prendre forme derrière ses yeux mi-clos. C'est beau.

Une pression sur une touche. Et une autre. Comme le tintement d'un marteau sur les clous d'un cercueil. Le merveilleux visage est gravé dans un code, des symboles maladroits remplaçant les concepts, des gribouillages grossiers sur les murs de la grotte. La beauté est absente.

Un lecteur regarde, des glyphes de pierre tombale stimulent l'imagination, une fenêtre s'ouvre sur l'esprit du programmeur. Et le code est magnifique.

20voto

sparkes Points 10192

L'art est subjectif :)

J'aime le code qui est

  • succinct
  • bien présenté
  • lisible et auto-documenté
  • me fait sourire quand tout ce qui précède devient apparent

Le code intelligent est souvent laid, alors quand le code intelligent est beau, c'est là que se cachent les chefs-d'œuvre.

17voto

Eli Courtwright Points 53071

O'Reilly a publié un livre intitulé "Beautiful Code" dans lequel chaque chapitre a été écrit par un programmeur différent. Chaque auteur explique ce que signifie pour lui un code magnifique et donne de nombreux exemples. Certains des auteurs sont assez célèbres ; Matz (le créateur de Ruby) a écrit l'un des chapitres.

Vous pouvez trouver le livre ici : http://oreilly.com/catalog/9780596510046/

8voto

Jon Clegg Points 661

J'aime penser au code comme à des diamants, dans les diamants il y a quatre C :

  • Carats
  • Clarté
  • Couleur
  • Coupez

Pour Carats, il s'agit de la PETITE taille du code, moins de lignes, c'est moins à lire, à maintenir et c'est directement lié au nombre de bogues.

Clarté : le texte est-il facile et simple à lire, y a-t-il plus de trois niveaux d'indentation, les fonctions sont-elles claires et compactes ?

La couleur ou le style, cela peut être très subjectif. Mais il y a des choses qui sont agréables à l'œil, comme l'espace blanc.

Cut est la vue d'ensemble, comment le système entier a été mis en place, et comme les diamants peuvent être plus importants que le reste.

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