Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Pokročilé architektury webových aplikací a systémů

Ahoj,
dělám již několik let v PHPku a používám framework Laravel, znám tedy MVC architekturu a používám ji. Nicméně teď zjišťuji, že existují i jiné architektury, nebo spíše rozšíření pro MVC. Narazil jsem na pojmy Service Layer, Business Logic, Domain Model, Repository, Facade, Commanding... Dokázal by mi někdo zhruba vysvětlit o co jde, jakou má výhodu to používat...? Třeba ještě repozitáře trochu znám - prostě něco, co komunikuje s databází (v Laravelu s Eloquent modely) a poskytuje výstup pro controllery, ale v těch ostatních pojmech se již ztrácím.
Budu vděčný za každou radu.
Díky moc
20. 2. 2017 15:07:18
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261177
node
verified
rating uzivatele
(5 hodnocení)
20. 2. 2017 15:18:33
Wiki?
20. 2. 2017 15:18:33
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261176
Ty pojmy patří do různých kategorií. Pokusím se je vysvětlit, jak jim rozumím já
  • Service Layer - Služby uspořádané tak, aby se daly volat pro uživatelské rozhraní, API, příkazový řádek...
  • Business Logic - Logika a pravidla vycházející z účelu aplikace a z reality (například ze zadání, zákonů atd.)
  • Domain Model - Ta část aplikace, která popisuje (modeluje) realitu. Například Zákazník, Faktura, Řádek ve faktuře, Košík
  • Repository - Služba (třída), která se stará o načítání a ukládání modelů z a do nějakého úložiště.
  • Facade - Návrhový vzor Fasáda je prostě třída, která zjednodušuje rozhraní jiné třídy (nebo skupiny tříd). V Laravelu se to slovo používá šířeji
  • Commanding? Myslíte Command Bus? Pokud ano, Command Bus je hlavní třída návrhového vzoru Command Pattern, ve kterém se definují rozkazy (Commands), sluhové (Handlers) a dráb (to je právě Command Bus) a všechny aktivity se pak dějí jako Command, který se předá Command Busu, který Command předá správnému Handleru. Dají se s tím pak dělat psí kusy, jako třeba obalit příkazy hromadně něčím dalším (logování, cachování), přidat Undo/Redo atd. Já tomu pro webovou aplikaci moc nepřišel na chuť.
Doporučuju vám knihu Patterns of Enterprise Application Architecture od Martina Fowlera, vpodstatě všechno to jsou koncepty z této knihy (kromě Facade, to je klasický návrhový vzor).
20. 2. 2017 16:36:27
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261175
hm
verified
rating uzivatele
(20 hodnocení)
20. 2. 2017 17:58:49
Facade chapu nejen jako zjednodusovani jine tridy ale jako tridu, ktera dela veci, ktere by jinak delal napriklad Controller, jenze kdyz to dela facade, dela to tak, aby ji kontroler jen zavolal ale zaroven ji taky mohlo zavolat treba rozhrani pro api ci dalsi tridy a nemusel se tak opakovat stejny kod (napriklad na vypis a trideni dat nebo na registraci, login, cokoliv) na trech ruznych mistech... proste neco co umozni psat vice ruznych vystupnich vrstev bez zbytecneho opakovani kodu... Coz vede ke zjednodusovani techto mist... Proste misto aby vsechen kod byl v kontrolleru, ve skutecnosti je vetsina fcniho kodu ve facade a diky tomu muzou existovat tri ruzne kontrolery na trech ruznych mistech, ktere vstup vystup zpracuji a zobrazi jinak, ale fcni kod e jen jeden... Od te doby co sem si ot om precetl vlastne jinak aplikace nepisu, muze se to zdat zbytecne na mnoha mistech, ale uz sem se naucil koukat do budoucna... Je prijemne udelat api ktere ma 5 radek a funguje :)
20. 2. 2017 17:58:49
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261174
Tak se sice Fasáda může používat, ale není to její definice. Její definice zní
Facade defines a higher-level interface that makes the subsystem easier to use.
Nemá k Controlleru žádný předem daný vztah. Může se používat i v aplikacích, které žádný Controller nemají.
To, co popisuješ, by sedělo nejvíc na definici Service Layer.
P of EAA: Service Layer
A nebo prostě jen abstrakce společných postupů na jedno místo - to není nutně fasáda.
20. 2. 2017 18:58:21
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261173
hm
verified
rating uzivatele
(20 hodnocení)
20. 2. 2017 19:06:42
Zajimave... mel bych si zas zacit cist, dva roky bez teoretizovani a clovek docela zapomina...
20. 2. 2017 19:06:42
https://webtrh.cz/diskuse/pokrocile-architektury-webovych-aplikaci-a-systemu/#reply1261172
Pro odpověď se přihlašte.
Přihlásit