Trockener Code
Code muss trocken sein!
Ganz einfach weil er sonst beginnt zu stinken. Trockener Code ist die, nicht ganz korrekte, Übersetzung von "DRY Code", wobei DRY als Abkürzung für Programmierparadigma "Don't repeat yourself" steht. Würden sich alle daran halten hät es den Millenium-Bug nie gegeben (naja, gegeben hätte es ihn wohl schon. Aber wir hätten ihn auf einer Zeile behoben) und Software Engineering währe einiges einfacher.
Warum ich darauf komme? Ganz einfach! Weil ich mich in letzter Zeit wieder viel zu häufig mit nassem und triefendem Code abgeben musst. Repräsentatives Beispiel ist dabei die Applikation WikkiTikkiTavi, die ansonsten eine ganz tolles Wiki ist, ein wenig Vertrauenswürdiger als unser Schulwiki, da sie an mehr Orten eingesetzt wird, und wesentlich weniger kompliziert als Mediawiki , welches meiner Meinung nach gar nicht WikkiWikki ist.
Das besagte WikkiTikkiTavi hatte ich letztlich auf meiner Seite installiert. Irgendwann hat Mirko bemerkt das die Datumsangaben an einigen Stellen falsch sind, aber nicht an allen. Das Problem wurde dann mit ein wenig Glück bei Google gefunden und die Lösung gleich dazu.
Schlimm dabei ist nicht nur das dieser, fehlerhafte, Code über die ganze Anwendung verteilt wurde sondern auch das man das ganze mit
Es gilt darum zwei Grundsätze einzuhalten: Eine Aufgabe wird nur von einem Stück Code erledigt und der Entwickler der Programmiersprache, der Libary oder der darunterliegenden Schicht schreibt immer besserer Code als ich, darum nutze ich diesen und schreib keinen eigenen. Wenn ich dann noch Unittests für meinen Code schreibe kann fast nichts mehr schief gehen.
Ganz einfach weil er sonst beginnt zu stinken. Trockener Code ist die, nicht ganz korrekte, Übersetzung von "DRY Code", wobei DRY als Abkürzung für Programmierparadigma "Don't repeat yourself" steht. Würden sich alle daran halten hät es den Millenium-Bug nie gegeben (naja, gegeben hätte es ihn wohl schon. Aber wir hätten ihn auf einer Zeile behoben) und Software Engineering währe einiges einfacher.
Warum ich darauf komme? Ganz einfach! Weil ich mich in letzter Zeit wieder viel zu häufig mit nassem und triefendem Code abgeben musst. Repräsentatives Beispiel ist dabei die Applikation WikkiTikkiTavi, die ansonsten eine ganz tolles Wiki ist, ein wenig Vertrauenswürdiger als unser Schulwiki, da sie an mehr Orten eingesetzt wird, und wesentlich weniger kompliziert als Mediawiki , welches meiner Meinung nach gar nicht WikkiWikki ist.
Das besagte WikkiTikkiTavi hatte ich letztlich auf meiner Seite installiert. Irgendwann hat Mirko bemerkt das die Datumsangaben an einigen Stellen falsch sind, aber nicht an allen. Das Problem wurde dann mit ein wenig Glück bei Google gefunden und die Lösung gleich dazu.
$time = mktime(substr($timestamp, 8, 2), substr($timestamp, 10, 2),Dieses Stück Code scheint nicht nur bei einigen Mysql-Versionen nicht zu funktioniere. Zudem war dieser Code, ganz untrocken, über die ganze Applikation verteilt und kopiert worden. So war an einigen Stellen bereits ein Workaround in die aktuelle Version eingeflossen an anderen liess man da ganze aber stehen.
substr($timestamp, 12, 2), substr($timestamp, 4, 2),
substr($timestamp, 6, 2), substr($timestamp, 0, 4));
Schlimm dabei ist nicht nur das dieser, fehlerhafte, Code über die ganze Anwendung verteilt wurde sondern auch das man das ganze mit
$time = strtotime($timestamp);oder mit
SELECT UNIX_TIMESTAMP(time);in SQL viel einfacher und robuster hätte haben können, wenn man die Funktionen der Programmiersprache oder der darunterliegenden Schicht verwendet hätte.
Es gilt darum zwei Grundsätze einzuhalten: Eine Aufgabe wird nur von einem Stück Code erledigt und der Entwickler der Programmiersprache, der Libary oder der darunterliegenden Schicht schreibt immer besserer Code als ich, darum nutze ich diesen und schreib keinen eigenen. Wenn ich dann noch Unittests für meinen Code schreibe kann fast nichts mehr schief gehen.
comments
add a comment
The Trackback URL to this comment is:
http://leo.freeflux.net/blog/plugin=trackback(268).xml
This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!





