Aus mehreren Gründen kommentiere ich während der Entwicklung manchmal Code aus. Da ich chaotisch bin und es manchmal eilig habe, schaffen es einige von ihnen zur Quellcodeverwaltung.
Ich benutze auch Kommentare, um Codeblöcke zu klären.
Zum Beispiel:
MyClass MyFunction()
{
(...)
// return null; // TODO: dummy for now
return obj;
}
Obwohl es "funktioniert" und viele Leute es auf diese Weise tun, ärgert es mich, dass Sie auskommentierten Code nicht automatisch von "echten" Kommentaren unterscheiden können, die den Code verdeutlichen:
- Es fügt Rauschen hinzu, wenn versucht wird, Code zu lesen
- Sie können nicht nach auskommentiertem Code suchen, z. B. nach einem On-Commit-Hook in der Quellcodeverwaltung.
Einige Sprachen unterstützen mehrere einzeilige Kommentarstile - zum Beispiel in PHP, die Sie entweder verwenden können //
oder #
für einen einzeiligen Kommentar - und Entwickler können sich darauf einigen, einen dieser Stile für auskommentierten Code zu verwenden:
# return null; // TODO: dummy for now
return obj;
Andere Sprachen - wie C #, das ich heute verwende - haben einen Stil für einzeilige Kommentare (richtig? Ich wünschte, ich hätte mich geirrt). Ich habe auch Beispiele für das "Auskommentieren" von Code unter Verwendung von Compiler-Direktiven gesehen, was für große Codeblöcke großartig ist, aber für einzelne Zeilen ein wenig übertrieben, da für die Direktive zwei neue Zeilen erforderlich sind:
#if compile_commented_out
return null; // TODO: dummy for now
#endif
return obj;
Sollte "deaktivierter Code" nicht eine eigene Syntax in den Sprachspezifikationen erhalten, da das Auskommentieren von Code in jeder (?) Sprache erfolgt? Sind die Vorteile (Trennung von Kommentaren / deaktiviertem Code, Editoren / Quellcodeverwaltung) gut genug und die Nachteile ("sollte sowieso nicht auskommentieren", kein funktionaler Teil einer Sprache, potenzielle IDE-Verzögerung (danke Thomas))))) )) Opfer wert?
Bearbeiten
Mir ist klar, dass das Beispiel, das ich verwendet habe, albern ist. Der Dummy-Code kann leicht entfernt werden, da er durch den tatsächlichen Code ersetzt wird.
/# ... #/
das wäre anders in den IDE markiert (für visuelle Hinweise) und vielleicht einen Compiler generieren Warnung , die dann in der Nightly Build gefangen und berichtet würde, wenn jemand sich solche Änderungen wieder überprüfen in die Quellcodeverwaltung.