Wohin gehst du, um gute Beispiele für Quellcode zu lesen? [geschlossen]

53

Ich habe einige Leute sagen hören, dass einer der besten Wege, um Ihre Codierungsfähigkeiten zu verbessern, darin besteht, anderen Code zu lesen und ihn zu verstehen. Meine Frage als relativ neuer Programmierer: Wo finde ich gute Quellcodebeispiele, die nicht zu weit über meinem Kopf liegen?

Jesse McCulloch
quelle
Dies wurde bei StackOverflow
nikie
3
Ich blicke nur auf meinen alten Code zurück.
Paul
Paul, das wird dem OP nicht helfen, oder? Offensichtlich haben sie noch keinen guten Code in der Vergangenheit geschrieben. Meine Güte.
Junky
2
@ Junky hoffentlich haben sie aber etwas Sinn für Humor :)
Konrad Morawski
Dies ist die Frage, die ich stellen wollte, aber es ist mein Glück, dass ich sie gefunden habe. Ich dachte, dies ist nur mein Problem, dass ich nicht weiß, wo ich Codes finde
Dhananjay

Antworten:

30

Sie können auf Repository - Sites wie Open - Source - Projekte durchsuchen GitHub , Codeplex , Google Code oder BitBucket . Sie werden Projekte mit unterschiedlichen Komplexitätsstufen finden, sodass Sie in der Lage sein sollten, etwas zu finden, das Sie beide interessiert und anfangs nicht allzu sehr über den Kopf geht.

Eine weitere Option sind Scott Hanselmans wöchentliche Source Code- Blog-Beiträge.

Ich empfehle, mit einem etablierten, aktiven Projekt zu beginnen, um die Wahrscheinlichkeit zu verringern, Code zu lesen, der noch nicht benutzt und überprüft wurde. Suchen Sie im Idealfall etwas, das Sie interessiert und das Sie verwenden können. Mithilfe der App können Sie den Quellcode besser verstehen. Ein weiterer Vorteil der Auswahl eines Open-Source-Projekts besteht darin, dass Sie möglicherweise einige Korrekturen oder Funktionen beitragen können, die das Lesen des Codes interessanter machen.

Es kann einschüchternd sein, einen Haufen Code von jemand anderem anzustarren. Beginnen Sie also mit der mainFunktion (oder einer entsprechenden Funktion) und arbeiten Sie sich von dort aus durch.

Adam Lear
quelle
3
-1: Ein Anfänger kann nicht zwischen gutem und schlechtem Code unterscheiden, daher hilft das Durchsuchen von Projekten nicht weiter. Sie haben dies irgendwie durch die Empfehlung von "etablierten" Projekten abgedeckt, aber ich habe schrecklichen Code in Projekten gesehen, von denen wir alle gehört haben. Ich habe jedoch keine bessere Antwort. Tatsächlich ist es eine schwierige Frage, eine Antwort zu benötigen, die auf die Fähigkeiten, Interessen und das Wissen eines Mentors zugeschnitten ist.
Cris
1
@Cris Ich bin nicht anderer Meinung, aber ich werde bemerken, dass es auch viel zu lernen gibt, wenn man schlechten Code liest. Das Lesen und Befolgen von schlechtem Code ist wahrscheinlich noch schwieriger als das Eintauchen in ein ordnungsgemäß organisiertes Projekt. (Und das ist, bevor wir versuchen herauszufinden, was "guter" Code ist. :))
Adam Lear
1
wahr genug. Aber für die meisten von uns Nicht-Genies hat die Selbsterziehung Grenzen. Die meisten Anfänger (in allen Bereichen) müssen Exposition gegenüber „guten“ , um ein Gefühl von dem, was ist gut. Und "das Internet" ist ein Weltlärm von "Ich bin gut!", Der nicht hilft.
Cris
10

Sehr wenige Leute schreiben guten Quellcode bei ihrem ersten Versuch. Guter Quellcode wird häufig durch eine Reihe von Überarbeitungen erzeugt. Wenn Sie also Quellcode finden, der mehrfach von Experten überprüft und mehrfach korrigiert wurde, befinden Sie sich wahrscheinlich an einem besseren Ort. Einige Open Source-Projekte (und einige Teile davon) werden besonders gut rezensiert. Code von Unternehmen mit obligatorischen Überprüfungszyklen (z. B. Google, aber es gibt viele andere) ist möglicherweise genau das Richtige für Sie.

