reapers blog

Programmierer sind ja schreibfaul. Statt einer normalen Verzweigung erfanden sie also irgendwann die ternäre Operation. Also das weglassen des umständlichen if .. then .. else Krams und die Reduktion der Anweisung auf eine Zeile. Das kann viel Tipparbeit sparen, und reduziert die Codezeilen und erhöht unter Umständen die Übersicht. Immer wieder stoplere ich aber auch über ternäre Operationen die sich über mehrere Zeilen erstrecken und ungefähr so lesbar sind wie das Kleingedruckte auf einem Mobilfunkvertrag.

Das führt dann dazu das eigentlich offensichtliche Fehler übersehen werden. Als Beispiel: einer Variable wird entweder ein Wert oder NULL zugewiesen. Später wird geprüft ob die Variable NULL ist und die Verbeitung abgebrochen. Blöd nur wenn jetzt vor der Prüfung die 20 Zeilen später passiert jemand die Variable verwendet und übersieht das diese auch NULL sein kann.

Dabei könnte das Leben so einfach sein wenn man einfach abbricht statt die Variable erst umständlich auf NULL zu setzen. Der ternäre Operationen haben durchaus ihre Berechtigung, aber nicht um jeden Preis und schon gar nicht wenn dadurch die Lesbarkeit des Quellcodes leidet.

tags: coding
Kommentare
comment by: stef ( http://semaphor.org / 2009-07-08 19:57:11)
Hmm, das klingt aber irgendwie sehr nach einer gewachsenen Hässlichkeit. Bestimmt wurde irgend wann einmal zusätzlich zum Setzen des Wertes noch irgend etwas anderes getan, so dass nicht einfach abgebrochen werden konnte. Und später wurde auf die Variable vor dem Check auch noch zugegriffen. Das eigentliche Problem ist daher wahrscheinlich die von Dir angesprochene Faulheit leider des Öfteren zu Nachlässigkeit mutiert.
Einen Kommentar verfassen
Name:
E-Mail (ist optional und wird nich angezeigt):
Webseite:
Kommentar:
Bitte mal im Kopf ausrechnen: 6 minus 4 plus 99

Meine Stimme gegen Nazis! Nazis raus aus dem Internet Stoppt die Vorratsdatenspeicherung! Jetzt klicken und handeln! rsp-blogs.de
Soweit nicht anders angegeben, stehen die Bilder/Texte unter der Creative Commons Attribution Non-Commercial Share Alike Lizenz. Logos gehoeren dem jeweiligen Eigentümer.