Selbstdokumentierter Code ist einfacher zu lesen und zu warten
Befolgen Sie das Prinzip der geringsten Versöhnung und das Gebot des Codes als Dokumentation : Verwenden Sie eine Variable für ein Ziel, um sowohl die Verwendung verständlich als auch den Code ohne Erklärungen leicht lesbar zu machen.
Richtig strukturierter Code ist einfacher (also billiger) zu (wieder) verwenden
Auch hier scheint es, dass query
immer verwendet wird, um eine Anweisung vorzubereiten, bevor sie ausgeführt wird. Dies ist wahrscheinlich ein Zeichen dafür, dass Sie einen Teil dieses Codes in eine (oder mehrere) Hilfsmethoden umgestalten möchten, um die Abfrage vorzubereiten und auszuführen (um dem DRY-Prinzip zu entsprechen ).
Auf diese Weise werden Sie effektiv:
- Verwenden Sie nur eine Variable in Ihrer Hilfsmethode, um die Abfrage des aktuellen Kontexts zu identifizieren.
- Sie müssen jedes Mal weniger Code eingeben, wenn Sie eine Abfrage erneut ausführen möchten.
- Machen Sie Ihren Code für andere lesbarer.
Beispiele:
Betrachten Sie dies aus Ihrem Beispiel, wo die überarbeitete Version offensichtlich besser ist. Natürlich war Ihr Snippet nur ein Beispiel für den Zweck dieser Frage, aber das Konzept gilt immer noch und skaliert.
Ihr Beispiel 1:
Strings querycre,queryins,queryup,querydel;
querycre = 'Create table XYZ ...';
execute querycre ;
queryins = 'Insert into XYZ ...';
execute queryins ;
queryup = 'Update XYZ set ...';
execute queryup;
querydel = 'Delete from XYZ ...';
execute querydel ;
Ihr Beispiel 2:
Strings query;
query= 'Create table XYZ ...';
execute query ;
query= 'Insert into XYZ ...';
execute query ;
query= 'Update XYZ set ...';
execute query ;
query= 'Delete from XYZ ...';
execute query ;
Beispiel 3 (Überarbeiteter Pseudocode):
def executeQuery(query, parameters...)
statement = prepareStatement(query, parameters);
execute statement;
end
// call point:
executeQuery('Create table XYZ ... ');
executeQuery('Insert into XYZ ...');
executeQuery('Update XYZ set ...');
executeQuery('Delete from XYZ ...');
Der Nutzen zeigt sich bei regelmäßiger Wiederverwendung.
Persönliche Anekdote
Ich habe ursprünglich als C-Programmierer angefangen, der mit begrenzten Bildschirmflächen arbeitete. Daher war die Wiederverwendung von Variablen sowohl für den kompilierten Code (damals) als auch für die sofortige Lesbarkeit von mehr Code sinnvoll.
Nachdem ich mich dann den höheren Sprachen zugewandt und die funktionale Programmierung aufgefrischt hatte, habe ich mir angewöhnt, unveränderliche Variablen und unveränderliche Referenzen zu verwenden, wo immer dies möglich war, um Nebenwirkungen zu begrenzen.
Was ist drin für mich?
Wenn Sie es sich zur Gewohnheit machen, dass alle Eingaben Ihrer Funktion unveränderlich sind und ein neues Ergebnis zurückgeben (wie es eine echte mathematische Funktion tun würde), gewöhnen Sie sich an, Speicher nicht zu duplizieren.
Im weiteren Sinne führt dies zu:
- Sie schreiben kurze Funktionen,
- mit klar definierten Zielen,
- das sind leichter zu verstehen,
- wiederverwenden,
- zu erweitern (ob durch OO-Vererbung oder durch funktionelle Verkettung),
- und dokumentieren (wie bereits selbstdokumentierend).
Ich sage hier nicht, dass ein veränderlicher Zustand keinen Nutzen bringt. Ich möchte nur darauf hinweisen, wie sich die Gewohnheit auf Sie auswirken könnte und wie sich dies auf die Lesbarkeit des Codes auswirkt.