Abgesehen davon bin ich mir nicht sicher, ob es Ihr Ziel sein sollte, "tollen Code" zu finden. Sie sollten sich verschiedene Codestile ansehen (z. B. die von Ihren Mitarbeitern geschriebenen) und lernen, die guten und schlechten Punkte zu identifizieren. Je mehr schlechte Punkte Sie identifizieren, desto mehr werden Sie sich bemühen, Ihren Code zu verbessern und zu wissen, wie.

Insbesondere glaube ich, dass ein sehr guter Ansatz, um ein Gefühl für guten Code zu bekommen, darin besteht, den interaktiven Debugger zu verwenden, um komplexen Code anhand der Aufrufketten zu verfolgen. Gehen Sie zum Beispiel zu einer der Hauptdateien Ihres Unternehmens, setzen Sie einen Haltepunkt und fangen Sie an, Dinge daraus herauszufinden.

Nachdem Sie einige Male durch 100-Zeilen-Funktionen mit zehn Ebenen von Einrückungen und Abhängigkeiten von Globalen desorientiert sind und ein paar Mal durch gut zerlegten Code gebrodelt haben, verbessern Sie Ihre eigene Programmierung.

Uri
quelle
4

Lesen Sie Allgemeine Programmierbücher, anstatt großartige Codes zu finden.

zB Code vervollständigen, soliden Code schreiben, Entwurfsmuster (ich bin sicher, dass es viele andere Bücher in einer anderen Frage und Antwort auf dieser Seite gibt)

Diese Bücher beschreiben die Philosophie, die man als guten Code ansieht. Lesbarkeit, Leistung, Wartbarkeit, Fehlererkennung usw.

Welches dient eine noch bessere Ressourcen und effizienter als der Versuch, herauszufinden, was der Autor zu erreichen versucht.

PS Gutes Softwaredesign ist das, worauf Sie achten sollten. Was allein anhand der Einhaltung von Codes schwer zu erkennen wäre, da das Projekt groß genug ist.

Zekta Chan
quelle
1
Ich möchte "Clean Code" als eine gute Ressource erwähnen.
mhr
3

Ich fand heraus, dass der Code der Bibliotheken, die mit der Programmiersprache Ihrer Wahl geliefert werden, oft ein guter Anfang ist, um zu sehen, was als Best Practices und guter Codierungsstil angesehen wird.

Sie möchten jedoch nicht mit Orten wie Sortieralgorithmen oder komplexen Containerklassen beginnen.

Ein weiterer Ort für interessante Einblicke in das Schreiben von Code ist Project Euler ( http://projecteuler.net/ ). Kleiner Nachteil dort: Sie müssen das Problem zuerst lösen, um Zugang zum Forum zu erhalten, in dem andere ihre Lösungen gepostet haben (interessante Herausforderungen für alle Erfahrungsstufen). Aber sobald Sie fertig sind, finden Sie Beispiele für fast alle wichtigen Programmiersprachen. Und da Sie das Problem bereits gelöst haben, wird es Ihnen helfen, den Code anderer Leute zu verstehen. Außerdem können Sie den Code von Sprachen anzeigen, die Sie noch nicht kennen, aber vielleicht interessant finden.

thorsten müller
quelle
3

Ich habe es wirklich genossen, Beautiful Code zu lesen . Es enthält kurze, aber sehr schöne Codebeispiele mit detaillierten Erklärungen.

... bieten führende Informatiker Fallstudien an, die aufzeigen, wie sie ungewöhnliche, sorgfältig entworfene Lösungen für hochkarätige Projekte gefunden haben. Sie können großen Programmier- und Designexperten über die Schulter schauen, um Probleme mit den Augen zu sehen.

... Die Autoren überlegen laut, wie sie die Architektur ihres Projekts durcharbeiten, welche Kompromisse sie bei der Konstruktion eingehen und wann es wichtig ist, Regeln zu brechen.

Dieses Buch enthält 33 Kapitel, die von Brian Kernighan, Karl Vogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Federn, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein und Jim Kent beigesteuert wurden , Jack Dongarra und PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, Andrew Küchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho und Rafael Monnerat, Bryan Cantrill, Jeff Dean und Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig William Otte und Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd und Christopher Seiwald und Brian Hayes ...

pyvi
quelle