Hallo Zergling,
danke für dein Statement.
Zitat:
|
Ist aber sicher eine ganz interessante Sache - wo hast du die Infos denn zusammengesammelt, gibts irgendwelche Blogs oder Wiki-Seiten, die zu empfehlen sind?
|
Der Weg dahin war nicht ganz einfach. Ich hab mir durch unmengen von Literatir gewälzt, viele Anwendungen implementiert und mir immer wieder die Frage gestellt, wie es besser geht und wie man dynamische Webanwenungen wirklich effektiv zu gestalten. Es ging immer wieder um Wiederverwendbarkeit, saubere Implementierung und Effizienzsteigerung.
Ich hab in den Anfängen eine Funktionsbibliothek erstellt, die sich mit Standard-Problemen beschäftigt (u.A. Fileupload; hatte dazu mal vor Urzeiten ein Tutorial im Dr.Web-Forum eingestellt). Problem beim Skripting ist, dass man zwar einige oder viele Dinge eingermaßen sauber erstellen kann, nur verfällt man immer wieder dem Problem, Dinge doppelt machen zu müssen. Weiteres Thema war für mich die Erstellung eines CMS, in dem man Module (Terminkalender, Gästebuch, et. al.) per Tag einbinden kann und diese vom Text-Parser ausgeführt werden. Hier kommt man mit Skripting an seine Grenzen. Die damals konsumierte Literatur führte mich dann zum objektorientierten Entwurfs- und Programmier-Ansatz, da man dort per Vererbung Funktionalitäten in beliebige Richtungen weiterentwickeln kann. Aus der Funktionsbibliothek wurde allmählich eine Klassensammlung (FilesystemManager, ConfigurationManager, et. al.) die mitlererweile zu einem recht ansehnlichen Framework gehören, die die Grundlage für die Implementierung von Web-Anwendungen im Page- und Frontcontroller-Pattern und der 3-Schicht-Architektur bereit stellen. Somit ist es möglich eine Footer-Leiste mit Drucken, Weiterempfehlen et. al. auf mehreren Seiten einzubinden und im CD der Seite zu formatieren ohne Teile des Codes zu ändern. U.a. gibt es auch einen Template-Parser, der aus einem Template eine Objektbaum einer Seite, quasi ein eigenes DOM aufbaut und man dort die Möglichkeit hat in einem bestehenden Template per XML-Tag eine weitere Anwendung (z.B. Footer-Leiste) einzubinden. Hilfreich und immer viel zittiert sind in meinen Beiträgen die Pattern. Ich halte diese aber für sehr wichtig, da man nicht lange über Standard-Probleme nachdenken muss, sondern einfach eine Lösung hat und muss diese nur noch implementieren. Wie schon oft hier angesprochen, hat PHP sicher seine Schwächen, aber wenn man sich konzeptionell die richtigen Gedanken macht, kann man auch mit PHP echte Anwendungen schreiben. Wenn hier Bedarf an Erklärung besteht, oder sich jemand für eine Beispiel-Anwendung interessiert, kann er sich gerne melden, ich hab ausreichend Info's und Code, den ich gerne zur Verfügung stelle.
Was Literatur angeht:
Hilfreich sind sicher die WIKI-Seiten:
-
http://de.wikipedia.org/wiki/Entwurfsmuster
-
http://de.wikipedia.org/wiki/Martin_Fowler
-
http://de.wikipedia.org/wiki/Mehrschichtigkeit
-
http://de.wikipedia.org/wiki/Dreischichtige_Architektur
-
http://de.wikipedia.org/wiki/Anwendungsdom%C3%A4ne
Insbesondere als Bücher sind empfehlenswert:
- Martin Fowler: UML Distilled
- Martin Fowler: Patterns of Enterprise Application
- Christoph Reeg: Datenbanken, PHP und MySQL
Und natürlich:
- Manuals lesen
- Manuals lesen
- Manuals lesen
- Ausprobieren
- Sich durchbeißen
- Über ein Problem nachdenken
Sollte der Bedarf an Literatur (in elektronischer Form) bestehen -> PM.
Für Diskussionen bin ich jederzeit offen...