Diskuze: CVA architecture/framework

PHP PHP CVA architecture/framework American English version English version

Aktivity (1)
Avatar
Denis Homolík (Alfonz):11.4.2014 15:43

Ahoj,
Představují vám zcela novou architekturu Component View Architecture pro programování webů a framework pro PHP, který je na této architektuře založený. Architektura se inspirovala u MVC. Hlavní myšlenkou architektury je web který se skládá z komponent jako puzzle. Framework bude free nebo OpenSource. Obsahuje základ architektury a Wrapper k databázi. Aktuálně je vývoj v Alpha verzi. Projekt bude ke stáhnutí během dvou týdnů. Až bude dokončena většina systémové architektury.

Odpovědět  +2 11.4.2014 15:43
Vše je možné, dokud si to myslíte!
Avatar
Denis Homolík (Alfonz):21.4.2014 16:24

Vytvořil jsem web pro CVA architekturu/fra­mework s detailnějším popisem a stažením Alpha verze. http://cva.lerainsoft.eu/

Nahoru Odpovědět  -1 21.4.2014 16:24
Vše je možné, dokud si to myslíte!
Avatar
Martin Konečný (pavelco1998):21.4.2014 17:07

Krásně je ten kód komentovaný. Schválně, kdy se v tom ztratíš a nebudeš vědět, co co dělá. :-)

 
Nahoru Odpovědět 21.4.2014 17:07
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Honza Bittner:21.4.2014 17:11

Pokud opravdu, jak píšeš,

CVA architecture
==
Component View Architecture architecture

tak to není moc geniální název :P

Editováno 21.4.2014 17:11
Nahoru Odpovědět 21.4.2014 17:11
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Odpovídá na Denis Homolík (Alfonz)
Libor Šimo (libcosenior):21.4.2014 17:15

Každý má šancu. Ostatní len závidia nápad. ;)

Nahoru Odpovědět  ±0 21.4.2014 17:15
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Honza Bittner
Jiří Gracík:21.4.2014 17:16

Component View Assembly

Nahoru Odpovědět 21.4.2014 17:16
Creating websites is awesome till you see the result in another browser ...
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Jiří Gracík
Honza Bittner:21.4.2014 17:22

Jo, už koukám na web... Takže to napsal špatně tady... ;)

Nahoru Odpovědět 21.4.2014 17:22
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Denis Homolík (Alfonz):21.4.2014 17:44

Název se změnil. V frameworku se toho bude ještě hodně měnit. Co říkáte na architekturu?

Nahoru Odpovědět 21.4.2014 17:44
Vše je možné, dokud si to myslíte!
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Petr Nymsa:21.4.2014 18:00

Jaký je tedy rozdíl mezi Component a Assembly ?

Nahoru Odpovědět 21.4.2014 18:00
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Denis Homolík (Alfonz):21.4.2014 18:28

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.

Nahoru Odpovědět 21.4.2014 18:28
Vše je možné, dokud si to myslíte!
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Jiří Gracík:21.4.2014 18:35

Takže v překladu na MVC, Assembly je Controller, Component je Model. Je to tak?

Nahoru Odpovědět  +2 21.4.2014 18:35
Creating websites is awesome till you see the result in another browser ...
Avatar
Nahoru Odpovědět 21.4.2014 18:39
Vše je možné, dokud si to myslíte!
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Petr Nymsa:21.4.2014 18:47

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

Nahoru Odpovědět 21.4.2014 18:47
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Petr Nymsa
Jiří Gracík:21.4.2014 18:49

To bude asi hlavní rozdíl oproti MVC, jinak by se to mohlo jmenovat stejně. Jsem zvědav, co z toho nakonec vyleze.

Nahoru Odpovědět 21.4.2014 18:49
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Petr Nymsa
Denis Homolík (Alfonz):21.4.2014 18:52

Jaká může být nevýhoda nepoužívání modelů u MVC?

Nahoru Odpovědět 21.4.2014 18:52
Vše je možné, dokud si to myslíte!
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Petr Nymsa:21.4.2014 19:05

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

  1. kde zpracováváš požadavky od uživatele ?
  2. proč by měla mít komponenta na starost ještě tahání dat z databáze apod ?

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ě :)

Nahoru Odpovědět  +1 21.4.2014 19:05
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
coells
Redaktor
Avatar
Odpovídá na Petr Nymsa
coells:21.4.2014 19:34

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.

 
Nahoru Odpovědět 21.4.2014 19:34
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na coells
Petr Nymsa:21.4.2014 19:36

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

Nahoru Odpovědět 21.4.2014 19:36
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
coells
Redaktor
Avatar
Odpovídá na Petr Nymsa
coells:21.4.2014 19:47

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?

 
Nahoru Odpovědět 21.4.2014 19:47
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na coells
Petr Nymsa:21.4.2014 19:50

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

Nahoru Odpovědět 21.4.2014 19:50
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
coells
Redaktor
Avatar
Odpovídá na Petr Nymsa
coells:21.4.2014 20:00

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.

 
Nahoru Odpovědět 21.4.2014 20:00
Avatar
Matúš Petrofčík
Šéfredaktor
Avatar
Odpovídá na Denis Homolík (Alfonz)
Matúš Petrofčík:21.4.2014 20:09

na verejnom serveri by ste mali mať vypnuté zobrazovanie chýb, napr. tu:
http://framework.lerainsoft.eu/Alpha0.5/

Nahoru Odpovědět 21.4.2014 20:09
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Denis Homolík (Alfonz):21.4.2014 20:18

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.

Nahoru Odpovědět 21.4.2014 20:18
Vše je možné, dokud si to myslíte!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 23 zpráv z 23.