Ich mache derzeit ein Praktikum in einem großen Unternehmen und sie machen viele Änderungen in der Softwarebereitstellungsstruktur durch (Wechsel zu Agile).
In den letzten paar Monaten habe ich festgestellt, dass diese religiöse Bindung an Clean Code
Praktiken und das Buch für die Entwickler wie eine Bibel ist.
Eines der wichtigsten Merkmale des sauberen Codes ist der selbsterklärende Code, der auf einer verständlichen Benennung und einem strengen Re-Factoring basiert. Darauf folgt die no commenting
Regel.
Ich verstehe, dass dieser saubere Code eine langfristige Investition ist, die nach der Wartung und Verbesserung des Codes einfacher wird, aber ... ist das wirklich all diese Aufregung wert?
Würde jemand seine Erfahrungen mit Clean Code und jede Meinung teilen, ob ich einfach zu konservativ bin oder es nur ein vorübergehender Trend ist?
quelle
CalculateFoonicityMetric()
sagt Ihnen genau, was sie tut, und gut geschriebener Code zeigt Ihnen, wie ... aber keine dieser Methoden sagt Ihnen, warum . Code kann offensichtlich sein in was (multiplizieren Sie dies mit dem, dividieren Sie durch das andere Ding, quadrieren Sie es, addieren Sie dieses Bit ...), aber unklar in warum (Faktor = a * b / c; Quadrat, um negative foo zu berücksichtigen, anpassen für Drift ...). Ich freue mich über einen kurzen Kommentar, der erklärt, warum.Antworten:
Absolut.
Sicher, aber denken Sie daran, dass das große Unternehmen wahrscheinlich jahrelang oder jahrzehntelang schlechten Code zum Aufräumen hat. Es wird viel Zeit und Mühe kosten, dies zu tun.
Die Hauptsache ist, dass Sie beide Recht haben. "Clean Code" ist sehr wichtig, und Clean Code ist ein allgemein anerkannter Weg, um dorthin zu gelangen. Da das Unternehmen gerade erst auf dem Weg ist, werden sie dem Buch mehr verpflichtet sein als einer Gruppe, die mehr Erfahrung hat. Sobald sie es für eine kurze Zeit getan haben, werden sie lernen, was funktioniert und was nicht. Sobald sie das besser verstehen, werden sie (hoffentlich) einen pragmatischeren und natürlicheren Ansatz verfolgen, der sauberen Code beibehält, aber nicht zu 70 Zeichenfunktionsnamen führt.
quelle
Ich habe ursprünglich einen Kommentar geschrieben. Ich werde versuchen, weniger eine Antwort als Perspektiven zu geben. Ich unterstütze jedoch unbedingt "Clean Code" -Praktiken wie verständliches Benennen und Refactoring.
Ich habe die Regeln für keine Kommentare immer abgelehnt , da es Fälle gibt, in denen Kommentare erforderlich sind, um zukünftige Codebrüche zu verhindern. Sie sollten normalerweise darauf beschränkt sein, was getan wird und warum. Verwenden Sie sie sparsam, wenn der Code etwas Unerwartetes tut oder ein Algorithmus ersetzt werden musste.
Berücksichtigen Sie die Produktivität beim Lesen oder Verwalten von Code. Während der Lebensdauer des Codes kann dies beim Schreiben des Codes wichtiger sein als die Produktivität. Werden diese Praktiken die Produktivität bei diesen Aufgaben unterstützen?
Mit der Erfahrung sollten diese Praktiken tief verwurzelt sein und weniger ein Produktivitätskiller sein. Die Auswahl des richtigen Namens kann länger dauern, da Sie klarstellen, was der Code tun muss. (Diese Klarstellung kann das Codieren und Debuggen beschleunigen.) Führt dies zu Code, der nur das tut, was erforderlich ist, oder der weniger Fehler aufweist? Wie wirkt sich das auf die Produktivität aus?
Die Zeit, die für die Auswahl des richtigen Methodennamens benötigt wird, zahlt sich wahrscheinlich sofort aus, um den Zweck der Methode besser zu verstehen. Vergleichen Sie die Methodennamen "iterateOverCustomers" mit "locateActiveCustomers". Welches vermittelt die Absicht der Funktion? Welches lässt sich bei Bedarf leichter umgestalten?
quelle