Autor Zpráva
Thak
Profil
Ahoj,
dovedl by mi někdo vysvětlit rozdíl / výhody mezi psaním webu s HTML, jQuery, PHP a využitím AngularJS a MVC?
Pokud píši klasicky web s použitím PHP, HTML, CSS, jQuery, tak mám od sebe oddělenou kostru webu, stylopis, javascripty a server-side funkce a skripty.
V poslední době ale narážím stále více na nějaké MVC frameworky / AngularJS / React.js a přemýšlím v čem jsou výhody a rozdíl.
Když jsem se podíval třeba na W3school a jejich AngularJS učebnici, tak první, co jsem viděl je, že se přímo cpe něco do HTML tzn. značné znepřehlednění
kódu a z mého pohledu staré školy takovej nečistej maglajs.

Jaké jsou tedy objektivní důvody používat něco takového? Dovedl by mě někdo nasměrovat třeba na nějaký článek nebo vysvětlit zde?

Díky
Kcko
Profil
Thak:
Začni třeba tady www.sitepoint.com/10-reasons-use-angularjs a pak zkus trošku googlit sám.
Do HTML se v Angularu sypou už jen data, která se vypisují, co Ti na tom přijde nepřehledného?


To je to samé jako v Nette frameworku (v Modelu si připravím data, v Presenteru (Controlleru) je předám do šablony - View (*.latte a vypíši). Imho normální MVC.
Thak
Profil
Dobře, tak půjdu ještě hlouběji - proč MVC a ne klasické psaní webu? Zkusím taky vygooglit, jen jsem myslel, že mi někdo řekne jednou větou nějaký jeden dva konkrétní důvody, co na tom je, tak převratného.
Keeehi
Profil
Převratného na tom je to je to, že jednotlivé části jsou od sebe odděleny a má to logickou strukturu. U pětistránkového webu to je jedno, u velkého portálu se to neskutečně hodí.
H13
Profil
Thak
Taková maličkost, pro někoho možná nezajímavá. Použil jsem právě jeden takový javascript framework na stránce a nyní mám ve výsledcích vyhledávání místo hodnot proměnné. Prostě, robot načetl stránku tak jak je, tedy bez javascriptu a tedy bez hodnot a místo hodnot jsou ve výsledcích vyhledávání proměnné z javascriptu. Pravděpodobně bych pro příští podobný projekt použil jQuery, tedy normálně bych vypsal hodnoty a poté je měnil za pomocí jQuery (v podstatě stejným principem jako to dělá javascript framework, ale s tím, že výchozí hodnoty by byly normálně vypsány na straně serveru). Snažil jsem se najít řešení tohoto problému, ale nenašel jsem. Pokud by měl někdo nějaký tip, byl bych za něj rád.

Díky.
ge0rgecz
Profil
H13:
Na toto samozřejmě existuje docela jednoduché řešení a tím je prvotní serverové vykreslení aplikace která posléze běží v prohlížeči. Funguje to tak, že na serveru běží jádro internetového prohlížeče které umí stejně jako prohlížeč interpretovat velmi rychle javascript ... říká se mu NODE.JS, dokonce staví nad stejným javascriptovým engine který najdete v chrome. Ten podle zadaného URL stránku vykreslí a do prohlížeče ji posílá už připravenou tak aby z ní vyhledávací BOTI něco měly a stránka nebyl jen velký SEO průšvih. Spolu s tímto obsahem se přenáší i samotná aplikace která pak ve vykreslování změn pokračuje už na klientské straně, server provede jen to prvotní vykreslení, takže aplikace dál běží převážně na straně klienta.

Více informací zde universal.angular.io

Jinak můj osobní postřeh je takový. Pokud máte zvládnutý serverový vývoj v NETTE a na dynamiku stránky používáte snippety v komginaci s jQuery nejspíš si vystačíte, ale budete neustále narážet na komplikace kdykoliv od vás bude klient požadovat rychlejší reakce aplikace, které zná z jiných webů které jsou založeny na odděleném client-side vývoji. Nette snippety nejsou moc dobré řešení, bohužel, je to spíš taková zoufalá záplata požadavku na rychlé změny na straně klienta - je to ale velmi nedotažená a málo promyšlená záplata. Brzy tak pod náporem podobných požadavků jednoduše zjistíte že na server presentery a latte šablony prostě nepatří. Místo nich nasadíte angular a na serveru ponecháte jen business logiku a jejíc aplikační rozhranní. Ano je to pracnější, jistě, ideálně to chce nedělat takový vývoj jen v jedné osobě, ale mít raději specialistu na front a backend vývoj. Abyste si to časem usnadnil začnete možná psát i serverovou část s business logikou ve stejném jazyce (v případě angularu zřejmě typescript) a definitivně opustíte PHP. Ale ve finále je to rozhodně správná cesta ze které profituje nejen prehlednost složitějších aplikací, ale i klient který získá web který reaguje neskutečně rychle (s backendem si vyměňuje jenom surová strukturovaná data, žádné kusy celé stránky jako v případě nette snipettů, které navíc obsahují nějaký zoufalý javascript co se snaží zoufale reinicializovat něco co javascript na stránce před překreslením snippetu už vykonal což je postup který se při složitější aplikaci stane brzy neudržovatelný)
H13
Profil
ge0rgecz:
s backendem si vyměňuje jenom surová strukturovaná data, žádné kusy celé stránky jako v případě nette snipettů
Já nemám zkušenosti s nette snipetty, ale to AJAX snad také umí, že si neposíláte neustále celé stránky?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0