Manchmal verbringe ich lächerlich viel Zeit (Stunden) damit, Code "hübsch aussehen" zu lassen. Ich meine, die Dinge symmetrisch aussehen zu lassen. Ich werde tatsächlich schnell durch eine ganze Klasse scrollen, um zu sehen, ob etwas herausspringt, das nicht "hübsch" oder "sauber" aussieht.
Verschwende ich meine Zeit? Gibt es einen Wert in dieser Art von Verhalten? Manchmal ändert sich die Funktionalität oder das Design des Codes nicht einmal. Ich strukturiere ihn einfach neu, damit er besser aussieht.
Bin ich nur total Zwangsstörung oder verbirgt sich ein Vorteil darin?
clean-code
TaylorOtwell
quelle
quelle
Antworten:
Verwenden Sie einen Auto-Formatierer. Wenn Sie wirklich so viel Zeit damit verbringen, den Code manuell zu bearbeiten, würde ich vermuten, dass Sie nicht sehr herausgefordert / gelangweilt sind, da es absolut keinen Grund dafür gibt. Strg + K, Strg + D in VS formatiert ein gesamtes Dokument. Sie können so etwas wie Style Cop verwenden, wenn Sie etwas mehr Schwergewicht wollen.
Es ist gut, stolz auf Ihren Code zu sein, aber nicht, wenn es darum geht , intelligent zu sein (nach der effizientesten Lösung zu suchen. In diesem Fall ein Tool zur Automatisierung eines langwierigen Prozesses zu verwenden) und Dinge zu erledigen (was auch immer möglich ist) Sie haben in diesen Stunden gearbeitet?).
quelle
Wenn Sie nichts ändern, was ein besseres Verständnis ermöglicht, dann verschwenden Sie Ihre Zeit.
quelle
Nichts verborgenes, hübscher Code ist einfach zu lesen und zu warten.
"Hours" scheint allerdings etwas übertrieben, es sei denn, Sie haben eine riesige Codebasis. Nicht alles muss perfekt sein, es muss nur gut sein
quelle
Es ist eine Frage des Urteils. Wenn Sie Stunden verbringen, würde ich sagen, dass Sie übertrieben sind. Es gibt jedoch Dinge, die ein Mensch tun kann, die ein Auto-Formatierer nicht kann, und Dinge, die Sie tun können, um Ihren Code lesbarer zu machen, die in den Kodierungsstandards von Unternehmen nur schwer zu erfassen sind.
Wenn ich zum Beispiel Variablen in einer Klasse deklariere, mag ich logische Gruppierungen - das macht es einfacher, der Logik zu folgen.
Code wird in der Regel als "einmal schreiben, viele lesen" betrachtet, daher ist es eine gute Angewohnheit, das Leseerlebnis angenehm zu gestalten - aber das Layout ist meiner Meinung nach weit weniger ein Problem als klare Namenskonventionen, saubere Abstraktionen und gut strukturierte Methodensignaturen.
Ich habe wunderschön formatierten Code gesehen, der schwerwiegende WTF-Momente verursachte, weil der zugrunde liegende Denkprozess fehlerhaft war. Wenn Sie Stunden zu verbringen haben, würde ich es für Design und Refactoring ausgeben, anstatt Layout ...
quelle
Nein, Sie sind nicht völlig Zwangsstörung. Das größte Kompliment, das ich je als Programmierer gehört habe, war: "Ihr Code ist so sauber, dass mein kleiner Bruder es herausfinden könnte."
Eines Tages wird jemand Ihren Code unterstützen müssen. Sauberer Code ist viel einfacher zu unterstützen. Und eines Tages könnten Sie es sein. In 6 Monaten oder einem Jahr wirst du dich nicht erinnern, was du getan hast. Aber wenn es sauber und leicht zu lesen ist, kommt es schnell wieder.
Das heißt, wenn der Code Müll ist, hilft es nicht, hübscher Müll zu sein. Aber wenn es gut strukturiert ist und nur Funktionsprobleme aufweist, ist es viel einfacher, die Funktionalität zu verbessern.
quelle
Nein - davon besessen zu sein, Code hübsch aussehen zu lassen, bringt nichts .
Hier sind einige Weisheiten, die ich nützlich fand:
Fragen Sie, warum Code aufgeräumt werden muss.
Sie können Ihre Zeit je nach Ihrer Definition von hübsch verschwenden oder auch nicht.
Wenn Sie das Concurrent Versions System verwenden, um Änderungen im Code nachzuverfolgen - Mischen Sie Änderungen in der Code-Formatierung nicht mit Änderungen in der Logik / beim Hinzufügen von Funktionen innerhalb desselben Commits.
Auch Martin Fowler spricht davon, zwei Hüte zu tragen und den ganzen Tag zwischen ihnen zu wechseln. Ein Hut zum Hinzufügen von Features, ein Hut zum Refactoring.
Versuchen Sie also nicht stundenlang, die gesamte Codebasis zu verschönern. Machen Sie einfach genügend Code fertig, um die nächste Funktion hinzuzufügen.
Kurz gesagt ... lassen Sie jeden Code in einem schöneren Zustand als bei Ihrer Ankunft.
quelle
Wenn es sich um eine reine Formatierung handelt, ist es wahrscheinlich besser, wenn Sie einem hübschen Drucker beibringen, wie Ihr Code formatiert werden soll. Das ist im Vorfeld etwas kostspielig, aber ich kann mir vorstellen, dass Sie diesen Timer in 2-3 Anwendungen wieder gutmachen werden.
Wenn es sich tatsächlich um ein Refactoring handelt, möglicherweise nicht. Konzeptionell sauberer Code ist in der Regel einfacher zu modifizieren und "immer sauber" zu haben, verringert die Versuchung, etwas durchzulassen, nur weil es anderen stinkenden Code gibt.
quelle
Es hilft ein wenig, aber es lohnt sich nicht, viel Zeit damit zu verbringen. Stellen Sie außerdem sicher, dass Ihre Verbesserungen auch Variablenbereich, RAII, Gruppenkopie / eingefügten Code usw. hinzufügen. Wenn Sie dies alles tun, wird es 1000x einfacher, wenn Sie verstehen müssen, was der Code nach einem Jahr oder so tut.
quelle
Sie sollten sauberen Code produzieren, aber es sollte nicht Stunden dauern.
Für C gibt es das Gnu-Programm Gnu-indent Gnu-indent , in Eclipse, zumindest ein CodeFormatter für Java, und ich denke , es gibt Werkzeuge für die meisten anderen Sprachen auch. Es sollte ein paar Klicks dauern, um eine Datei korrekt einzurücken, und ein paar Minuten, wenn Sie die Regeln für bestimmte Zwecke verletzen möchten - wie ich es für kurze switch-case-Anweisungen tue:
das ist schwer zu spezifizieren.
quelle
Wenn Sie denken, dass etwas sauber aussieht, indem Sie es überfliegen, konzentrieren Sie sich auf etwas Oberflächliches, das automatisiert werden kann.
Lesen Sie diesen klassischen Artikel zum Thema "Falscher Code sieht falsch aus", und Sie werden genau erkennen, warum die Leute Einrückungen (die automatisch ausgeführt werden können) für gewöhnlich für trivial halten:
http://www.joelonsoftware.com/articles/Wrong.html
Insbesondere diese Liste:
quelle
"Std"? Nun, ich würde sagen, Ihre Antwort ist "und", nicht "oder": Ja, Sie sind Zwangsstörung, aber das hat einen gewissen Vorteil.
Wahrscheinlich.
Erleichtert es das schnelle Lesen Ihres Codes? Erleichtert es das Überfliegen, herauszufinden, was wo stoppt und beginnt, Funktionen, Variablen usw. zu finden? Macht es die Funktionsweise Ihres Codes klarer? Zwingt Sie der Prozess des Aufmachens dazu, einige Entwurfsentscheidungen zu überdenken und toten Code oder halbfertige Lösungen, die Sie letztendlich aufgegeben haben, zu entfernen? Wenn ja, hat es absolut Wert.
Auf der anderen Seite, wenn Sie eine perverse Art gefunden haben, Ihren eigenen Sinn für Ästhetik zu erreichen, ohne Ihren Code wirklich einfacher zu bearbeiten, dann ist es eine große Zeitverschwendung.
Was mich angeht, neige ich dazu, selbst auf das OCD-Ende zu fallen - aber ich werde nicht aufhören. Das Bereitstellen von Dokumentation für eine Klasse oder Funktion zwingt mich, darüber nachzudenken, wie das Ding wirklich funktioniert - ich schreibe es, damit es schließlich jemand, der nicht ich bin, verstehen kann. Und wenn ich eine Reihe von Warnungen und Vorbehalten auslasse und mich dafür entschuldige, dass der Code so funktioniert, wie er funktioniert, dann ist das eine ziemlich starke Warnung, die eine weitere Optimierungsrunde erfordert, bevor ich ihn für beendet erkläre.
quelle
Zunächst ist nichts falsch daran, Ihren Code hübsch aussehen zu lassen, denn schließlich möchten Sie stolz auf Ihre Erstellung sein, und die Präsentation / Formatierung von Code ist ein Teil davon.
Ich würde jedoch vorsichtig sein, wenn Sie Ihren Code nicht zum Wohle Ihrer Kollegen oder zukünftigen Entwickler überformatieren. Schön für dich, vielleicht nicht schön für mich. :)
quelle
Sie erkennen das Problem (zwanghaftes Verhalten) und das Symptom (obsessive Formatierung).
Was ist mit der Ursache und Heilung?
Manchmal sind diese Symptome ein Zeichen dafür, dass es an der Zeit ist, mutige Änderungen vorzunehmen oder weiterzumachen.
Trotz des schlechteren Titels enthält Yourdons Buch viele hilfreiche Vorschläge und enthält für viele Organisationen eine ziemlich genaue Beschreibung.
http://dev.co.ua/docs/Edward%20Yourdon%20-%20Death%20March.pdf
Sie scheinen ziemlich aufschlussreich zu sein, und ich glaube, Sie kennen die Antwort.
Jetzt gib dir die Erlaubnis, danach zu handeln.
quelle
Heilige Rinder!
Sie Leute haben noch nie von Einrückung gehört?
Es ist ein Dienstprogramm zum Formatieren von Code, das es seit über 20 Jahren gibt. Es verfügt über eine Vielzahl von Optionen, sodass Ihr Code automatisch formatiert werden kann, wo immer Sie möchten.
ähm - aber es funktioniert nur auf C und einigen, aber nicht allen C ++ ... (wtf? Warum aktualisiert GNU es nicht?)
quelle