PEAR i Zend Framework su biblioteka klasa. Kao što su Kodi i Ivan već rekli, modul je više kao mini aplikacija unutar same aplikacije.
Kada smo dizajnirali activeCollab 1.0 cilj je bio da imamo u potpunosti modularnu platformu gde korisnici neće morati nužno da se oslanjaju samo na nas za razvoj već će moći da šire sistem i kroje ga kako njima odgovara.
Na kraju smo završili sa sistemom gde je svaki modul mala MVC aplikacija. Iako izolovani, moduli mogu da dele dele neke resurse (helpere na primer), a međusobno komuniciraju kroz evente. Na primer, kada activeCollab slaže glavni meni samo triggeruje on_build_menu event. Moduli "slušaju" event i naslažu opcije koje se kasnije prikazuju.
Sistem je jako fleksibilan i radi prilično lepo, ali ima par mana - kompleksnost, smanjena brzina izvršavanja, zahteva dosta discipline...
Modularna arhitektura za activeCollab je upalila jer MI kontrolišemo razvoj. Kada ti dođe klijent koji izvoljeva i ima razne fix ideje možeš samo da gledaš kako se tvoj "prelepo dizajniran modularan sistem" raspada jer moraš da ga krpiš i hakuješ kako bi napravio šta klijent hoće.
PS: Attachovao sam kako izgleda struktura jednog activeCollab modula. Sistem isporučujemo sa 10 modula u Corporate i 6 u Small Biz verziji.
Poslednja izmena od Ilija Studen : 29. 02. 2008. u 19:07.
|