Vergessen Sie den Code auch, nachdem Sie die Aufgabe erledigt haben? [geschlossen]

13

Ich bin ein neuer Programmierer und möchte ältere Programmierer fragen (Programmierer, die Erfahrung in der realen Welt haben).

Ich mache meine Arbeit und nach dem Codieren ist mein Projekt abgeschlossen, aber ehrlich gesagt kann ich mich nicht an den Code, den Namen der Klassen und Frameworks und deren Eigenschaften erinnern.

Manchmal bezweifle ich selbst, dass ich das gemacht habe?

Ist das bei allen Programmierern normal oder bin ich der dümmste Programmierer, der sich nicht an den Code und die Namen der Klassen / Eigenschaften erinnern kann?

Bearbeiten:

Ich denke, viele Programmierer verstehen mich hier falsch. Ich sagte, ich vergesse Framework-Namen, Klassennamen und Eigenschaftennamen, aber ich erinnere mich an meinen eigenen Code, sobald ich wieder daran arbeite. Meine Frage ist, erinnern Sie sich an Syntax und Klassen / Eigenschaft usw. Namen?

neugierig
quelle

Antworten:

24

Um ehrlich zu sein, ich weiß nicht, wie man ein langfristiger Entwickler sein kann, ohne die Möglichkeit zu haben, den Code zu "vergessen", an dem Sie gearbeitet haben. Die Menge der Projekte und der daraus resultierende Code würden schließlich zu einer reinen Informationsüberflutung führen.

Ich sehe diese Situation jedoch als stützendes Argument für ein klares, logisches Design. Es wird eine Zeit kommen, in der Sie Ihren eigenen Code unterstützen müssen. Wenn Sie starke und logische Kodierungskonventionen gewählt haben, wird Ihre Einarbeitungszeit erheblich verkürzt. Darüber hinaus würde dies theoretisch den Zeitaufwand für die Durchführung der eigentlichen Wartung verringern.

Sucher der Dinge
quelle
Ich habe zwei Codierer mit fotografischem Gedächtnis getroffen, die sich daran erinnern können, was sie gedacht haben, als sie an einem Stück Code gearbeitet haben. Da meine Erinnerungsfähigkeiten unterdurchschnittlich sind, bin ich mit Sicherheit gezwungen, den Code so gut wie möglich sauber und dokumentiert zu machen.
Job
Ich denke, Sie haben Recht, nur weil ich den Code "vergessen" habe, den ich auf 3-4 verschiedenen Plattformen programmieren kann!
Necixy
9

Sich an all Ihre Syntax und APIs für ein Projekt zu erinnern, ist nicht so wichtig wie sich an die Konzepte zu erinnern, mit denen es erstellt wurde. Sobald Sie Erfahrung haben, können Sie den Code durchlesen und die Bedeutung genau wie beim Lesen dieser Beiträge herausfinden.

Was Sie im Laufe der Zeit feststellen werden, wenn Sie sich aktiv verbessern, ist, dass Sie die Fehler in dem, was Sie in der Vergangenheit geschrieben haben, einfach durch Lesen des alten Codes erkennen können (was ich Ihnen empfehle). Durch diese Übung wird es einfacher zu tun; genau wie jede andere Fähigkeit.

Ich habe in meiner Karriere wahrscheinlich mehr als eine Million Codezeilen geschrieben, und ich kann mich auf keinen Fall an alles erinnern. Ich erinnere mich jedoch an die Projekte und was sie zu lösen versuchten (und an die Techniken, mit denen sie gelöst wurden).

jmq
quelle
5

Ich vergesse viele Dinge, nachdem ich sie benutzt habe, aber vergesse sie anders.

Ich habe mich über die Jahre beobachtet und bin zu dem Schluss gekommen, dass unser Gehirn (okay, mein Gehirn) eine bestimmte Caching-Strategie anwendet:

  • Neue Informationen werden gelernt, verwendet und dann in eine Ablaufwarteschlange gestellt. In ein paar Wochen ist es weg.

  • Der wiederholte Zugriff auf diese Informationen, die spätestens vor einigen Monaten erlernt wurden, fördert sie irgendwie, sodass sie monatelang gespeichert werden können, erst dann verfallen sie.

  • Durch den wiederholten Zugriff auf die Wissensblöcke über mehrere Jahre hinweg, wobei die Nutzungslücken mehrere Monate lang bestehen, werden sie zu einem vorrangigen Speicher, in dem sie jahrelang aufbewahrt werden.

