it-swarm.dev

Quels sont les points clés de Code Complete?

J'ai entendu beaucoup de gens mentionner Code Complete comme un livre intéressant à lire. Malheureusement, je suis tellement occupé que je n'ai pas le temps de le lire, alors quelqu'un peut-il me dire quels sont les points clés du livre?

74
Casebash

Code Complete concerne l'artisanat du logiciel; c'est un livre de niveau débutant avancé/intermédiaire, écrit pour le programmeur qui travaille, mais il serait toujours très utile pour quelqu'un qui programme depuis au moins un an.

Ainsi, les points clés de Code Complete (2e éd.) Sont bien résumés dans son chapitre 34, Themes in Software Craftsmanship. Comme paraphrasé dans mes notes:

  1. Conquérir la complexité : réduisez la charge cognitive de votre esprit via la discipline, les conventions et l'abstraction.
  2. Choisissez votre processus : soyez conscient de la qualité du début (exigences) à la fin (déploiement) et au-delà (maintenance).
  3. Écrire des programmes pour les personnes d'abord, les ordinateurs ensuite : la lisibilité du code est extrêmement importante pour la compréhensibilité, la capacité de révision, le taux d'erreur, la correction des erreurs, la modifiabilité et le temps de développement et la qualité qui en découlent.
  4. Programme dans votre langue, pas dedans : pensez à quoi? et pourquoi? avant le Comment?
  5. Concentrez votre attention à l'aide de conventions : les conventions gèrent la complexité en fournissant une structure là où elle est nécessaire, afin que la ressource ultime - votre attention - puisse être utilisée efficacement .
  6. Programme en termes de domaine problématique : travailler au plus haut niveau d'abstraction possible; le code de niveau supérieur doit décrire le problème résolu. Distinguer le niveau du système d'exploitation, le niveau du langage de programmation, les structures d'implémentation de bas niveau, les termes de domaine de problème de bas niveau et enfin, les termes de domaine de problème de haut niveau qui auraient un sens total pour l'utilisateur (non codeur).
  7. Surveillez les chutes de pierres : à mesure que la programmation fusionne l'art et la science, un bon jugement est essentiel, y compris les signes d'avertissement.
  8. Itérer, à plusieurs reprises, encore et encore : itérer les exigences, la conception, les estimations, le code, le réglage du code.
  9. Thou Shalt Render Software and Religion Asunder : soyez éclectique et disposé à expérimenter. Ne soyez pas un fanatique inflexible, cela empêche la curiosité et l'apprentissage. Allez au-delà d'avoir juste un marteau dans votre boîte à outils.

Mais les plats à emporter les plus importants se trouvent au Chapitre 33, Caractère personnel : une fois que vous cherchez consciemment à vous améliorer en tant que codeur, vous pouvez et vous le souhaiterez. Le moyen le plus rapide de le faire est d'adopter les attitudes des maîtres codeurs (humilité, curiosité, honnêteté intellectuelle, discipline, créativité), tout en pratiquant leurs habitudes (de nombreuses bonnes habitudes sont répertoriées dans le livre, par exemple en choisissant de bons noms de variables/valeurs).

En outre, le livre indique clairement que l'écart entre la moyenne et l'excellent dans le logiciel est immense ; ce seul fait devrait conduire le codeur consciencieux à s'améliorer.

C'est le court terme; la version longue est dans le livre. :) Je peux aussi vous envoyer mes notes pas si longues et pas si courtes si vous voulez plus de détails. Mais le livre est certainement de l'argent et du temps bien dépensé, même si le style d'écriture est parfois fatigant.

Au-delà du code complet, je recommande fortement The Pragmatic Programmer . C'est pour les programmeurs de niveau intermédiaire, bien écrit et un excellent mélange de conseils de haut, moyen et bas niveau.

86
limist

C'est un livre intermédiaire, un pot-pourri de bonnes pratiques de développement logiciel.

Si vous êtes un programmeur débutant, vous ne comprendrez pas beaucoup de matériel et si vous êtes expérimenté, le livre ne fera que confirmer ce que vous savez déjà. Par conséquent, le livre pourrait être plus utile aux programmeurs intermédiaires, qui ont déjà un peu de connaissances en programmation, mais ont besoin d'un livre de bonnes pratiques pour tout lier ensemble.

Plusieurs pages sont consacrées à la mise en forme des blocs de code et aux avantages relatifs de chaque approche. Personnellement, je pense que le grand débat sur l'endroit où mettre vos accolades est terminé. (ou est-ce?)

18
Robert Harvey