Jak nejlépe rozdělit aplikaci?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
BuGeR
Člen | 45
+
0
-

Zdravím,

mám možná trochu teoretickou otázku. Vytvořili jsme si vlastní modulární systém, do kterého vytváříme různé moduly apod.

Příklady modulů:

  • stránky: seznam stránek, editor pro vytvoření/upravení stránky, render stránky (zobrazení samotné stránky)
  • písničky: seznam písniček, detail písně, playlisty, detail playlistu
  • galérie: seznam(mřížka) všech fotek, detail fotky, alba, detail alba
  • …apod

Jak nejlépe rozdělit aplikaci na jednotlivé moduly? Aktuálně to máme řešené tak, že modul je presenter, a ty základní věci (např. výpis těch položek) jsou řešené přímo v tom daném presenteru (renderDefault), a potom jednotlivé podčásti (např. detail položky, atd.) jsou už komponenty – úplně v samostatně oddělené třídě a složce.

Nevím jestli to je vhodné řešení, protože každá komponenta obsahuje spoustu pod-komponent (například. komponenta detail písně obsahuje další komponenty – přehrávač, seznam playlistů, vytvoření další verze, apod., které jsou opět ve vlastní třídě).. většinou ta pod-komponenta obsahuje jen nějaký formulář na přidání/upravení/smazání/zobrazení něčeho. A nevím jestli je v pohodě, že jsou ty komponenty technicky na stejném levelu (všechny jsou potomky Control).

Napadá mě do tohoto stromu vložit ještě jednu větev – Nette modul (např. SongsModule), ale nikdy jsem s Nette moduly nepracoval, tak nevím jestli je to vhodné řešení, a jestli to nepřinese více škody než užitku.

Jde mi hlavně o zpřehlednění celé aplikace.

Existuje nějaká „nejsprávnější“ cesta pro tuto problematiku?

Díky všem!

CZechBoY
Člen | 3608
+
0
-

Vsechno co spolu souvisi davam vzdy do modulu. U tebe treba ty pisnicky nebo generator stranek.

Jiří Nápravník
Člen | 710
+
0
-

Modul je u me to co spolu souvisi – module pro uzivatele, pro diskusni forum, pro clanky apod. Kazdy modul ma jeste podmodul FrontModule/AdminModule (pripadne jen jeden pokud nepotrebuje oba). Kazdy hlavni moudl ma vlastni Extension, ktera registruje vse co dany modul potrebuje. Taky se snazim dost pouzivat ruzne eventy pres Kdyby\Events aby byly na sobe samotne moduly co nejemne zavisle