Ich bin ein angehender Software-Ingenieur (jetzt im zweiten Studienjahr, Hauptfach CS) und ich habe wirklich Mühe, die Programme anderer Leute zu verstehen. Ich möchte wissen, ob diese Fähigkeit (oder ein Mangel daran) ein Handicap für mich sein kann, und wenn ja, wie kann ich sie entwickeln?
reading-code
James Bond
quelle
quelle
Antworten:
Es ist wesentlich.
Die Art und Weise, wie Sie es entwickeln, besteht darin, Ihren eigenen Code (viel davon) zu schreiben und sich durch das Lesen des Codes anderer Leute zu kämpfen.
Das Problem ist natürlich, dass nicht jeder so denkt, wie Sie es tun. Ich war vor langer Zeit in einer Java-Klasse im ersten Jahr und wir bekamen einen Auftrag. Im Gegensatz zu dem, was ich glaubte (was war, dass die Antworten auf drei oder vier gemeinsame Lösungen konvergieren würden), hatte jeder in der Klasse eine einzigartige Lösung für die Aufgabe.
Daraus folgt, dass Sie guten Code lesen sollten .
Dies ist einer der Gründe, warum Design Patterns so beliebt geworden sind und warum Sie sie studieren sollten. Design Patterns bieten Programmierern ein gemeinsames Vokabular, mit dem sie kommunizieren können, und Sie können nach "besseren" Möglichkeiten suchen, um Computerprobleme zu lösen.
Sie sollten auch Algorithmen und Datenstrukturen untersuchen.
Fazit: Sie sollten immer danach streben, Code zu schreiben, den andere Entwickler leicht verstehen können.
quelle
Das ist sehr wichtig.
Sobald Sie Ihren Abschluss gemacht haben und sich auf den Weg in die Welt gemacht haben, haben die meisten Projekte, an denen Sie arbeiten, bereits Code von anderen beigesteuert. Lucky ist der Programmierer, der seine ganze Zeit auf der grünen Wiese verbringen darf!
Es ist eine Fähigkeit , die durch Übung und Geduld, und in vielen Fällen erworben wird, dann ist es eine Fähigkeit , die viele Menschen nicht wirklich viel Gelegenheit zur Arbeit bekommen , bis nach ihrem Abschluss und diesen ersten Job bekommen. Entspannen Sie Sich!
(Wenn Ihre Schule über ein Koop-Programm verfügt, können Sie bereits vor dem Abschluss an großen Projekten arbeiten, die zum größten Teil von anderen geschrieben wurden, und Sie erhalten akademische Anrechnungspunkte!
quelle
Dies ist eine wichtige Fähigkeit , die abhängig von den Besonderheiten Ihres Arbeitsumfelds sogar wichtiger sein kann als das Schreiben von Code.
Übung macht den Meister! Versuchen Sie, den Code eines anderen Programmierers zu lesen, zu debuggen, und was mir persönlich hilft, ist, kleine Teile des Codes umzugestalten oder zu verbessern und von dort aus zu erweitern.
quelle
Es gibt unterschiedliche Fähigkeiten beim Lesen und Schreiben von Code.
Was das Lesen und Schreiben betrifft. Ja, lesen ist wichtig.
Einige Maximen, die vielen von uns dabei helfen, sind:
OKAY. Das ist alles großartig. Nun zu dem, was Sie wahrscheinlich erleben.
omg, diese verdammt große Codebasis mit Zehntausenden von Zeilen Quellcode und Klassen, die Hunderte von Zeilen lang sind und verrückte Abhängigkeiten aufweisen, und jedes Mal, wenn ich versuche, etwas zu befolgen, muss ich 10 Ebenen in meinem Kopf behalten, usw. usw.
Klingt vertraut ? Ja. Tiefer Atemzug. Entspannen Sie Sich. Es ist normal. Daraus bestehen Produktionssysteme. Menschen überleben (und gedeihen) in diesen scheinbar unverständlichen Situationen, weil:
quelle
Die meisten dieser Antworten konzentrieren sich auf die Bedeutung des Codelesens für die Selbstverbesserung. Ich stimme voll und ganz zu und unterstütze es.
Es gibt noch einen anderen Aspekt, vor dem Sie sich hüten sollten - selbst wenn Sie ein Wunderkind wären, das nicht vom Lesen anderer Ansätze profitieren könnte (unmöglich, aber aus Gründen der Argumentation ...), müssten Sie immer noch wissen, wie man Code liest, weil a Konzept, das im universitären Umfeld grundsätzlich nicht existiert: Die überwiegende Mehrheit der Industrieprojekte sind Brown-Field-Projekte (dh entweder in eine bereits vorhandene Codebasis integriert oder in diese integriert).
Die Notwendigkeit, Code nur zu lesen, um die vorhandene Codebasis und die vorhandenen Prozesse zu verstehen, ist real. Es ist immer möglich, anderen Entwicklern Fragen zu Code zu stellen, aber dies kann nur so lange dauern. Die Leute gehen, wechseln Projekte oder die Zeit vergeht. Die Details auf niedriger Ebene werden vom Speicher ausgeblendet, und Wartungsprogrammierer wenden Patches an. Irgendwann gibt es keine einzige Wahrheitsquelle außer dem Code selbst.
Gute Code-Hygiene, Style-Guides, Code-Reviews und Dokumentation helfen, aber irgendwann ist der Code die Quelle der Wahrheit für das, was passiert, und der einzige Weg, um die Antwort zu finden, ist, sie selbst zu holen. Abgesehen von seiner Verwendung in der Selbstentwicklung ist die Fähigkeit, Code zu lesen, eine deutlich vom Schreiben getrennte Fähigkeit.
quelle
Das Verstehen des Codes anderer ist etwas, dem Sie nicht entgehen können, da Sie höchstwahrscheinlich im Team arbeiten werden, auch wenn Sie nicht im Team sind. Sie werden verschiedene Dinge googeln und Sie müssen den Beispielcode verstehen. Also ja es ist ein Muss.
Was ich denke, ist, dass jeder das Gefühl hat, etwas weniger als der andere zu sein, besonders zu Beginn. Sie verstehen Ihren Code besser als anderen Code, da Sie viel mehr Zeit mit Ihrem eigenen Code verbringen als mit Code von jemand anderem, da Sie nicht nur lesen, sondern auch schreiben und strukturieren es in deinem Kopf. Wenn Sie mehr Zeit mit dem Code anderer verbringen und zuerst versuchen, herauszufinden, welche Art von Struktur / Ablauf verwendet wird, werden Sie den Code sicherlich besser verstehen.
Um meinen Standpunkt noch überzeugender zu machen, wenn Sie einen Code haben, den Sie vor einem Jahr geschrieben haben, versuchen Sie ihn erneut zu verstehen, und ich kann Ihnen versichern, dass Sie mehr Zeit in Anspruch nehmen werden, aber weniger als der Code anderer, wenn Sie eine Vorstellung davon haben, wie Sie Ihren strukturieren Code.
Hoffe, dass diese Hilfe nicht enttäuscht wird, es ist völlig normal. Verbringen Sie mehr Zeit mit Code und Sie werden es schließlich bekommen.
quelle
Nun, ich habe gerade ein Projekt mit ungefähr 100.000 Codezeilen erhalten, das von einem Team in einem anderen Land geschrieben wurde, und ich muss in den nächsten Monaten einige sehr wichtige Änderungen an einer Kopie des Codes vornehmen, während ich so viel Code hinterlasse gemeinsam wie möglich.
Sie sagen mir, wie ich meine Arbeit erledigen kann, ohne den Code anderer Leute schnell lesen zu können. Wenn Sie den Code anderer Leute nicht lesen können, stecken Sie völlig fest.
quelle