2009-07-23 5 views
2

Nachdem ich einige PHP-Frameworks wie Codeigniter und Kohana für einige kleinere Sites verwendet habe, frage ich mich, ob MVC immer noch für größere Projekte geeignet ist und welche Vorkehrungen getroffen werden müssen, um saubere Clodes zu erhalten. Welche Praktiken verwenden die größeren Websites, um dies zu verhindern? Verwendet der Amazon- oder Flickr-Code MVC oder eine Variante davon? Gibt es einen Leitfaden, der Ihnen bei einem bestimmten Problem zeigt, wie MVC am besten für große Projekte implementiert werden kann?Wann ist MVC in großen Projekten nicht mehr anwendbar?

- Tangent -

Auf einem aktuellen Projekt mit Kohana, begann ich meine Modelle in Frage zu stellen, welche Rolle haben sollte. Oftmals kann ein Modell nur einen kleinen Teil eines Objekts beschreiben, das ich erstellen möchte. Das heißt, ich brauche ein Objekt für einen Benutzer, also entziehe ich meinen Benutzer aus der Tabelle Benutzer mit meinem Users_Model. Aber jeder Benutzer hat auch mehrere Objekte in seinem Inventar, also muss ich auch das Users_Inventory_Model verwenden. Jedem Inventarelement sind jedoch auch andere Tabellen zugeordnet, bis ich feststelle, dass der Aufbau eines einzelnen Benutzers in meinem Controller den Zugriff auf mehrere Modelle erfordert hat. Stellen Sie sich nun vor, dies in vielen verschiedenen Controllern zu tun und plötzlich finde ich mich mit unordentlichen und redundanten Code und sehr fetten Controllern.

Das brachte mich dazu zu denken, dass ich vielleicht Bibliotheken haben sollte, die den Grossteil der Arbeit erledigen. Auf diese Weise könnte ich eine Benutzerbibliothek haben und sie alle meine relevanten Benutzerdaten laden lassen und den größten Teil der Logik ausführen, wie zum Beispiel Aktualisieren, Löschen, usw. Entwickeln sich so die meisten MVC-Projekte? Lassen Bibliotheken die meiste Interaktion mit den Modellen zu, während die Controller die Bibliotheken aufrufen und die Daten für die Ansichten vorbereiten? Wie auch immer, das ist nur eine der Fragen, die ich über MVC hatte, auf die ich keine Antwort auf Online finden konnte.

+0

Nun, stackoverflow.com ist mit mvc gebaut :-) – nos

Antwort

5

In der Tat ist es für große Projekte, wo alle diese MVPs und MVCs wirklich glänzen. Alle Softwaredesignmuster werden "erstellt" (neben dem Einrichten eines gemeinsamen Vokabulars), um mit der Komplexität der Software umzugehen. Somit wird MVC Ihnen bei großen Projekten sehr nützlich sein.

Vergleichen Sie mit kleinen Apps, die mit Maus-only-Ansatz gehackt werden können, aber ein Albtraum zu unterstützen, da es keine richtige Trennung gibt, noch sind sie SOLID genug.

+0

Ist das PPP-Buch in diesem Artikel lesenswert verlinkt oder kann ich gleichwertiges Material online finden? – Brad

Verwandte Themen