Skip to content

Instantly share code, notes, and snippets.

@Bubblesphere
Forked from wojteklu/clean_code.md
Last active September 18, 2018 03:42
Show Gist options
  • Save Bubblesphere/33a4d9cce6985c9b2a8854acca2cf46a to your computer and use it in GitHub Desktop.
Save Bubblesphere/33a4d9cce6985c9b2a8854acca2cf46a to your computer and use it in GitHub Desktop.
Summary of 'Clean code' by Robert C. Martin

Le code est propre s'il peut être compris facilement par tous les membres de l'équipe. Le code propre peut être lu et amélioré par un développeur autre que son auteur d'origine. Avec la compréhensibilité vient la lisibilité, la capacité de changement, l'extensibilité et la maintenabilité.


Règles générales

  1. Suivez les conventions standard.
  2. Reste simple bête. Plus simple, c'est toujours mieux. Réduisez la complexité autant que possible.
  3. Règle des scouts. Laissez le camping plus propre que vous l'avez trouvé.
  4. Toujours trouver la cause première. Recherchez toujours la cause fondamentale d'un problème.

Règles de conception

  1. Conservez les données configurables à des niveaux élevés.
  2. Préférer le polymorphisme à if / else ou switch / case.
  3. Séparez le code multi-thread.
  4. Empêcher la configurabilité excessive.
  5. Utiliser l'injection de dépendance.
  6. Suivez la loi de Déméter. Une classe ne devrait connaître que ses dépendances directes.

Conseils de compréhension

  1. Soyez cohérent. Si vous faites quelque chose d'une certaine manière, faites toutes les choses similaires de la même manière.
  2. Utiliser des variables explicatives.
  3. Encapsuler les conditions aux limites. Les conditions aux limites sont difficiles à suivre. Mettez le traitement pour eux en un seul endroit.
  4. Préférer les objets de valeur dédiés au type primitif.
  5. Évitez la dépendance logique. N'écrivez pas de méthodes qui fonctionnent correctement en fonction de quelque chose d'autre dans la même classe.
  6. Évitez les conditionnels négatifs.

Règles de noms

  1. Choisissez des noms descriptifs et non ambigus.
  2. Faites une distinction significative.
  3. Utilisez des noms prononcés.
  4. Utilisez des noms consultables.
  5. Remplacez les nombres magiques par des constantes nommées.
  6. Évitez les encodages. N'ajoutez pas de préfixes ou tapez des informations.

Règles des méthodes

  1. petite.
  2. Font une chose.
  3. Utilisez des noms descriptifs.
  4. Préférez moins d’arguments.
  5. Ne pas avoir d'effets secondaires.
  6. N'utilisez pas de flag. Séparer la méthode en plusieurs méthodes indépendantes qui peuvent être appelées à partir du client sans le flag.

Règles de commentaires

  1. Essayez toujours de vous expliquer dans le code et non dans les commentaires.
  2. Ne soyez pas redondant.
  3. N'ajoutez pas de bruit au fichier
  4. Un commentaire a sa propre ligne.
  5. Ne pas commenter le code. Il suffit de supprimer.
  6. Utiliser comme explication d'intention.
  7. Utiliser comme clarification du code.
  8. Utilisez comme avertissement des conséquences.

Structure du code source

  1. Séparer les concepts verticalement.
  2. Le code associé doit apparaître verticalement proche.
  3. Déclarez les variables proches de leur utilisation.
  4. Les fonctions dépendantes doivent être proches.
  5. Les fonctions similaires doivent être proches.
  6. Placez les fonctions vers le bas.
  7. Gardez les lignes courtes.
  8. N'utilisez pas l'alignement horizontal.
  9. Utilisez des espaces blancs pour associer des choses apparentées et dissociez-les faiblement liées.
  10. Ne pas casser l'indentation.

Objets et structures de données

  1. Cacher la structure interne.
  2. Préférer les structures de données.
  3. Évitez les structures hybrides (demi-objet et demi-données).
  4. Devrait être petit.
  5. Font une chose.
  6. Petit nombre de variables d'instance.
  7. La classe de base ne devrait rien savoir de leurs dérivés.
  8. Mieux vaut avoir plusieurs fonctions que de passer du code dans une fonction pour sélectionner un comportement.
  9. Préférer les méthodes non statiques aux méthodes statiques.

Tests

  1. Une affirmation par test.
  2. lisible.
  3. rapide.
  4. Indépendant
  5. Répétable

Code odeurs

  1. Rigidité. Le logiciel est difficile à changer. Un petit changement entraîne une cascade de modifications ultérieures.
  2. Fragilité. Le logiciel se brise dans de nombreux endroits en raison d'un seul changement.
  3. Immobilité. Vous ne pouvez pas réutiliser des parties du code dans d'autres projets en raison des risques impliqués et des efforts importants.
  4. Complexité inutile.
  5. répétition inutile.
  6. Opacité. Le code est difficile à comprendre.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment