Facebook
Twitter
Google+
Kommentare
1

KISS – Keep it simple and stupid

Keep it simple and stupid. Dieses Thema scheint, nicht zuletzt durch die Keynote von Rasmus Lerdorf auf der Froscon, wieder in aller Munde zu sein. Da wir uns auch immer wieder darüber unterhalten, wollte ich dieses „heikle“ Thema hier doch auch mal ansprechen.

Aber was meint man eigentlich, wenn man vom KISS Prinzip spricht. Bei uns im Team gilt als erste Folge aus diesem Satz die Regel, dass eine Funktion genau eine Aufgabe erledigt und nicht mehr. Klingt eigentlich ganz einfach, ist es aber leider nicht. Ok es ist einfach, aber man hölt sich trotzdem nicht immer dran. Wenn ich für jede Methode die ich gefunden habe, die mehr als 300 Zeilen Code beeinhaltet hat einem Euro bekommen hätte, dann wäre ich jetzt ein reicher Mann. Und bei einer sol langen Funktion, kann mir niemand erzählen, dass sie genau eine Sache erledigt und nicht in Subfunktionen unterteilt werden kann. Bei diesem Problem gint es aber zum Glück einen Lösungsweg, den wir auch gehen. Hier heisst das Zauberwort: Cruise Control. Da wir unser phpUnderControl so konfiguriert haben, dass es mit Hilfe des PHP CodeSniffers bei jeder Funktion motzt, die länger als 100 Zeilen lang ist. Und damit der „Built“ nicht schief geht, muss dann gerefactored werden. Vorteil hiervon ist natürlich auch, dass man dich das Testen um einiges erleichtert, da man einzelne Teile für sich untersuchen kann und somit keine Pfade abdecken muss, die vielleicht unmöglich scheinen. Der zweite positive Seiteneffekt ist, dass kurze Funktionen viel einfacher zu verstehen sind als lange. Dies macht sich sehr schnell bemerkbar, wenn man an einem Legacy Projekt mit mehreren Teammitgliedern sitzt.

Der zweite Punkt den ich ansprechen will sind die Sichtbarkeiten. Ich hoffe mal, dass hier eine rege Diskussion aufkommen wird, denn wir bei der Arbeit haben sie schon öfters gehabt. Meiner Meinung nach, sollte man, auch wenn man weiss, dass eine Methode irgendwann mal public oder protected werden könnte, diese Methoden als private definieren, wenn man sie zum aktuellen Zeitpunkt nicht mit einer höheren Sichtbarkeit braucht. Wow was für ein langer Satz. Ganz klarer Vorteil der Sache ist, dass das Refaktorisieren um einiges einfacher ist, wenn man nur private Methoden besitzt. Ich glaube bei der Frage nach public oder private werden mir alle zustimmen, bei protected und private vielleicht die meisten, aber trotzdem sieht man diese Art Sichtbarkeiten zu verwenden viel zu oft.

Wer noch mehr zu diesem Thema wissen will, der sollte sich den Vortrag von Derick Rethans zum Thema „Keep it simple, stupid“ auf der PHP Conference ansehen.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

1 Comments

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen