Verwandte Lernempfehlungen: Javascript
Ich liebe das Programmieren, es ist mein Job und ich bin froh, dass ich die meiste Zeit mit der Entwicklung von Software verbringen kann. Wie viele Programmierer war ich sowohl fasziniert als auch verwirrt darüber, wie gut der von mir geschriebene Code war und wie ich ihn besser schreiben könnte.
Im Laufe der Jahre habe ich viele Artikel und Bücher über Softwareentwicklung gelesen. Es gibt viele Tintenbücher (in Büchern oder online), die Ihnen zeigen, wie Sie Ihre Programmierung verbessern und ein professionell ausgebildeter Programmiermeister wie ein Ninja werden können! Die meisten dieser Vorschläge haben etwas gemeinsam, darunter das Lesen des Quellcodes. Im Vergleich zu anderen Vorschlägen läuft das Lesen von Quellcode jedoch meist auf einen einfachen Satz hinaus: Suchen Sie sich eine großartige Open-Source-Software oder eine Software, die Ihnen gefällt, öffnen Sie sie (oder drucken Sie sie aus) und lesen Sie sie. Obwohl dies im Allgemeinen ein guter Vorschlag ist, ist er auf dem Papier oberflächlich und es gibt viele Probleme, wenn man ihn tatsächlich in die Praxis umsetzt. In diesem Artikel werde ich versuchen, einige praktische Ratschläge zum Lesen des Quellcodes zu geben, aber vorher wollen wir zunächst die Probleme aufzählen.
Wenn Leute über das Lesen von Quellcode sprechen, entsteht im Allgemeinen der Eindruck, dass sie wie Programmiermeister sind, die einfach auf einem Stuhl sitzen und den Code in ihren Händen wie einen Roman lesen können. Nun, ich bin mir sicher, dass es tatsächlich einige hervorragende Programmierer gibt, die es genießen, Kaffee zu trinken, während sie eine Reihe mysteriöser Symbole betrachten, die englischen Sätzen ähneln, und die auch die gesamte Klassenhierarchie und -struktur in ihrem Kopf aufbauen können. Offensichtlich ist dieser Artikel nichts für sie. Sein Publikum sind Leute wie ich, die das Gefühl haben, dass das Anstarren eines Stapels Quellcodes wie das Anschauen einiger langweiliger und bedeutungsloser Übungen ist. Natürlich würden einige argumentieren, dass man aus einem vollständigen Projekt lernen kann, indem man sich Stück für Stück eine einzelne Klasse oder eine einzelne Funktion ansieht, aber meiner Meinung nach sind die meisten Softwareprogramme intern voneinander abhängig, außer bei den einfachsten Problemen. Es ist oft unmöglich, die Designideen und -prinzipien hinter einer bestimmten Funktion oder Klasse zu verstehen, ohne den Rest des Systems zu verstehen.
Die nächste Frage ist, woher man den Quellcode bekommt, der gelesen werden kann (zuvor muss man natürlich erkennen können, welcher Quellcode es wert ist, gelesen zu werden). Es gibt eine Menge exzellenter Software, sowohl Open-Source-Software ist kostenlos erhältlich, als auch Closed-Source-Software erfordert eine Lizenz. Zu den Open-Source-Repositories gehören Sourceforge und GitHub. Wenn Sie für ein Softwareentwicklungsunternehmen arbeiten, haben Sie Zugriff auf proprietären Code in Quellcode-Repositorys. Ein dritter gängiger Ansatz sind Programme, die Softwareentwicklungsbüchern beiliegen oder als Bildungsressourcen angeboten werden (Minix ist ein Paradebeispiel). Tatsächlich fällt es uns aufgrund der Vielzahl an Optionen schwer, eine Auswahl zu treffen. Daher ist es eine schwierige, aber wesentliche Aufgabe, in der riesigen Welt des Codes die richtige zu finden, die wir lesen können.
Ein weiteres Problem ist die im Programm verwendete Programmiersprache. Wenn Sie sich auch mit einer neuen Sprache mit seltsamer Syntax vertraut machen müssen, ist die Belastung einfach ... Eine Katastrophe großen Frust mit sich bringen. Sie müssen also Code finden, der in einer Sprache geschrieben ist, mit der Sie vertraut sind. Wenn der Code, den Sie betrachten, jedoch aus einem Buch stammt oder als Bildungsressource bereitgestellt wird, spielt es keine Rolle, ob Sie die neue Sprache beherrschen, da es Dozenten gibt, die den Kontext erklären können. Wenn Sie wissen, dass es Tiger in den Bergen gibt, Sie aber lieber eine unbekannte Programmiersprache ohne die Anleitung eines Buches oder eines Tutors lesen möchten, dann schlage ich vor, dass Sie sie zumindest lernen und an den Punkt gelangen, an dem Sie Ihre Programmiersprache schreiben können eigenes Programm (Hallo Welt, es zählt nicht, haha).
Die vorherige Frage zum Kontext bringt mich zu meiner nächsten Frage: Es ist viel schwieriger herauszufinden, was der Code tut, wenn man mit der Software selbst nicht vertraut ist. Wenn Sie beispielsweise Linux nicht jeden Tag verwenden und die Linux-Boot-Sequenz kennen, ist es schwierig, die Runlevels herauszufinden, nachdem Sie sich den Linux-Code angesehen haben. Die Erfahrungen und Kenntnisse, die wir bei der Verwendung einer bestimmten Software sammeln, können uns dabei helfen, deren Quellcode, einschließlich häufig verwendeter Terminologie, Funktionen und Merkmale der Software und sogar der verschiedenen Fehler, auf die Sie stoßen, besser zu lesen.
Mir wurde klar, dass „Lesen des Quellcodes“ die Aktivitäten, an denen ich beteiligt bin, nicht genau beschreibt und es angemessener wäre, „den Quellcode verstehen“ zu verwenden. Es fällt mir sehr schwer, vor einem Laptop-Bildschirm zu sitzen (oder es auf Papier auszudrucken) und einfach einen Bildschirm voller Code zu lesen. Ich brauche neben dem Code noch andere Dinge. Ich schaue mir zum Beispiel gerne die Dokumentation an, spiele mit der Software, gehe den Code durch und schreibe sogar Testcode, um ihn auszuführen, und dann kann ich ihn wirklich schätzen. Da ich so viel Zeit und Energie in diese Sache investieren werde, muss ich sehr wählerisch sein und Software finden, die ich „lesen“ (verstehen) möchte.
Meine erste Filterstufe ist die Programmiersprache. Für mich lese ich nur den Code von Programmen, die in C#, VB.NET, Python und Javascript geschrieben sind (obwohl ich auch mit C++, Ruby und F# vertraut bin, aber ich glaube nicht Ich habe das nötige Niveau, um den Code anderer Leute zu verstehen. Als nächstes suche ich nach Software, die ich verwendet habe und die mir das Gefühl gibt, bereits an Bord zu sein, weil ich die Absicht des Codes kenne und weiß, was er nicht kann und welche Einschränkungen er hat (sofern ich damit vertraut genug bin). . Open-Source-Software, die ich jeden Tag verwende, ist ein ausgezeichneter Kandidat (zum Beispiel verwende ich die in C# geschriebenen Open-Source-Tools Cruise Control.NET, NANT und NUnit).
Ich arbeite zufällig für ein Softwareunternehmen (ein Microsoft-Unternehmen). Eine der Quellcode-Auswahlen, die ich gelesen habe, war der Code unseres Unternehmens im Quellcode-Repository. Wenn Sie zufällig auch für ein Softwareunternehmen arbeiten, können Sie sich andere Projekte oder sogar frühere Versionen des Projekts ansehen, an dem Sie gearbeitet haben. Auf diese Weise erhalten Sie nicht nur ein tieferes Verständnis Ihres Codes, sondern auch eine gute Vorstellung davon, was Sie vorher und nachher ausprobiert haben. Allerdings gibt es einige Einschränkungen zu beachten:
Suchen Sie nach gut dokumentierten Projekten (dies gilt sowohl für Open Source als auch für proprietären Code). Damit meine ich, dass eine solche Dokumentation das Gesamtdesign hervorheben und die Logik hinter dem Code erläutern sollte. Wenn es einfach ein automatisch generiertes Dokument vom Typ Java Doc wäre, würde es nicht als die Dokumentation betrachtet, die ich beschreibe :-). Eine Möglichkeit, dies herauszufinden, ist Software für den Bildungsbereich wie Minix. Da sie dazu gedacht sind, durch Software zu lehren, sind sie in der Regel sehr klar dokumentiert und verfügen über umfangreiches Material, das die Designprinzipien hinter dem Code erklärt.
Da Sie nun die Software identifiziert haben, deren Quellcode Sie lesen möchten, und deren Quellcode und Dokumentation heruntergeladen haben, lesen und verstehen wir sie Schritt für Schritt:
„Quellcode-Lesen“ ist meiner Meinung nach mehr als nur Lesen, es ist eine einzigartige Reihe von Aktivitäten, die zusammenarbeiten, um den Menschen zu helfen, den Code zu verstehen. Das mag einschüchternder erscheinen als einfach nur „Code lesen“, aber die Mühe lohnt sich.
Können Sie nun den Quellcode einfacher und zufriedener „lesen“?
Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“!
Das obige ist der detaillierte Inhalt vonSo lesen Sie Quellcode für Anfänger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!