Technisch nein aber sonst absolut ja !!!
Vergessen Sie "Es ist Ihre persönliche Präferenz", "Der Code läuft einwandfrei", "Es hat bei mir gut funktioniert", "Es ist besser lesbar" yada yada BS. Dies kann leicht zu sehr ernsten Problemen führen, wenn Sie einen Fehler machen und glauben Sie mir, dass es sehr leicht ist, beim Codieren einen Fehler zu machen (Glauben Sie nicht? Schauen Sie sich den berühmten Apple Go to Fail-Fehler an ).
Argument: "Es ist persönliche Präferenz"
Nein ist es nicht. Es sei denn, Sie sind ein Ein-Mann-Team, das am Mars abreist, nein. Die meiste Zeit werden andere Leute Ihren Code lesen / ändern. In jedem seriösen Codierungsteam ist dies der empfohlene Weg, daher handelt es sich nicht um eine "persönliche Präferenz".
Argument: "Der Code läuft einwandfrei"
Der Spaghetti-Code auch! Bedeutet das, dass es in Ordnung ist, es zu erstellen?
Argument: "Es hat gut für mich funktioniert"
In meiner Karriere habe ich so viele Fehler gesehen, die aufgrund dieses Problems entstanden sind. Sie erinnern sich wahrscheinlich nicht daran, wie oft Sie das 'DoSomething()'
Warum kommentiert und verblüfft haben 'SomethingElse()'
:
if (condition)
DoSomething();
SomethingElse();
Oder 'SomethingMore' hinzugefügt und nicht bemerkt, dass es nicht aufgerufen wird (obwohl der Einzug etwas anderes impliziert):
if (condition)
DoSomething();
SomethingMore();
Hier ist ein Beispiel aus dem wirklichen Leben, das ich hatte. Jemand wollte die gesamte Protokollierung deaktivieren, damit find & replace "console.log"
=> ausgeführt wird //"console.log"
:
if (condition)
console.log("something");
SomethingElse();
Sehen Sie das Problem?
Selbst wenn Sie denken, "diese sind so trivial, würde ich das niemals tun"; Denken Sie daran, dass es immer ein Teammitglied mit schlechteren Programmierkenntnissen als Sie geben wird (hoffentlich sind Sie nicht der schlechteste im Team!)
Argument: "es ist besser lesbar"
Wenn ich etwas über Programmierung gelernt habe, werden die einfachen Dinge sehr schnell sehr komplex. Es ist sehr häufig, dass dies:
if (condition)
DoSomething();
wird nach dem Testen mit verschiedenen Browsern / Umgebungen / Anwendungsfällen oder dem Hinzufügen neuer Funktionen zu Folgendem:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Und vergleiche es damit:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PS: Bonuspunkte gehen an diejenigen, die den Fehler im obigen Beispiel bemerkt haben.