Avatar
Denis Homolík (Alfonz):

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

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

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:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Odpovídá na Denis Homolík (Alfonz)
Libor Šimo (libcosenior):

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

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

Nahoru Odpovědět 21.4.2014 17:22
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Denis Homolík (Alfonz):

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:

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

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:

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:

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:

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

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:

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:

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:

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:

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:

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:

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:

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

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.