Adresářová struktura pro rozsáhlý projekt

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

Dobrý den,

rád bych se na komunitu obrátil s prosbou o radu. Čeká nás vývoj většího projektu a lámeme si hlavu s tím, jak vytvořit správnou adresářovou strukturu pro takový projekt.

Aplikace se bude skládat ze čtyř základních částí, které bude možné spravovat a existovat bude pouze jedna databáze. Na projektu neočekáváme traffic větší, než 1000 uživatelů najednou.

Máme následující návrhy:

  1. app/ShopModule/FrontModule/*, app/ShopModule/AdminModule/*…
  2. app/FrontModule/ShopModule/*, app/AdminModule/ShopModule/*…
  3. app/AdminModule/ShopUsersPresenter.php, app/FrontModule/ShopHomepage.php… (každý presenter bude mít prefix dané části aplikace)
  4. Každá část aplikace bude samostatný projekt.

Předem děkuji za odpovědi a názory.

Editoval David Kregl (13. 8. 2015 15:05)

studna
Člen | 181
+
+2
-

Sto lidí, sto chutí. Jednoduše si nad tím ve firmě sedněte a jednotlivé návrhy si odargumentujte. Třeba dojdete k tomu, že nechcete psát absolutní odkazy. A taky nechcete prefixy presenterů. A protože budete chtít dynamicky odkazovat z jedné části aplikace do druhé, tak vyřadíte i čtvrtý bod.

Zbývá tedy návrh č. 2. A nebo vymyslet něco jiného.

David Kregl
Člen | 52
+
0
-

Moc děkuji za názor, studno :)! Asi zůstaneme u té dvojky – mně osobně se líbí nejvíc.

Majkl578
Moderator | 1364
+
+7
-

Spíš bych volil první variantu.
Druhá není zrovna modulární, poněvadž modulem se většinou myslí např. e-shop, reklamy apod, nikoliv frontend a administrace. (Modul lze – alespoň teoreticky – vzít a použít v jiné aplikaci. Pokud uvažujeme druhou variantu, stěží vezmeme administraci a použijeme ji jinde.)
Trojka je cesta do pekel, z toho byste se hodně rychle zbláznili.
Čtyřka by měla smysl u většího systému, kde by spolu jednotlivé části komunikovaly např. pomocí API/MOM.

Taky je dobré zamyslet se nad tím, jestli mají jednotlivé části sdílet doménovou logiku.

Tomáš Votruba
Moderator | 1114
+
0
-

U nás používáme 1. ze stejných důvodů jako píše @Majkl578

Zkoušel jsem i 2. ale nevyhovovalo mi chunkovat dle méně významného klíče.

enumag
Člen | 2118
+
+1
-

Používám 2. protože ne všechny submoduly AdminModule k sobě mají svůj FrontModule (ale přesto jsou na frontendu někde vidět). Většinou spíše jeden submodul z FrontModule používá data z několika submodulů AdminModule. A když modul přenáším do jiné aplikace tak část co mám v AdminModule sice většinou zůstane beze změn, ale část z FrontModule se stejně píše znova.

Editoval enumag (14. 8. 2015 9:53)

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

Používám první metodu, jako tady napsali pánové nade mnou. Pokud chci modul přenést, tak jej překopírují a povolím jeho extension v neonu. A je vyřešeno, nemusím pak pitvat FrontModule, AdminModule a z něj vybírat jen podmoduly.

David Kregl
Člen | 52
+
0
-

Argumenty pro řešení číslo jedna jsou jednoznačné. Všem děkuji!