Unten finden Sie einige Aktualisierungen darüber, wie sich dies für mich etwa jedes Quartal des Jahres ausgewirkt hat. Ich denke, sie sind wertvoll.
Gute Benennung. Oder, wenn es sich um den Code eines anderen handelt, der versucht, gute Namen / Verantwortlichkeiten basierend auf schlechten Namen den Klassen / Funktionen dieses Systems zuzuweisen, so dass es in meinem Kopf Sinn macht. Sobald dies der Fall ist, sind die Implementierungen auf niedriger Ebene viel leichter zu merken.
Das ist alles was ich habe. Es gibt eine Menge Puristen auf dieser Seite, die beschwören, welche Muster oder Objekte von welcher Art auch immer, aber eine gute Benennung wird Sie weit bringen. Ich selbst habe mehr als gute Arbeit geleistet, indem ich minimal dokumentierten / gut benannten / gut entkoppelten Code erstellt habe, und es hat mich nie wieder gebissen, selbst wenn mein Code an vielen Orten von vielen Leuten verwendet wurde, aber der Eine Sache, die ich richtig gemacht habe, war, viel Zeit mit guten Namen, guten Kommentaren und Schaltplänen zu verschwenden, die den Ablauf meines Codes erklärten. Eine einfache Implementierung ist erforderlich, um zu verstehen, ob Sie meinen Code umfassend erweitern möchten. Gut geschriebener Code kann auf vernünftige Weise erweitert werden. Es ist also in Ordnung, dass jemand oder Sie die Implementierungen auf niedriger Ebene nicht verstehen / sich daran erinnern.
Wenn Sie an einer Kontroverse interessiert sind, von der sowohl die Leute in meinem ursprünglichen Fach als auch ich wissen, dass sie die Wahrheit sind, aber wenn Sie sich anhören, was hier niedergeschrieben ist, werden Sie lernen, dieser Antwort sowohl zuzustimmen als auch nicht zuzustimmen Lesen Sie weiter:
Aber es gibt noch ein anderes Thema - Puristen. Sie werden gut formulierte Antworten und Ideologien hören, die vernünftig und völlig logisch sind. Tatsächlich ist daran nichts auszusetzen. Aber du musst ihnen nicht folgen, denn sie könnten zu deinem Nachteil sein.
Meine Freunde haben mit großen Systemen gearbeitet und sie lachen nur über Leute, die sich ein bisschen zu sehr für Konventionen und Muster interessieren, und aus gutem Grund würde ich es auch tun - ich kann meine Gründe dafür aus meinem Hauptgebiet der Datenanalyse entnehmen. da ich kein so erfahrener Entwickler bin: Die meisten Dinge, die Sie für wichtig halten, spielen keine Rolle, und in diesem Sinne besteht eine starke Korrelation zu Ihrem Ego.Oftmals hat ein Individuum aufgrund seines Ego Kenntnis davon erlangt, dass er höchstwahrscheinlich aufgrund seiner Vorurteile missverstanden wurde, die jetzt durch eine Autorität verstärkt werden, von der er glaubt, dass sie nur "das gleiche wie ich" gesagt hat. Dies ist eine sehr bekannte Falle, in die man niemals hineinfallen sollte. Das bedeutet nicht, dass er es nicht richtig oder zum Wohle des Gemeinwohls einsetzt, aber oft versprechen diese Leute, dass alles, was sie sagen, der goldene Preis ist.
Also was kannst du tun?
Erläutern Sie Ihren Code einem Kollegen und fragen Sie ihn, ob er unter allgemeinen Gesichtspunkten sinnvoll ist.
Das ist alles was zählt. Natürlich hat jeder, der den Code eines anderen liest, immer eine Alt-Tab-Fiesta, um die Implementierung bestimmter Dinge zu sehen, aber das spielt keine Rolle, wenn derjenige, der den Code liest, über ein umfassendes Verständnis Ihres Systems verfügt und versteht, warum Dinge passieren "(wieder, ohne unbedingt zu wissen, wie sie passieren), dann bist du golden.
Das sage ich nicht, mach weiter und schreibe Mistcode, der nicht performant ist oder nichts respektiert, aber was ich sage, ist:
1) Es ist in Ordnung zu vergessen. Mit der Zeit werden Sie besser darin sein, Code zu lesen, mit dem Sie arbeiten. Wenn der Code, den Sie lesen, erfordert, dass Sie die Implementierungen auf niedriger Ebene auf einem guten Niveau kennen, dann ist der Code schlecht geschrieben und spielt mit dem, was ich zuvor gesagt habe, zusammen: Versteht ein Mitarbeiter Sie?
2) Die Welt ist voller sehr intelligenter Menschen, die nicht sehr klug sind. Sie sind auch oftmals sehr emotional und neigen dazu, sich durch äußere Kräfte zu verstärken. Sie sind sehr gut darin, was sie tun, aber was sie als Akteure der Informationsverbreitung vergessen, ist: Ideen / Informationen, auch wenn sie von "Logik" gestützt werden, haben den Kontext desjenigen, der sie sendet, was entscheidend für das Verständnis ist, ob dies der Fall ist oder nicht Informationen sind auch für Sie nützlich. Was für Sie Sinn macht, könnte für andere Sinn machen, und sie würden es lieben, aber Informationen sollten nicht als absolut angesehen werden, und man sollte den Kontext, aus dem sie stammen, berücksichtigen oder zumindest versuchen, ihn mit seinem zu vergleichen eigenen Kontext, um zu sehen, ob es passt. Es ist wirklich das Gleiche wie wenn Milliardäre uns diese "Bits des Wissens geben, um voranzukommen".
Kurz gesagt: Schreiben Sie verständlichen Code und stellen Sie fest, dass es immer noch umstritten ist, wo wir so viele Muster / Klassen und Raffinerie benötigen, wie manche sagen. Es gibt sehr kluge Leute auf beiden Seiten des Streits, und es sollte nur die Idee bekräftigen, alles, was für Ihr Team funktioniert, auf vernünftige Weise zu erledigen Denken Sie später daran, dass Sie in einer extrem wettbewerbsintensiven Welt leben, in der das Timing das Wichtigste ist:
Timing für den Erfolg von Startups.
Teilen Sie Ihre Zeit und Ressourcen sinnvoll und gierig ein.
Hier ist eine Bearbeitung, 6 Monate später:
Es war eine verrückte Reise. Ich hätte nie gedacht, dass nur eine Trennung / gute Benennung und Dokumentation es Ihnen grundsätzlich ermöglichen kann, irgendetwas aus Ihrer Codebasis heraus und hinein zu stecken. Ich musste eine Menge Code neu schreiben, um ihn mit den neuen Änderungen auf den neuesten Stand zu bringen, und ich habe in 2-3 Tagen einen guten Teil davon gemacht. Ich kann mit Sicherheit sagen, dass ich SOLID nicht überall befolgt habe, weil mir Kenntnisse oder Best Practices gefehlt haben, und ich kann sagen, dass sie in meinen technischen Schulden stecken, aber nicht sehr viel. Trennen, benennen und dokumentieren, so können Sie den Code in kürzester Zeit ändern, wenn Sie irgendwann feststellen, wie dumm Sie waren.
Verstehen Sie mich nicht falsch: Wenn Sie Ihren Code eng miteinander verknüpft schreiben, werden Sie große Schmerzen haben, unabhängig davon, ob Sie SOLID hassen oder nicht. Selbst wenn Sie es verstehen und auf einer Basisebene anwenden, können Sie eine großartige Entkopplung erzielen, was ehrlich gesagt der Fall ist das einzige, bei dem OOP wirklich hilft. OOP sollte sich auch mit der Wiederverwendung von Code befassen und dabei kommt es hier und da vorWenn Sie nicht wirklich viele von Ihnen erstellte Objekte wiederverwenden können, konzentrieren Sie sich darauf, sicherzustellen, dass Ihr System gut voneinander getrennt ist. Wenn Sie reif sind und davon ausgehen, dass Onkel Bob Ihr Projekt leitet, wird er sagen: "Okay, das ist verdammt doof, aber zumindest ist alles getrennt, gut benannt und dokumentiert, damit ich zumindest weiß, worum es geht " (Ich hoffe). Bei mir funktioniert es. Mein LOC ändert sich ständig, aber zum Zeitpunkt des Schreibens sind es 110.000 Codezeilen, 110.000 Codezeilen, die für eine einzelne Person harmonisch funktionieren, eine Menge.
Hier ist eine Änderung, 3 Monate später, an einem 8-Monats-Code, den ich überarbeite:
Es macht alles Sinn. Ich kann jetzt das, was ich damals geschrieben habe, konzeptionell aufnehmen und den Code neu schmieden, mit neuen Ideen, weil ich genau verstehe, was los ist und warum es aufgrund der Schaltpläne / guten Benennung und der Kommentare funktioniert. Ich habe vor langer Zeit einen Code geschrieben, dem es egal war, wie man sich gut nennt, und es tut mir weh, ihn durchzuarbeiten. Ich überlege mir jetzt, was der nächste Schritt zur Erklärung meines Codes sein könnte.