PS: Ich vermute, dass die erste Idee des Cache mit der Anwendung auf Computern von jemandem stammt, der beobachtet, wie Menschen Dinge lernen und sich daran erinnern. Wir haben also nichts erfunden, nur genommen, was bereits in uns eingebaut war.


quelle
2

Häufig. Kommentare sind passe geworden, aber ich kann meinen Code normalerweise an meinen Kommentaren erkennen.

EDIT: Ich sage nicht, dass ich dem Trend zustimme . Ich sage nur, das ist heute der Trend. Wie Dave betont, gibt es sicherlich eine Bruchstelle. Hier gibt es eine wundervolle Diskussion: "Kommentare sind ein Codegeruch" . Ich falle in das Lager "Kommentare dienen der Information über die Welt AUSSERHALB der Codebasis (Anforderungen, geschäftliche Änderungen usw.)".

Michael Blackburn
quelle
Kommentare sind passé? Einfach nicht wahr
Steve
1
Oh, ich stimme zu; Ich sage nur, dass es einen Trend zu geben scheint, dass Kommentare nicht erforderlich sein sollten. Ich habe Interviews mit Leuten geführt, die darauf bestanden, dass der Name der Methode den ganzen Kommentar enthält, den Sie brauchen. Sie arbeiten eindeutig an einem mythischen Ort, an dem sich die Geschäftsanforderungen nicht halbjährlich ändern.
Michael Blackburn
2
Ich würde argumentieren, dass, während PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () beschreibend ist, es auch für unlesbaren Code sorgt, da es den Fluss zerstört.
Dave Wise
1
Vereinbarte x100. Wenn ich nicht sorgfältig aufzeichne, was ich dachte und warum ich die Entscheidungen getroffen habe, die ich durch sorgfältig formulierte Kommentare getroffen habe, hätte ich absolut keine Ahnung, was los war, als ich zurückkam, um Code zu lesen, den ich vor Monaten geschrieben hatte. Ich habe versucht, dieses Argument vor den Architektur-Astronauten vorzubringen, die sagen, Kommentare seien Lärm oder Passe oder veraltet, aber niemand hat jemals zugehört. Jeder geht davon aus, dass ich ein schlechter Entwickler bin, weil ich Kommentare in meinen Quellcode schreiben muss. Damit bin ich aber einverstanden. Es hilft mir und allen anderen nach mir.
Cody Grey
@ Dave: Obwohl ich Ihnen zustimme, haben Sie eine Methode mit zwei Verantwortlichkeiten. Deine Buße sind 4 Hagel Martins und 2 GangOfFours.
Michael Blackburn
1

Syntax erinnere ich mich im Allgemeinen nach ein paar Verwendungen. Als ich zum Beispiel anfing, Generics oder Linq zu verwenden, hatte ich einige Schwierigkeiten, die richtige Syntax zu finden.

IntelliSense erleichtert mir auf jeden Fall das Speichern von Eigenschafts- und Methodennamen erheblich.

Michael Blackburn
quelle
1

Als ich ein Tester war, sagte mir der leitende Entwickler des Unternehmens einmal, dass der Code vor 6 Monaten geschrieben wurde. Keiner meiner Mitarbeiter kann dafür verantwortlich gemacht werden. Zu der Zeit hat es mich schockiert. Jetzt, wo ich zum Entwickler gewechselt bin, verstehe ich. Ich erinnere mich nicht an die Details des Codes, von dem ich weiß, dass ich daran gearbeitet habe, aber die Details sind nicht vorhanden.

Erin
quelle
0

Fast immer. Mein letztes (sehr kleines) Projekt war ein Test meiner eigenen (rostigen) Fähigkeiten. Ich ließ mir eine Menge prozeduralen Code in einem sehr einfachen C-Stil schreiben und ihn dann mit einigen Entwurfsmustern in Java-Code umgestalten und jede Methode auf nicht mehr als acht Zeilen beschränken, wenn ich konnte.

Ich habe den Code ungefähr einen Monat lang abgelegt. Als ich darauf zurückkam, dauerte es ungefähr eine Stunde, bis mir klar wurde, dass ich es geschrieben hatte. Ehrlich gesagt, selbst wenn ich meinen Namen in ein Kommentarfeld eingetragen hätte, bin ich mir nicht sicher, ob es mich überzeugt hätte.

mfe
quelle