Skip to content

Architekturmuster und Design Patterns verwenden

Wenn man ein Haus baut gibt es bestimmte Regeln an die man sich halten sollte. Beispielsweise wäre es nicht sehr ratsam ein Dach so zu konstruieren, dass das Wasser nicht abläuft sondern zur Mitte des Dachs hinfließt. Ein weiteres nicht ratsames Beispiel wäre es eine Decke so zu konstruieren, dass sie sich nicht selbst tragen könnte. Wenn man dann noch auf die Idee kommt, auf diese Decke einen Stuhl zu stellen, findet man sich höchstwahrscheinlich ein Stockwerk tiefer wieder. Unsere Vorfahren haben also Architekturmuster erfunden. Daneben haben wir vor ein paar tausend Jahren auch noch das Rad erfunden. Wir empfanden das als ziemlich praktisch. Man kann mit so einem Rad die Reibungsverluste beim Schieben verringern. Und heute sagen wir immer wieder mal, dass wir das Rad nicht neu erfinden sollen.

Wie sieht das in der IT aus?

Die IT ist ein relativ neues Themengebiet. Vor ein paar Jahren erfand jeder Entwickler seine Räder jeden Tag nochmals. Irgendwie haben viele von uns, dann viele Stunden verbracht auf Problemen rumzunagen, die es eigentlich schon längst nicht mehr geben sollte. Und genau hier setzen Architekturmuster und Design Patterns an. Wir generieren heute eine Webapplikation, indem wir die Architektur auf den Browser, den Webserver, den Datenbankserver und das Netzwerk verteilen. Wir verwenden Factory Patterns um bestimtme Objekte zu erzeugen. Wir mixen die diversen Observer, Strategy und Composite Patterns und erstellen Model View Controller Patterns. Das einzige Problem mit all den schönen Patterns ist, dass die Dinger ziemlich unverständlich sein können. Wenn ein neuer Entwickler anfängt, ist er mit Schleifen, if-Abfragen und anderen Schweinereien schon ziemlich ausgelastet. Wenn dann noch ein Roland vorbei kommt und ihm sagt "heute bauen wir mal ein Singleton", dann fühlt sich der Anfänger irgendwie nicht wohl. Deshalb habe ich bei guggat emol Blog eine Designpattern Einführung erstellt. Ich werde nicht noch einmal alle Design Patterns, die zur Genüge beschrieben wurden, beschreiben. Ich werde hier die Design Patterns, die ich in den Programmierbeispielen verwende, erläutern. Später werden diese Patterns dann für reelle Aufgaben verwendet. Wer weiß, vielleicht bauen wir in ein paar Jahren weniger IT-Decken die sich nicht selbst tragen können? :)

Trackbacks

Keine Trackbacks

Kommentare

Chris am :

Chris Ein Hauptproblem, warum in der IT, anders als in der Architektur etc. Pattern noch nicht so essentiell sind, liegt wahrscheinlich daran, dass eine Software erstmal auch mit "schlechtem" Code läuft. Erst später, wenn also neue Programmierer an das Projekt gehen oder die Software erweitert werden soll, stellt man fest wie qualitativ der Code dann wirklich ist.

Ich für meinen Teil nutze CakePHP für Webprojekte und das darunterliegende MVC ist wirklich genial, wenn man sich erstmal daran gewöhnt hat.

Roland am :

Roland Hi Chris,
du hast absolut recht. Wenn ein System rennt gibt es ja den Spruch "Never Change A Running System".
Oft genug muss man Legacy Code so stehen lassen wie er ist, da keiner mehr versteht was da so geht.

Danke für den CakePHP Tipp. Ich habe das noch nicht ausprobiert, werde es mir aber bei Gelegenheit mal anschauen.
An MVC muss man sich wirklich erst gewöhnen, da dieses Pattern aus mehreren Grundpattern aufgebaut wurde.
Aber wie du schon sagtest, wenn man sich mal dran gewöhnt hat, geht einiges leichter.

Chris am :

Chris Ja absolut, es hat bei mir auch eine Zeit gedauert, bis ich mich an CakePHP gewöhnt habe, einfach weil ich vorher keine Pattern verwendet habe. Aber wenn man erstmal die Hürde überwunden hat und ein Grundprojekt mit CakePHP gebastelt hat, ist es einfach genial!! Wenn ich jetzt z.b. ein neues Projekt starte, kann ich mir die Grundfunktionalität ganz einfach zurechtkopieren, also User-Funktionen wie Anmelden (mit Email Check), Login Logout, Authentifizierung etc. und etliche andere Dinge, Tagging z.b.

Die Dokumentation ist seit einem Jahr auch recht gut, für den Einstieg würde ich aber folgendes Buch empfehlen: "CakePHP Application Development" das hat mir erst das richtige Verständnis gegeben. Im Buch selbst sind die ersten 200 Seiten nur Erklärung zu den ganzen Bereichen, das ist erstmal was seltsam, aber danach kommen Kapitel in denen eine ganze Anwendung gebaut wird und wenn man das nachbastelt, hat man seine Grundfunktionen für zukünftige Projekte und vorallem das Verständnis!

Also, kann CakePHP nur empfehlen :)

roland am :

roland Hi Chris,
ich bin am Freitag "zufällig" an einer Bücherei vorbeigekommen und habe mir Webentwicklung mit CakePHP von O'Reilly gekauft.
CakePHP gefällt mir unheimlich gut!
Was ich bisher gesehen habe ist, dass die dahinterliegende Philosophie sich voll und ganz mit meiner Vorgehensweise trifft.
Im Moment habe ich unter http://www.baldenhofer.eu/blog/series/newssystem für Ausbildungszwecke ein Newssystem beschrieben. Dieses Teil werde ich jetzt mal mit CakePHP umsetzen.
Das freut mich ungemein, denn jetzt lerne ich mit den Newssystem auch noch was :)

Danke für den Tipp!

Chris am :

Chris Ja super, das freut mich!
Wie gesagt, anfangs kann es etwas fustrierend sein (zumindest ging es mir so), doch wenn man sich erstmal durchgebissen hat, ist es einfach super.

Viel Erfolg!

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Gravatar, Twitter, Favatar Autoren-Bilder werden unterstützt.
tweetbackcheck