Quels sont les points clés de Code Complete? [fermé]

72

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

Casebash
la source
49
Le point clé de la page 824 de Code Complete 2 est que vous devriez réellement lire des livres de programmation!
azheglov
@azheglov: S'agit-il de 2 comme dans la 2e édition ou de 2 dans Code complet 2, qui devrait être lu après le code complet?
Chris
@Chris, presque 4 ans plus tard: c'est 2 comme dans la 2e édition, révisée et mise à jour. Et j'espère que vous l'avez lu entre temps :-)
streppel

Réponses:

83

Code Complete concerne le savoir-faire logiciel; c'est un livre de niveau débutant / intermédiaire avancé, é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 (2nd ed.) Sont bien résumés dans son chapitre 34, «Les thèmes de l’artisanat logiciel». Comme je le disais 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 : veillez à la qualité dès le début (exigences) jusqu'à la fin (déploiement) et au-delà (maintenance).
  3. Écrire des programmes pour People First, Computers Deuxièmement : la lisibilité du code est extrêmement importante pour la compréhensibilité, la capacité de contrôle, le taux d'erreur, la correction des erreurs, la modifiable, ainsi que pour le temps et la qualité de développement qui en découle.
  4. Programmez dans votre langue, pas dans celle - ci : pensez à quoi? et pourquoi? avant le comment?
  5. Concentrez votre attention sur l'aide des conventions : les conventions gèrent la complexité en fournissant la structure qui convient, de sorte que la ressource ultime - votre attention - puisse être utilisée efficacement.
  6. Programme en termes de domaine problématique : travailler au niveau d'abstraction le plus élevé possible; Le code de niveau supérieur doit décrire le problème en cours de résolution. Distinguez le niveau du système d'exploitation, le niveau de langage de programmation, les structures de mise en œuvre de bas niveau, les termes de domaine de problème de niveau inférieur et, enfin, les termes de domaine de problème de niveau supérieur qui auraient un sens total pour l'utilisateur (non-codeur).
  7. Surveillez Falling Rocks : alors que la programmation fusionne l'art et la science, un bon jugement est essentiel, y compris en tenant compte des signes avant-coureurs.
  8. Itérer, à plusieurs reprises, encore et encore : itérer les exigences, la conception, les estimations, le code, le réglage du code.
  9. Tu rends le logiciel et la religion divisés : sois éclectique et prêt à expérimenter. Ne soyez pas un fanatique inflexible, cela exclut la curiosité et l'apprentissage. Allez au-delà d'avoir juste un marteau dans votre boîte à outils.

Mais les points les plus importants à retenir se trouvent au chapitre 33, Caractère personnel : une fois que vous cherchez consciemment à vous améliorer en tant que codeur, vous pouvez et voulez. 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 énumérées dans le livre, par exemple choisir de bonnes variables / valeurs. des noms).

En outre, le livre indique clairement que l’écart entre les logiciels moyens et excellents est immense ; ce seul fait devrait amener le codeur consciencieux à s’améliorer.

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

Au-delà du code complet, je recommanderais vivement le programmeur pragmatique . C'est pour les programmeurs de niveau intermédiaire, bien écrit et un mélange de conseils de haut, moyen et bas niveau.

limiste
la source
Êtes-vous sûr qu'il s'agit d'un livre de niveau intermédiaire? Cela semble assez basique, avec des conseils du type "n'oubliez pas de supprimer les noms de variables inutilisés" - idéal pour quelqu'un de la première ou de la deuxième année du collège peut-être, mais pas pour le niveau intermédiaire (OMI).
Colen
1
@Colen: merci pour votre commentaire, j'aurais dû préciser que c'est pour les codeurs débutants / intermédiaires avancés.
Limist
10
@Colen: Bien que Code Complete traite de sujets simples mélangés à des sujets complexes, ce n'est certainement pas pour les débutants. Pratiquement tous les développeurs, quel que soit leur niveau, peuvent en tirer profit. vous seriez surpris de voir à quel point certains développeurs "expérimentés" connaissent réellement les bases, en particulier s'ils n'ont jamais programmé que dans une langue ou travaillé pour une entreprise toute leur carrière.
Steve Hill
1
Le code IMO complet est inutile, donc acheteur, méfiez-vous!
BKSpurgeon
C'est un bon résumé des thèmes du livre. Pouvez-vous s'il vous plaît partager vos notes pas si longues, pas si courtes?
Akshay Khot
18

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 particulièrement utile aux programmeurs de niveau intermédiaire, qui possèdent déjà un peu de connaissances en programmation, mais qui ont besoin d’un livre de bonnes pratiques pour le relier.

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ù placer vos accolades est terminé. (ou est-ce?)

Robert Harvey
la source
4
Votre parenthèse vous a valu un vote positif. : p
Nathan Taylor le
Où devrais-je mettre des accolades?
Petah