Diskuze: CVA architecture/framework
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 23 zpráv z 23.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Vytvořil jsem web pro CVA architekturu/framework s detailnějším popisem a stažením Alpha verze. http://cva.lerainsoft.eu/
Krásně je ten kód komentovaný. Schválně, kdy se v tom ztratíš a
nebudeš vědět, co co dělá.
Pokud opravdu, jak píšeš,
CVA architecture
==
Component View Architecture
architecture
tak to není moc geniální název
Každý má šancu. Ostatní len závidia nápad.
Jo, už koukám na web... Takže to napsal špatně tady...
Assembly a Component jsou podobné, ale Assembly by měla být složitější(vlastní CSS soubor atd.) a je to vlastně kontejner pro komponenty. Díky tomu je jednoduché změnit celý vzhled stránky(např. ze stránky do administrace) jednoduchou změnou Assembly.
Takže v překladu na MVC, Assembly je Controller, Component je Model. Je to tak?
Jenže - Model by neměl být závislý na View. Chápu o co se přesně snažíš, ale prakticky ti tu chybí ještě jedna komponenta - Modely. Tedy třídy, které se starají pouze o data
To bude asi hlavní rozdíl oproti MVC, jinak by se to mohlo jmenovat stejně. Jsem zvědav, co z toho nakonec vyleze.
Nejde o nevýhodu, jde o architekturu.
Výklad MVC říká, že Model se stará o data aplikace, je mu jedno jestli se následně vytisknou na papír, zobrazí jako HTML. To už dělá controler. Controler je prostředník mezi uživatelem a aplikací. Controler volá Modely a skládá View, které zobrazí data.
Tvá architektura (co tak chápu)
Component Nějaká komponenta do aplikace - statistiky,
menu,...
Má View, následně i conexi na DB apod
Assembly je soubor komponent. Pěkný nápad. Má vlastní View
a můžu mít Assembly Admin - kde bude mít komponenty např. menu, správce
uživatelů,...
View zobrazí data.
Jenže problém vidím v tomhle.
Za
proto modely. Ty se starají o data. Nezajímá je pohled, nezájímá co chce uživatel. Model poskytuje jen možnost spravování dat, vrácení dat apod.
Pokud se úplně pletu, oprav mě
Prostředník mezi uživatelem a aplikací je obvykle view nebo controller. Trik je v tom, že MVC má řadu podob i implementací, které se liší vzájemnou závislostí mezi M/V/C. Kdo pracoval s ASP.NET nebo PHP zná obvykle jeden nebo dva způsoby. Zcela "korektně" napsaná implementace MVC podle definice a představ bude mít jeden model, jeden controller a ... to je všechno. Když nad to dáš HtmlView, bude výstup do prohlížeče, pokud WpfView, tak bude výstup na mobil, ale M a C se nezmění.
CVA mi od pohledu přijde jako obyčejné MVC, které se trochu rozteklo a ztratilo jednoznačnou definici odpovědnosti mezi jednotlivými částmi. Jinak tam nevidím nic, co bych už neviděl v MVC.
Samozřejmě že největším problémem je nepřesná definice těchto architektur. Ale v CVA podle mě má zbytečně smíchané závislosti na View a Modely. Aspoň mi to tak přijde
V řadě MVC implementací je závilost view na modelu, to je poměrně obvyklé (a pokud jsi psal ve WPF, tak jsi to na 100% udělal taky).
Tady je ale problém, že definice modelu úplně chybí (jak už jsi zmínil), takže nedokážeš vůbec odhadnout, jaké ty závislosti budou.
Větší průšvih ale je propojení view a controlleru, které se tady prezentuje jako Assembly a Component. Assembly má zřejmě reprezentovat to, co se občas nazývá hierarchie controllerů. Jenže tam je jasně dané View a odpovědnost za něj. Componenta má svoje view, Assembly má svoje view... kde je View?
Tak ono u WPF jsem spíš bral že se využívá MVVM - Model-View-ViewModel
Já to CVA chápu tak, že Componenta může být něco jako Widget, tedy nemusí se zborazit všude, jen někde. A Assembly je popis stránky, která v sobě má informace jaké widgety může zobrazit
MVVM je náhrada za MVC, protože MVC tam vedlo na takovou ... nemilá, nepěkná věc.
Já to CVA chápu stejně. Ale co se stane, když se odešle postback? Kdo je za něj zodpovědný? C? A? V? Co se stane u partial requestu? Co když jsou componenty propojené přes model (a nebo zrovna nejsou)?
Vysvětlení je jednoduché. Obvykle se napíše aplikace, a protože má hezkou architekturu, udělá se z toho pattern. Tohle mi přijde jako architektura vymyšlená sama pro sebe, proto je to tak nejasné (čímž bych se neradl dotkl autora). Jak už jsem řekl, od pohledu je to obyčejné MVC, tedy nový framework pro tvorbu aplikací, není to ale nová architektura.
na verejnom serveri by ste mali mať vypnuté zobrazovanie chýb, napr.
tu:
http://framework.lerainsoft.eu/Alpha0.5/
Komponentu můžete chápat jako kostičku lega která dostane nějaké informace. Assembly je deska pro kostičky na kterou se kostičky připojí a vytvoří výslednou stránku. A když potřebuješ změnit rozložení kostiček tak jednoduše přepneš Assembly. Jelikož se logika rozdělí tak vytváření modelů je zbytečné. Tuhle architekturu jsem vymyslel pro eshop systém. A protože se nějak zamotala rozhodl jsem se udělat samostatný framework.
Zobrazeno 23 zpráv z 23.