{"id":415,"date":"2008-07-16T20:24:00","date_gmt":"2008-07-16T18:24:00","guid":{"rendered":"http:\/\/ollmetzer\/?p=415"},"modified":"2010-06-04T09:55:18","modified_gmt":"2010-06-04T07:55:18","slug":"design-patterns-und-webapplikationen","status":"publish","type":"post","link":"https:\/\/www.ollmetzer.com\/?p=415","title":{"rendered":"Design Patterns und Webapplikationen"},"content":{"rendered":"<p>Ich bin ein Mann der goldenen Mitte. Extreme liegen mir nicht so. Auch nicht beim Programmieren.<\/p>\n<p>Auf der einen extremen Seite der m\u00f6glichen Umsetzung von Webapplikationen in PHP steht un\u00fcbersichtlicher, verschwurbelter Spaghetticode. Nichts gegen Spaghetti auf dem Teller, aber bitte nicht im Computer.<\/p>\n<p>Auf der anderen Seite finden sich komplett durchgestylte, mehrstufige, sauber abgeleitete Klassenhierarchien die auf bew\u00e4hrte Designpatterns zuz\u00fcckgreifen. Das ist ganz toll &#8211; allerdings nicht f\u00fcr Webapplikationen in PHP. Das Problem dabei ist: Performance.<\/p>\n<p>Ich bevorzuge Modularisierung, Wiederverwendbarkeit Schichtentrennung und so weiter. MVC ist dabei ne gute Idee, wenn auch nicht die einzig denkbare Option. Aber schlank muss es sein.<\/p>\n<p>Komplexe Objekthierarchieen sind kein Problem, wenn sie compiliert und im Speicher gehalten werden. Bei PHP-Anwendungen ist das normalerweise nicht so. Bei jedem Request m\u00fcssen diverse Dateien durch den PHP-Interpreter von der Festplatte geladen, \u00fcbersetzt, initialisiert und ausgef\u00fchrt werden &#8211; das dauert.<\/p>\n<p>Zumal die Komplexit\u00e4t von &#8222;normalen&#8220; Programmen bei Webanwendungen in der Regel nicht gegeben ist. Keine Nebenl\u00e4ufigkeit, Events und \u00e4hnliches. Im Prinzip geht es immer um eine Abfolge mehrerer seperater Requests. Und jeder Request arbeitet eigentlich immer die folgenden Schritte ab: Eingabe, Verarbeitung, Ausgabe.<\/p>\n<p>Es geht also um das rechte Ma\u00df. Soviel Trennung, Modularisierung und Abstraktion wie n\u00f6tig &#8211; aber eben auch nicht mehr. F\u00fcr zzap habe ich eine recht schlanke und dennoch flexible L\u00f6sung gefunden, denke ich.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich bin ein Mann der goldenen Mitte. Extreme liegen mir nicht so. Auch nicht beim Programmieren. Auf der einen extremen Seite der m\u00f6glichen Umsetzung von Webapplikationen in PHP steht un\u00fcbersichtlicher, verschwurbelter Spaghetticode. Nichts gegen Spaghetti auf dem Teller, aber bitte nicht im Computer. Auf der anderen Seite finden sich komplett durchgestylte, mehrstufige, sauber abgeleitete Klassenhierarchien [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-415","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=415"}],"version-history":[{"count":0,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/415\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}