Où allez-vous pour lire de bons exemples de code source? [fermé]

53

J'ai entendu quelques personnes dire que l'une des meilleures façons 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, est la suivante: où puis-je trouver de bons exemples de code source qui ne sont pas trop éloignés de ma tête?

Jesse McCulloch
la source
Cela a été demandé pour StackOverflow: stackoverflow.com/questions/3083525/…
nikie
3
Je reviens sur mon ancien code.
Paul
Paul, ça ne va pas aider le PO, n'est-ce pas? De toute évidence, ils n'ont pas un bon code déjà écrit dans le passé. Sheesh.
junky
2
@ junky espérons qu'ils ont un certain sens de l'humour cependant :)
Konrad Morawski
C’est la question que j’allais poser, mais c’est ma bonne chance que je l’aie trouvée .Je pensais que c’était uniquement mon problème, je ne savais pas où trouver les codes
Dhananjay

Réponses:

30

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 différents niveaux de complexité. Vous devriez donc pouvoir trouver quelque chose qui vous intéresse et qui ne vous dérange pas trop au début.

Une autre option est le blog hebdomadaire de Scott Hanselman sur le code source .

Je recommande de commencer avec un projet établi et actif 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 des corrections ou des fonctionnalités, ce qui contribuera à rendre la lecture du code plus intéressante.

Observer le code de quelqu'un d'autre peut être intimidant. Commencez par la mainfonction (ou son équivalent) et continuez à partir de là.

Adam Lear
la source
3
-1: un débutant ne peut pas dire entre le bon et le mauvais code, ainsi les projets de "navigation" ne vont pas aider. Vous avez en quelque sorte couvert cela en recommandant des projets «établis», mais j'ai déjà vu des codes épouvantables dans des projets dont nous avons tous entendu parler. Je n'ai pas de meilleure réponse, cependant. C'est en fait une question difficile, nécessitant une réponse adaptée aux niveaux de compétence, aux intérêts et filtrée des connaissances du mentor.
Cris
1
@Cris Je ne suis pas en désaccord, mais je noterai qu'il y a beaucoup à apprendre de la lecture de mauvais code également. On peut soutenir que lire et suivre un mauvais code est encore plus difficile que de plonger dans un projet correctement organisé. (Et ceci avant d'essayer de déterminer ce qu'est un "bon" code. :))
Adam Lear
1
assez vrai. Mais pour la plupart d'entre nous non-génies, l'auto-éducation a des limites. La plupart des débutants (dans tous les domaines) ont besoin d'être exposés au "bien" pour avoir une idée de ce qui est bon. Et "Internet" est une clameur mondiale de "Je suis bon!", Ce qui n'aide pas.
Cris
10

Très peu de gens écrivent un 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é revu par des pairs plusieurs fois et qui a été corrigé plusieurs fois, vous êtes probablement dans un meilleur emplacement. Certains projets open source (et certaines parties de ceux-ci) sont particulièrement bien revus. Le code provenant d’entreprises ayant des cycles d’examen obligatoires (Google, par exemple, mais de nombreux autres) peut convenir.

Cela étant dit, je ne suis pas sûr que votre objectif soit de trouver un "bon code". Il faut examiner différents styles de code (tels que ceux écrits par vos collègues) et apprendre à identifier les avantages et les inconvénients de celui-ci. Plus vous identifiez de points négatifs, plus vous vous efforcez d'améliorer votre code et de savoir comment.

En particulier, j'estime qu'une très bonne approche pour obtenir une idée de bon code consiste à utiliser le débogueur interactif pour suivre le code complexe en suivant les chaînes d'appels. Par exemple, accédez à l'un des fichiers principaux de votre société, définissez un point d'arrêt et commencez à en comprendre le contenu.

Au bout de quelques fois, vous êtes désorienté par des fonctions de 100 lignes avec dix niveaux d'indentations et de dépendances sur les globales, et quelques fois par le code bien décomposé, vous améliorez votre propre programmation.

Uri
la source
4

Au lieu de trouver de bons codes, regardez dans General Programming Books.

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é, performance, 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 essaye de réaliser.

Ps: La bonne conception de logiciel est ce que vous devriez également examiner. Ce qui serait difficile à reconnaître uniquement à partir de codes d'observation, étant donné que le projet est suffisamment important.

Zekta Chan
la source
1
J'aimerais mentionner "Clean Code" comme une bonne ressource.
Mhr
3

J'ai constaté que le code des bibliothèques fourni 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 souhaitiez pas commencer par des endroits tels que les algorithmes de tri ou des classes de conteneurs complexes.

Project Euler ( http://projecteuler.net/ ) est un autre lieu intéressant pour l'écriture de code . Léger désavantage là-bas: vous devez d'abord résoudre le problème pour pouvoir accéder au forum où d'autres personnes ont posté leurs solutions (défis intéressants pour tous les niveaux d'expérience). Mais une fois cela fait, vous trouverez des exemples pour presque tous les principaux langages de programmation. Et puisque vous avez déjà résolu le problème, cela vous aidera à comprendre le code des autres peuples. De plus, vous verrez le code de langues que vous ne connaissez pas encore, mais que vous trouverez peut-être intéressantes.

Thorsten Müller
la source
3

J'ai vraiment apprécié lire Beautiful Code . Il a des exemples de code courts mais très intéressants avec des explications détaillées.

... des informaticiens de renom proposent des études de cas qui montrent comment ils ont trouvé des solutions originales et soigneusement conçues à des projets prestigieux. Vous serez en mesure de 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 à voix haute lorsqu'ils analysent l'architecture de leur projet, les compromis apportés lors de sa construction et lorsqu'il était important de ne pas respecter les règles.

Ce livre contient 33 chapitres rédigés par 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 etRafael Monnerat, Bryan Cantrill, Jeff Dean et Sanjay Ghemawat, SimonPeyton Otte et Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd et Christopher Seiwald, et Brian Hayes ...

pyvi
la source