Wie Projekte strukturieren?
-
Was für Moglichkeiten gibt es größere Projekte zu strukturieren und was sind ist wann gut oder schlecht?
Idee 1UI - Core - Modul A - Dialoge - A1 - A2 - Fenster - A1 - A2 - Modul B Logik - Core - Modul A - Modul B Datenbank - Core - Modul A - Modul B
Idee 2
Core - UI - Logik - Datenbank Modul A - UI - Dialoge - A1 - A2 - Fenster - A1 - A2 - Logik - Datenbank Modul B - UI - Logik - Datenbank
Idee 3
Core - UI - Logik - Datenbank Modul A - UI - A1 - Dialoge - Fenster - A2 - Dialoge - Fenster - Logik - Datenbank Modul B - UI - Logik - Datenbank
Andere Ideen?
-
Stichwort: Dreischichtenarchitektur: http://de.wikipedia.org/wiki/Three-Tier-Architektur#Drei-Schichten-Architektur
-
Die drei Schichten hab ich immer. Das ganze muss auch nicht für Client-Server Anwendungen sein.
-
Ich halte Variante 1 für am sinnvollsten. Ich kann jetzt nicht groß mit Argumenten um mich werfen, finde es einfach passender strukturiert, z.B. UI-Sachen alle im UI-Kontext.
-
Badestrand schrieb:
Ich halte Variante 1 für am sinnvollsten. Ich kann jetzt nicht groß mit Argumenten um mich werfen, finde es einfach passender strukturiert, z.B. UI-Sachen alle im UI-Kontext.
Wenn die Software wirklich modular aufgebaut sein soll (vielleicht sind die Module sogar Plug-Ins), ist Variante 1 wahrscheinlich die schlechteste.
Ein Modul sollte schon in sich gekapselt sein und nicht über zig Verzeichnisse verstreut.
-
tfa schrieb:
Wenn die Software wirklich modular aufgebaut sein soll (vielleicht sind die Module sogar Plug-Ins), ist Variante 1 wahrscheinlich die schlechteste.
Ein Modul sollte schon in sich gekapselt sein und nicht über zig Verzeichnisse verstreut.Genau!
Wenn alle Module eigenständig sind (und das legt das vorhandensein von UI- und Datenbank-Teil in jedem Modul(!) nahe), dann lieber Idee 3.
Würde es sich um echte "Teil"-Module handeln, so hätte davon eben nur eins den Datenbank-Code und ein anderes den UI Code und man bräuchte diese weitere Unterteilung gar nicht!
-
Das ist im Grunde Package-Level Design. Idee Nr. 3 ist aufgrund von oben genannter Gruende vorzuziehen.
Schau mal hier rein: http://www.objectmentor.com/resources/articles/granularity.pdf
-
Das ganze hat einen Namen:
-
In welchem Pattern sollte den das stehen?