Une partie de la valeur de l'Open Source est de fournir un excellent exemple de code aux personnes qui commencent avec une nouvelle plate-forme ou un nouveau langage.
Quel est le meilleur code Open Source que vous ayez rencontré, et pourquoi aimez-vous votre choix? N'importe quel langage fera l'affaire, mais je suis particulièrement intéressé par les meilleurs exemples d'Objective-C que vous pouvez signaler.
De toute évidence, il s'agit d'une question ouverte, je vais donc laisser la question ouverte pendant un certain temps et voir quels types de réponses nous obtenons.
Merci!
EDIT: Pour "le meilleur", je pensais à du code qui suit les idiomes dans le langage ou la plate-forme donnée, ainsi qu'à inclure les parties qui rendent le code "professionnel" - une bonne documentation, une suite de tests, etc. Code qui est concis, mais pas trop intelligent est préféré au code très laconique ou bavard.
Réponses:
Je dois dire que, après avoir examiné des morceaux de code open source au fil des ans, j'ai été extrêmement déçu de presque tout cela.
L'irritation principale pour moi est qu'il y a généralement très peu de commentaires, souvent les seuls commentaires sont des avis de droit d'auteur longs et légalistes.
Le noyau Linux est un exemple où les fichiers n'ont souvent même pas de commentaire indiquant à quoi ils servent (par exemple, le pilote pour XYZ me dirait au moins que je suis à peu près au bon endroit).
Je viens de la programmation commerciale et de la défense où les normes de codage nécessitent des commentaires intelligibles sensibles non seulement pour dire ce que fait une unité de code, mais tout au long du code, il doit y avoir des blocs de commentaires qui décrivent des algorithmes, des méthodes, des particularités, des hacks / des choses intelligentes , tout cela pour que celui qui vient après puisse regarder et comprendre RAPIDEMENT ce qui se fait plutôt qu'en parcourant minutieusement le code réel.
Peut-être que la morale est: dites-moi ce que vous faites, ne me faites pas le comprendre.
Je n'ai trouvé AUCUN code open source qui fait cela bien. En ce qui concerne l'open source comme moyen d'apprendre de bonnes pratiques de codage, mon conseil ictère est le suivant: ne le faites pas.
la source
J'ai entendu de très bonnes choses sur la base de code Sqlite .
Du peu que j'avais examiné, il a l'air très propre.
la source
Donald Knuth a écrit deux programmes pour l'aider à mieux composer ses formules mathématiques dans ses livres que son éditeur ne le pourrait.
Ces deux programmes (dans leur version finale) ont été écrits en utilisant Literate Programming qui a permis de créer une version imprimée et typée du code source, et ils ont été publiés sous forme de livres. Ce sont simplement les programmes les mieux documentés que j'ai jamais lus!
Ils ne sont pas disponibles pour la lecture en ligne, mais Amazon vous permet également de "regarder à l'intérieur" du livre Metafont sur http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/
Attention: c'est un truc lourd, c'est pourquoi chaque livre fait 600 pages.
la source
Le livre Beautiful Code essaie de répondre à cette question avec plusieurs exemples de ce que les contributeurs pensent être des exemples de beau code de projets open source.
la source
CodeIgniter
Certains des codes sources les plus propres et les mieux documentés que j'ai vus d'un projet de système d'exploitation.
la source
J'ai vu 2 projets très bien structurés:
Surtout, le second est très intéressant sur la base de quelques éléments:
J'ai également entendu que Postgre est écrit proprement (par opposition à MySql), mais je ne l'ai pas lu moi-même.
la source
Certains disent que le code C pour le noyau Linux est plutôt bon.
(Pas que je comprenne la chose! C'est peut-être le meilleur projet C open-source écrit.)
la source
J'ai trouvé le code source LLVM très lisible. Je suis sûr que c'est le C ++ le plus propre que j'ai vu. Si vous ne le connaissez pas, il s'agit essentiellement d'une boîte à outils de construction de compilateur.
C'est un projet assez important, alors ne vous attendez pas à pouvoir comprendre rapidement comment tout fonctionne. Mais il devrait être assez facile d'obtenir une vue d'ensemble de haut niveau.
la source
Ce n'est pas un projet énorme, mais l' ORM SubSonic a été extrêmement facile à pirater. C'était le premier vrai projet open source dont j'ai pu modifier exactement la façon dont j'avais besoin. La plupart des autres, j'ai fini par regarder la source et me cogner la tête contre un mur. Je l'avais partiellement pris en charge PostgreSQL (en le basant sur le fournisseur SQL Server) en quelques heures. C'est le projet le mieux organisé que j'aie jamais vu ... mais cela ne veut pas dire que j'ai regardé beaucoup de projets open source.
la source
D'abord un exemple simple: le code du système de gestion d'événements zope.event. J'avais utilisé d'autres systèmes d'événements, qui envoyaient des événements à différents écouteurs d'événements. Quand j'ai vu le code zope.event, c'était le temps de facepalm, quand j'ai réalisé à quel point certaines choses pouvaient être simples.
Il est écrit en Python, et voici le code dans son intégralité:
Pour ajouter un abonné, procédez comme suit:
Le meilleur exemple de KISS que j'ai vu.
Ensuite, un exemple plus complexe: la base de code martienne est très agréable et facile à lire, même si elle utilise des hacks Python intelligents. Il en va de même pour la plupart du code de Grok, qui est construit en utilisant Martian.
la source
Pensez à lire ce livre L'architecture des applications Open Source . Il devrait vous donner une critique de pourquoi et comment les décisions de conception ont été prises dans les projets qui sont discutés dans le livre.
Au lieu de chercher le meilleur, qui peut vous échapper longtemps, essayez d'apprécier la conception de certains projets, peut-être au-delà de la portée du livre. Cela pourrait vous aider à bâtir sur les succès de ces projets au lieu de répéter leurs erreurs (ou, comme on dit communément, réinventer la roue).
la source