Hello Stefan,
für komplexere Sachen nehme ich gerne Hilfsvariablen.
Ungefähr sorule1 = eine_recht_lange_bedingung
rule2 = eine_recht_lange_bedingung
rule3 = eine_recht_lange_bedingungif ( rule1 or rule2 or (rule2 and rule3)){
anweisung;
anweisung;
}So kann man gut Kommentare ergänzen und hat die Evaluation der Zustände
und deren logische Verknüpfung hübsch getrennt.
da habe ich ein Negativbeispiel aus einer Funktion, die ich vorhin (hoffentlich) etwas betriebssicherer gemacht habe:
Original:
---------
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14));
if ($FILE['file_type'] != 19778) return FALSE;
"Fälschung" von mir:
--------------------
$buffer = fread($f1,14);
if (strlen($buffer) != 14)
{
fclose($f1);
return false;
}
$FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", $buffer);
if ($FILE['file_type'] != 19778)
{
fclose($f1);
return FALSE;
}
Hier steckten zwei mMn gravierende Fehler im Code:
1. Das Ergebnis der read()-Funktion wurde nicht verifiziert.
Man kann 14 Bytes anfordern, aber z.B. nur 7 geliefert bekommen.
2. Beim Abbruch der Funktion, die im Realbetrieb durchaus schon mal 300 Mal in
einer Schleife aufgerufen wird, wird ein Lost Handle erzeugt.
Beide Fehler sind beliebt und führen im harten Einsatz regelmäßig zum Absturz des Systems bzw. des Mutterprozesses (oder sagt man Vaterprozess?).
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
