J'ai entendu quelques personnes dire que l'un des meilleurs moyens d'améliorer votre capacité de codage est de lire le code des autres et de le comprendre. Ma question, en tant que programmeur relativement nouveau, où dois-je aller pour trouver de bons exemples de code source qui ne sont pas trop loin?
Vous pouvez parcourir des projets open source sur des sites de référentiel tels que GitHub , Codeplex , Google Code , ou BitBucket . Vous trouverez des projets de niveaux de complexité différents, vous devriez donc être en mesure de trouver quelque chose qui vous intéresse à la fois et qui ne vous dépasse pas trop au début.
Une autre option est le blog de Scott Hanselman Code source hebdomadaire .
Je recommande de commencer par un projet actif et établi pour réduire les chances de commencer à lire du code qui n'a pas encore été utilisé et examiné. Idéalement, trouvez quelque chose qui vous intéresse et que vous pouvez utiliser. L'utilisation de l'application vous aidera à comprendre le code source. Un autre avantage du choix d'un projet open source est que vous pourrez peut-être apporter quelques correctifs ou fonctionnalités, ce qui rendra la lecture du code plus intéressante.
Regarder un tas de code de quelqu'un d'autre peut être intimidant, alors commencez par la fonction main
(ou équivalent) et continuez votre chemin à partir de là.
Très peu de gens écrivent du bon code source lors de leur premier essai. Un bon code source est souvent produit par une série de révisions. Ainsi, si vous pouvez trouver du code source qui a été révisé par des pairs plusieurs fois et corrigé plusieurs fois, vous êtes probablement dans un meilleur emplacement. Certains projets open source (et certaines parties de ceux-ci) sont particulièrement bien examinés. Le code provenant d'entreprises qui ont des cycles de révision obligatoires (par exemple, Google, mais il y en a beaucoup d'autres) peut convenir.
Cela étant dit, je ne suis pas sûr que votre objectif devrait être de trouver un "bon code". Cela devrait être de regarder différents styles de code (tels que ceux écrits par vos collègues) et d'apprendre à identifier les bons et les mauvais points à ce sujet. Plus vous identifiez de mauvais points, plus vous vous efforcerez d'améliorer votre code et de savoir comment.
En particulier, je crois qu'une très bonne approche pour avoir une idée du bon code est d'utiliser le débogueur interactif pour tracer à travers du code complexe, en suivant les chaînes d'invocations. Par exemple, accédez à l'un des fichiers principaux de votre entreprise, mettez un point d'arrêt et commencez à en tirer des conclusions.
Après quelques fois, vous êtes désorienté par les fonctions de 100 lignes avec dix niveaux d'indentations et de dépendances sur les globaux, et quelques fois que vous parcourez du code bien décomposé, vous améliorerez votre propre programmation.
Au lieu de trouver de bons codes, regardez dans les livres de programmation générale.
par exemple. Code complet, écriture de code solide, modèles de conception (je suis sûr qu'il y a beaucoup d'autres livres dans une autre question et réponse sur ce site)
Ces livres décrivent la philosophie considérée comme un bon code. Lisibilité, performances, maintenabilité, détection de bogues, etc.
Ce qui sert des ressources encore meilleures et plus efficaces que d'essayer de comprendre ce que l'auteur essaie de réaliser.
P.s. Une bonne conception de logiciels est également ce que vous devriez examiner. Ce qui serait difficile à reconnaître uniquement en observant les codes, étant donné que le projet est suffisamment grand.
J'ai trouvé que le code des bibliothèques fournies avec le langage de programmation de votre choix est souvent un bon début pour voir ce que l'on pense être les meilleures pratiques et un bon style de codage.
Bien que vous ne vouliez pas commencer avec des endroits comme des algorithmes de tri ou des classes de conteneurs complexes.
Un autre endroit pour des informations intéressantes sur l'écriture de code est Project Euler ( http://projecteuler.net/ ). Léger inconvénient: vous devez d'abord résoudre le problème pour avoir accès au forum où les autres ont posté leurs solutions (défis intéressants pour tous les niveaux d'expérience). Mais une fois terminé, vous trouverez des exemples pour presque tous les principaux langages de programmation. Et comme vous avez déjà résolu le problème, cela vous aidera à comprendre le code des autres peuples. De plus, vous pourrez voir le code des langues que vous ne connaissez pas encore, mais qui peuvent vous intéresser.
J'ai vraiment aimé lire Beautiful Code . Il contient des exemples de code courts mais très agréables avec des explications détaillées.
... les plus grands informaticiens proposent des études de cas qui révèlent comment ils ont trouvé des solutions inhabituelles et soigneusement conçues à des projets de grande envergure. Vous pourrez regarder par-dessus l'épaule des principaux experts en codage et en conception pour voir les problèmes à travers leurs yeux.
... Les auteurs réfléchissent à haute voix lorsqu'ils travaillent sur l'architecture de leur projet, les compromis faits dans sa construction et quand il était important d'enfreindre les règles.
Ce livre contient 33 chapitres de Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent , Jack Dongarra et PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho andRafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig Otte et Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd et Christopher Seiwald, et Brian Hayes ...