Die kurze, bessere und richtige Antwort
Die Idee, dass gut geschriebener, "selbst dokumentierter Code" alles ist, was Sie brauchen, ist ein Anti-Pattern und sollte sterben, selbst wenn es Ausnahmen für Kommentare gibt, die das "Warum" erklären. Es ist ein Mythos, dass Sie den gesamten Code für jeden Algorithmus immer so klar schreiben können, dass jeder Programmierer einen Blick darauf werfen und ihn abrufen kann. Noch wichtiger ist, dass Programmierer, die glauben , klaren Code zu schreiben, dies häufig nicht tun.
Eine viel bessere Antwort als Kommentare sollte nur verwendet werden, um zu erklären, "warum" Kommentare sollten:
- erkläre "warum" (natürlich)
- Erklären Sie "Was" in einzelnen Zeilen nur, wenn der Code komplex oder der Zweck unklar ist und es sich nicht lohnt, ihn weiter zu vereinfachen
- Erklären Sie "Was" für Codeblöcke, um das Verständnis zu beschleunigen und das zu lokalisieren, was Sie benötigen
Die Erklärung zum Sichern
Die Leute denken fälschlicherweise, dass der einzige Grund, warum sie Kommentare verwenden, darin besteht, zu erklären, was eine Codezeile bedeutet. Die Wahrheit ist, dass das Kommentieren von Code vor allem dazu dient, diesen schneller zu machenDurchsuchen Sie Ihren Code und finden Sie, wonach Sie suchen. Wenn ich später zum Code zurückkehre oder den Code eines anderen lese, kann ich zwar einen Teil des gut geschriebenen Codes lesen und verstehen - aber ist es nicht schneller und einfacher, den Kommentar oben zu lesen, in dem steht, was dieser Teil des Codes bewirkt, und Überspringe es insgesamt, wenn es nicht das ist, wonach ich suche? Warum sitzen Sie da und finden Sie überhaupt den Code heraus, auch wenn er gut geschrieben ist, wenn Sie ein paar Kommentare lesen und eine ganze Funktion verstehen können? Aus diesem Grund verwenden wir beschreibende Namen für Funktionen - niemand sagt, dass ich keinen beschreibenden Namen für meine Funktion verwenden muss, weil jemand einfach durch meinen sauber geschriebenen Code schauen kann, um zu sehen, was er tut.
Wenn ich zum Beispiel die Funktion eines anderen durchschaue, ist es einfacher, den Code zeilenweise durchzugehen, um zu sehen, was er tut, oder auf drei gut geschriebene Kommentare in der Funktion zu blicken, um genau zu sehen, was die Funktion tut und wo es macht es?
Ein weiteres Anti-Pattern ist der übermäßige Gebrauch von Funktionen, um Ihren Code zu kommentieren. Gut benannte Funktionen sind ein wichtiger Bestandteil der Codedokumentation, aber manchmal trennen Programmierer 2-3 Codezeilen, die sonst nirgends verwendet werden, in eine Funktion für Dokumentationszwecke. Warum ist die Überbeanspruchung von Funktionen besser als die Überbeanspruchung von Kommentaren? Das Verwenden solcher Funktionen ist dasselbe wie das Umfassen von GOTO-Anweisungen - es wird Spaghetti-Code erstellt, dem man nur schwer folgen kann.
Wenn Sie in einer Unternehmensumgebung arbeiten, in der ständig Code ausgetauscht wird und die Menschen nicht immer die Zeit haben, ihren Code zu perfektionieren, können ein paar gute Kommentare viel Zeit und Frust sparen. Und denken Sie daran, auch wenn Sie ein Guru sind, der Code mit Lichtgeschwindigkeit lesen kann, ist dies wahrscheinlich nicht jeder in Ihrem Büro.