Robert C. Martin propose dans le premier chapitre de son livre «Clean Code» plusieurs définitions de «code propre» de différents experts en logiciels bien connus. Comment définissez-vous du code propre?Définition de «code propre»
Répondre
- Facile à comprendre.
- Facile à modifier.
- Facile à tester.
- Fonctionne correctement (suggestion de Kent Beck - très à droite).
Ce sont les choses qui sont importantes pour moi.
Le code dans lequel les différents modules ou classes ont des contrats clairement définis est un bon début.
Code Je n'ai pas peur de modifier.
Code qui ne se casse pas à plusieurs endroits lorsque vous apportez un seul changement apparemment insignifiant. Il est également facile de suivre le chemin de contrôle du programme.
Code ne nécessitant aucun commentaire pour être facilement compris.
Je dirais une utilisation minimale des commentaires, plutôt que rien du tout: (1) il n'est pas impossible d'avoir un algorithme contre-intuitif; un commentaire peut être utilisé pour rendre l'utilisateur conscient (2) des commentaires peuvent être utilisés pour décomposer le code en sections logiques afin que le lecteur ait immédiatement une vue d'ensemble. –
Merci pour ce commentaire. Quant à décomposer votre code en sections logiques avec des commentaires, je ne suis pas du tout d'accord. Si vous ressentez le besoin de casser votre code, utilisez des méthodes avec des noms corrects. En ce qui concerne les algorithmes contre-intuitifs, si vous faites ce qui précède, je doute que vous ayez besoin de commentaires pour décrire ce qui se passe. Si vous en avez encore besoin, documenter votre solution est probablement plus utile que d'ajouter quelques commentaires à votre code. –
Code Haskell sans point. (Pas vraiment, cependant.)
Code qui se lit aussi proche d'un langage humain que possible. Je veux dire à tous les niveaux: de la syntaxe utilisée, la convention de nommage et l'alignement jusqu'aux algorithmes utilisés, la qualité des commentaires et la complexité de la distribution du code entre les modules.
Simplest exemple convention de nommage:
if (filename.contains("blah"))
contre
if (S_OK == strFN.find(0, "blah"))
partie de celui-ci dépend de l'environnement/API utilisées, mais la majeure partie est bien sûr la responsabilité du développeur
Le code réutilisable est également important. Donc, non seulement la qualité du code est importante, mais où mettez-vous. Exemple, la logique métier dans un contrôleur est un code inutile
- 1. Définition de chaque cellule dans son propre groupe
- 2. code propre pour les E/S asynchrones
- 3. Comment obtenir le handle de module de mon propre code?
- 4. Appel de mon propre code d'événement et code d'événement personnalisé dans C#
- 5. Devrais-je utiliser DuplicateKeyException dans mon propre code non-LINQ?
- 6. asp.net-mvc où dois-je mettre mon propre code
- 7. Définition de la propriété d'affichage dans le code
- 8. Utilisation de classes de base et remplacement de méthodes pour écrire du code plus propre
- 9. Définition des données ContentPlaceHolder via le code ASP.NET
- 10. Définition d'une image pour un UIButton dans le code
- 11. Désactivation de JIT et contrôle du flux de code dans MSIL (propre VM)
- 12. Comment lancez-vous votre propre code à côté de la boucle d'événement de Tkinter?
- 13. Problème créer ma propre extension HtmlHelper
- 14. Création de votre propre HRESULT?
- 15. obtenir le nom de classe variable de type int statique avec typeid (* cela) .name pour sa propre définition - C++
- 16. Quelle est la meilleure façon d'isoler le code C «sale» du code propre lors de la compilation?
- 17. Définition de Page.User.Identity.Name
- 18. Définition des propriétés de profil dans asp.net
- 19. Comment démarrer avec l'implémentation de mon propre code VGP pour le développement d'OpenGL ES sur iPhone?
- 20. vitesse de codage python et plus propre
- 21. Définition de classes dans les fichiers Java
- 22. OpenSSL vérifier certificat de propre CA
- 23. Mon propre tableheader?
- 24. Créer son propre codage
- 25. La fenêtre de définition de code de Visual Studio 2005 s'est arrêtée
- 26. Rouler mon propre __repr__
- 27. développer propre WORKFLOW
- 28. Doctrine - postgres propre fonction
- 29. Définition dynamique de la hauteur d'un DIV
- 30. Struct avec un pointeur vers son propre type dans ctypes
Il devrait également fonctionner correctement. Sinon, cela me semble être une bonne définition. –
Bon point, je l'ai ajouté à la réponse. – Ree