Résumé du livre : Code terminé
"Code Complete" est un guide complet pour les développeurs de logiciels qui se concentre sur l'amélioration de la qualité et de la maintenabilité du code.
Cet article fournit un résumé, et j'élabore sur certains points en fonction de mon expérience.
Conception et planification
Le livre souligne l'importance d'une planification et d'une conception approfondies avant d'écrire du code. Cela comprend la compréhension des exigences, la création de conceptions détaillées et la prise en compte des problèmes potentiels afin de minimiser les problèmes lors de la mise en œuvre.
Un développeur crée un document de conception détaillé pour une nouvelle fonctionnalité, décrivant l'architecture globale, les classes et les méthodes, ainsi que la définition des interactions entre les composants.
Bien que la conception en amont soit essentielle, même dans les équipes Agiles, attention au piège de la Big Upfront Design and Analysis Paralysis .
Ecrire du code propre et maintenable
McConnell préconise l'écriture d'un code propre et explicite avec des noms de variables significatifs, une indentation appropriée et un formatage cohérent, ce qui facilite la compréhension et la maintenance par les autres.
Par exemple, au lieu d'utiliser des noms de variables cryptés comme aou x, les développeurs choisissent des noms descriptifs comme userInputet totalAmountpour améliorer la lisibilité du code.
Commentaires de code et documentation
Le livre souligne l'importance de fournir des commentaires clairs et concis dans le code, ainsi que de créer et de maintenir une documentation appropriée pour aider les futurs développeurs à comprendre le système et son objectif.
Un développeur ajoute des commentaires en ligne pour expliquer la logique complexe et maintient une documentation à jour décrivant l'architecture globale du système et les modules individuels.
N'abusez pas de ce conseil. L'auto-documenté est toujours mieux que les commentaires. Utilisez des commentaires pour le "pourquoi" et du code auto-documenté pour documenter le "comment".
Modularisation et encapsulation
McConnell recommande de concevoir du code avec des modules bien définis et d'encapsuler les détails d'implémentation, ce qui facilite la maintenance, les tests et la réutilisation.
Un développeur crée un module séparé pour gérer les opérations de base de données, encapsuler les détails spécifiques à la base de données et fournir une API claire pour les autres parties de l'application à utiliser, comme un Repository . De cette façon, vous pouvez modifier les implémentations de base de données et même utiliser une implémentation qui enregistre simplement les lignes dans un tableau en mémoire pour les tests unitaires.
Refonte du code
Le livre souligne l'importance d'examiner et de refactoriser régulièrement le code pour améliorer sa structure, sa lisibilité et ses performances, ce qui conduit finalement à des logiciels de meilleure qualité.
Un développeur identifie une section de code dont les performances sont médiocres et la refactorise en optimisant les algorithmes et en réduisant les calculs inutiles, ce qui améliore l'efficacité.
Veuillez noter que la refactorisation modifie la structure du code sans modifier son comportement. Si vous modifiez le comportement du code tout en modifiant la structure, ce n'est PAS une refactorisation. Les tests sont le meilleur moyen de s'assurer que le comportement n'est pas modifié, seulement la structure.
Gestion des erreurs et programmation défensive
McConnell souligne l'importance d'anticiper les erreurs potentielles et de mettre en œuvre une gestion appropriée des erreurs, ainsi que d'utiliser des techniques de programmation défensives pour créer des logiciels plus robustes et plus fiables.
Un développeur valide l'entrée de l'utilisateur pour éviter tout comportement inattendu, utilise des blocs try-catch pour gérer les exceptions et ajoute des contrôles pour les valeurs nulles ou non valides dans tout le code.
Test et débogage
Le livre couvre diverses techniques de test, y compris les tests unitaires, les tests d'intégration et les tests système, ainsi que des stratégies de débogage efficaces pour identifier et résoudre les problèmes.
Un développeur écrit des tests unitaires complets pour des modèles de domaine métier individuels, en s'assurant qu'ils fonctionnent correctement et peuvent être intégrés en toute sécurité avec le reste du système.
Revues de code et collaboration
McConnell insiste sur l'importance des revues de code et de la collaboration entre les membres de l'équipe pour partager les connaissances, identifier les problèmes potentiels et améliorer la qualité globale du logiciel.
Une équipe de développement effectue des revues de code régulières, où les membres fournissent des commentaires constructifs sur le travail de chacun, ce qui conduit à une meilleure qualité de code et à une équipe plus cohésive.
Cependant, l'examen pourrait arriver trop tard, et l'un des développeurs pourrait avoir construit du code sur une hypothèse qui va dans la mauvaise direction. La programmation en binôme de la tâche du début à la fin sur un écran et une tâche permet aux commentaires de se produire plus tôt et aux deux développeurs de construire un modèle mental du problème afin qu'ils puissent mieux performer au fil du temps.
En appliquant les principes et les meilleures pratiques décrits dans "Code Complete", les développeurs de logiciels peuvent améliorer leurs compétences en matière de codage, créer des logiciels plus maintenables et plus fiables, et finalement fournir des produits de meilleure qualité.
Merci d'avoir lu. Si vous avez des commentaires, contactez-moi sur Twitter , LinkedIn ou Github .
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































