php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.09.2010, 14:44  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Das ist ein Objekt, dass diverse Dinge zur Verfügung stellt (Request, Response, Authentifizierung, ACL und eben auch hmvc-Funktionalität).
xm22 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.09.2010, 14:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

EIN Objekt tut dies alles? Warum denn das?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 04.09.2010, 15:53  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Wie ich uncle bob nicht ausstehen kann!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 04.09.2010, 19:12  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
EIN Objekt tut dies alles? Warum denn das?
Was ist denn "das alles"? Es macht sogar noch mehr, aber das ist nebensächlich.
Zitat:
uncle bob
Habe ich was nicht mit bekommen?
xm22 ist offline   Mit Zitat antworten
Alt 04.09.2010, 19:46  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

ucle bob ist auch als „GOD object“ oder „Big hairy object“ bekannt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 04.09.2010, 20:23  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Ok - Wo würdet ihr denn diese Objekte hin packen? DI, nehme ich mal an. Und vielleicht ist ja das App-Objekt genau dieses..
xm22 ist offline   Mit Zitat antworten
Alt 04.09.2010, 20:24  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

God Class

Zitat:
Zitat von xm22 Beitrag anzeigen
Ok - Wo würdet ihr denn diese Objekte hin packen? DI, nehme ich mal an. Und vielleicht ist ja das App-Objekt genau dieses..
So sieht der Code aber nicht aus. Und du schreibst, es stellt Funktionalität zur Verfügung. Ein DI Container hat selber eigentlich keine Funktionalität und arbeitet relativ still im Hintergrund oder nicht?
fab ist offline   Mit Zitat antworten
Alt 04.09.2010, 21:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Ok - Wo würdet ihr denn diese Objekte hin packen?
Also, aus Deinem Satz
Zitat:
Das ist ein Objekt, dass diverse Dinge zur Verfügung stellt (Request, Response, Authentifizierung, ACL und eben auch hmvc-Funktionalität).
habe ich herausgelesen, dass Du Request, Response ... alles in einem Objekt kapselst. Meinst Du etwa eine Registry?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 04.09.2010, 22:48  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo xm22,

sei mir nicht böse, aber ich konnte mir "uncle bob" (~=god object) nicht verkneifen. Das ist genau die Form von Abstraktion, von der ich in meinen Posts nicht sprach. Wenn du eine Registry haben möchtest - aus welchen Gründen auch immer - dann soll das auch namentlich eine solche sein. Möchtest du Request und Response abstrahieren, was ich persönlich für einen Blödsinn halte, da es keinen Mehrwert gegenüber den in PHP vorhandenen Mechanismen bringt, dann bitte nicht alles in einem Objekt.

An der von dir zitierten Stelle möchtest du ein HMVC-Modul einklinken. Dazu braucht es ein Rahmenwerk über das du dieses tun kannst - eine Art Container. Diesem werden per DI die relevanten Informationen mitgegeben und in diesem wird es ausgeführt. Das sind jedoch Komponenten, über die wir hier sprechen, die nichts mit einem App-Objekt zu tun haben, sondern im Sinne eines OO-Design eigenständig modelliert werden müssen. Du kaufst ja einen Weber-Grill auch nicht im Klamotten-Laden.

Ich würde dir deshalb empfehlen, nicht krampfhaft am HMVC-Ansatz zu schrauben, damit du hinterher etwas fertiges vorzuweisen hast, sondern zu versuchen, das Ganze zunächst zu modellieren um die klar zu werden, an welchen Stellen du was überhaupt benötigst. Stell dir Fragen wie
  • Wie ist ein Baum aufgebaut?
  • Welche Mechanismen braucht der Entwickler für eine Moduarisierung?
  • Welche Services müssen zur Verfügung gestellt werden, damit ein Modul arbeiten kann?
  • Welche Abhängigkeiten sind notwendig, welche sollten vermieden werden?
  • Wie ist das Timing-Modell der Baum-Verwaltung und wo muss ein Entwickler eingreifen können um bestimmte Verhalten realisieren zu können?
  • Was bedeutet das MVC-Pattern innerhalb eines MVC-Baumes?
  • Welche Anforderungen hat ein Entwickler an die MVC-API, bzw. wie soll sich ein Controller realisieren lassen?
Erst dann ist es sinnvoll die Implementierung zu starten.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 05.09.2010, 16:03  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
dass Du Request, Response ... alles in einem Objekt kapselst.
Zitat:
Möchtest du Request und Response abstrahieren
Nein - Das sind alles eigenständige Objekte.

Zitat:
was ich persönlich für einen Blödsinn halte, da es keinen Mehrwert gegenüber den in PHP vorhandenen Mechanismen bringt
Wenn ich mir überlege, dass die Applikation vielleicht auch per Console aufgerufen werden könnte, oder die Response sonstwie automatisiert werden sollte, finde ich schon, dass das eine gute Idee ist. Auch ein separates Request-Objekt halte ich persönlich für erforderlich. In meinem Framework übernimmt dieses auch Teile des Front-Controllers und die Erstellung von URLs.

Zitat:
Ich würde dir deshalb empfehlen, nicht krampfhaft am HMVC-Ansatz zu schrauben, damit du hinterher etwas fertiges vorzuweisen hast
Das Ganze ist seit mittlerweile 3 Jahren gereift. Es sind dabei alle Anforderungen beachtet wurden, die sich aus mehrjähriger Erfahrung ergeben haben - Dazu gehört auch die Effizienz beim Umsetzen von Applikationen. Mag sein, dass ich nicht allen Paradigmen der Software-Entwicklung entspreche, aber bei mir hat Produktivität Vorang vor Theorien - Damit meine ich allerdings nicht, dass ich Frickeleien und Hacks bervorzuge - Im Gegenteil. Ich versuche auch nicht, krampfhaft an etwas festzuhalten, sondern dieser Ansatz hat sich als der beste herausgestellt.

Die Diskussion geht hier jetzt in Richtung eines Aspektes des Frameworks - Mein Post sollte nur zeigen, wie effizient das Einbinden einesw HMVC-Knoten sein kann ohne GUI-Strukturen zu nutzen.
xm22 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eine Frage zum guten Code-Layout SilentSight JavaScript, Ajax und mehr 3 14.07.2010 09:18
[Erledigt] Frage zu JOIN Befehl und dem Auslesen desselben apo PHP Tipps 2010 11 13.06.2010 19:32
Integration eines Pluginsystems in einer HMVC Struktur Anyone Software-Design 17 21.12.2009 20:10
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
[Erledigt] frage PHP Tipps 2005-2 9 15.06.2005 13:22
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Frage: gibt es bei PHP sowas wie target="_blank" PHP Tipps 2005 6 20.04.2005 06:27
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/software-design/71270-hmvc-frage-4.html, uncle bob objekt

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum