Ich möchte meine Programmierkenntnisse verbessern, indem ich berühmte Open-Source-Projekte studiere, aber ich finde es leicht, mich zu verlaufen, wenn ich einfach in ihren Quellcode springe.
Daher habe ich mich entschlossen, die Dokumentation zu Design oder Architektur (z. B. UML-Diagramme) zu lesen, um zunächst eine allgemeine Vorstellung von der Organisation des Codes zu erhalten. Zu meiner Überraschung kann ich jedoch keine Architekturdokumentation für große Open Source-Projekte wie Hibernate, Spring, ASP.NET MVC, Rails usw. finden.
Ich habe mich also gefragt: Wie kann ein Open Source-Projekt erfolgreich sein, wenn neue Entwickler keine Architektur- / Designdokumentation zum Lesen haben oder wenn der Projektmanager nur den Quellcode geöffnet, aber seine Dokumentation geschlossen hat?
quelle
Antworten:
Es wird ausnahmslos davon ausgegangen, dass Sie wissen, was Sie tun, und ein einigermaßen intimes Verständnis dafür haben, was Sie sehen (und erwarten).
Wenn Sie sich beispielsweise den PHP-Code des Symfony-Frameworks ansehen, müssen Sie bereits über die Abhängigkeitsinjektion, Ereignisse, das Modell- / Ansichts- / Controller-Muster usw. Bescheid wissen.
Wenn Sie in den C-Code des Linux-Kernels eintauchen, wird davon ausgegangen, dass Sie in Bezug auf Modularität, Signale, Prozesse, Threads und was nicht realistisch kompetent sind. Es wird auch erwartet, dass Sie den ganzen Tag hexadezimal essen und mit einer riesigen Schaufel durch Kernkippen graben können.
Die Betreuer werden sich nicht die Mühe machen, die Architektur zu dokumentieren, weil es sich um sachliche Dinge handelt. Gelegentlich finden Sie im Quellbaum einen Überblick darüber, was wo liegt. Typischerweise macht die Art und Weise, wie der Quellbaum organisiert ist, die Dinge selbsterklärend.
Kurz gesagt, wenn Ihnen die Fähigkeiten fehlen, die die Betreuer erwarten, wenn Sie in ihren Code schauen, werden Sie wahrscheinlich Dinge durchforsten, die weit über Ihrer Gehaltsstufe liegen. Machen Sie sich zuerst mit den Konzepten vertraut - Was ist das MVC-Modell? Was ist Abhängigkeitsinjektion? Dann tauchen.
quelle
Die meisten erfolgreichen Open Source-Projekte wurden erfolgreich, weil das Programm in erster Linie beeindruckend war oder etwas tat, was zu diesem Zeitpunkt kein anderes Programm konnte. Das bedeutet nicht unbedingt, dass die Quelle gut dokumentiert ist, da die Programmierer, die das Projekt begonnen haben, den Code gut genug kennen, um ihn nicht zu benötigen. Es ist eine bedauerliche Tatsache, dass Open Source-Projekte nicht gut dokumentiert sein müssen. Es muss entweder ein gutes Programm oder ein mittelmäßiges Programm sein, aber gut dokumentiert, damit Programmierer Interesse daran zeigen können.
quelle
Da Open Source-Entwickler in der Regel talentiert sind und auch Projekte in ihrem Fachgebiet auswählen, haben sie bereits "Dokumentation" in ihren Schädeln. Mit wenig Übertreibung ist eine gründliche Dokumentation nur erforderlich, wenn Ihnen eine der folgenden Angaben fehlt: o)
Um ehrlich zu sein, lese ich "Dokumentation" nicht wirklich, wenn ich mit unbekannter Codebasis konfrontiert bin. Eine kurze Einführung, vielleicht ein paar konzeptionelle Skizzen und direkt in den Code! Experimentieren Sie, versuchen Sie kleine Änderungen. Funktioniert perfekt für gut gestalteten Code. Wenn ich mit schrecklichen Problemen konfrontiert bin, ist es am besten, sie Stück für Stück umzugestalten, um die Klarheit zu verbessern (idealerweise mithilfe von Unit-Tests).
Ein weiterer Grund könnten einfache organische Designwurzeln dieser Projekte sein. Architektur ist dann in den Köpfen der Entwickler eher eine weiterentwickelte Vision als eine angegebene "dokumentierte" Einheit.
quelle
Der Grund, warum solche Dokumente oft nicht existieren, ist ziemlich einfach: Programmierer programmieren gerne, schreiben keine Dokumentation. Besonders bei Open-Source-Projekten, die Entwickler häufig in ihrer Freizeit beitragen.
Grundsätzlich macht das Schreiben von Dokumentation keinen Spaß. Und wenn sie nicht dafür bezahlt werden, wer möchte dann seine Freizeit damit verbringen, etwas zu tun, das keinen Spaß macht?
quelle