19 komentářů k článku Návrh uživatelské části e-shopu:

  1. https://tomasfejfar.mojeid.cz/#bLGPpVT97A

    JS vs SEO

    Jak to Kubo bude fungovat pro vyhledávače, když to bude JS frontend k REST API. Nehodí se tenhle typ aplikace spíš na „aplikace“ (typu Gmail, Facebook, atp) – prostě na stránky, které nechceš indexovat?

    1. vidya

      Re: JS vs SEO

      je s tym rochu roboty ale ide to. vecsinou sa renderuje obsah pre vyhladavace v niecom ako phantomjs. nedavno som robil mobilny web v angularjs, backend je express kde mam nainstalovany middleware Crawlme. ked detekujem ze mi prisiel request z googlu, tak mu neposlem standardny response ale to vyrenderujem do obycajneho html tymto pluginom (interne pouziva headless browser – zombie.js)

      1. 5o

        Re: JS vs SEO

        Toto nechapem. To akoze ako byt kuul guru a naprogramovat eshop co najzlozitejsie?

        Aky to ma prakticky vyznam? O rok, dva vyjde zase nieco exotickejsie, nejaky prekladac prekladaneho kodu, nejaky superscript alebo co. Bude sa v nom lepsie programovat? Neviem, ale viem, ze je to o vysledkoch. Mat eshop, ktory nic nevie, bez poriadneho CMS ale na najnovsom jazyku mi prijde zbytocne. Navyse zhanat profikov, ktory to vedia je drahe. A to nehovorim o podpore na hostingoch.

        Akosi stale nechapem tie prakticke vyhody (v ralnom zivote), oproti PHP napr.

        1. Jakub MrozekAutor příspěvku

          Re: JS vs SEO

          Není to to nejsložitější, naopak si myslím, že je to nejjednodušší způsob práce.

          Tak praktické výhody:

          a) Můžu si tímto způsobem naprogramovat celou aplikaci, aniž bych napsal jediný řádek kódu. Takže pro další díl vypadá shop takhle: http://secure-spire-1773.herokuapp.com/ (web běží velmi pomalu, ignorovat). Jsou to POUZE statické šablony bez komunikace se serverem. Napíšu si všechna rozhraní, která budou žádat po serveru nějaká data, čímž mi vznikne specifikace pro API, které budu psát až na konec. Výhody byly popsány podrobněji v článku, jde především o velkou úsporu času při změnách.

          b) Testovací data napíšu apiary (docs.zdrojak­.apiary.io). Jednak tím vznikne podrobná dokumentace, ale hlavně mám data, která pak použiji pro automatizované testování. Ve 12. díle seriálu o Node.js bylo popsáno, jak ta data automatizovaně stáhnu k sobě a použiji je i pro testování u sebe na localhostu. Velmi důležité je, že cokoliv v rámci aplikace napíšu, tak to nepíšu zbytečně, ale budu to využívat i později.

          c) Mám jedno rozhraní, přes které získávám data. Kromě rozhraní pro uživatelskou část a administraci velmi pravděpodobně budu chtít napojení na nějaký fakturační systém, pak velmi často bývají shopy napojeny na nějaký feed zboží, možná různé reklamní systémy ap. Všechna data třeba pro produkty získávám přes adresu /api/products.

          d) Velká výhoda je kešování, opět podrobněji popsáno v článku. Tímto způsobem je možné výrazně snížit zátěž hostingu.

          Další výhody byly průbězně zmiňovány v seriálu o Node.js.

          A co se týče PHP, tak to se pro tento typ aplikací vůbec nehodí z toho důvodu, že pro každý request musím načíst hromadu věcí, třeba celý framework, kdežto v Node.js + Express jeden požadavek zpracovává jednoduchý router, který ho přesune na jednu funkci, která třeba jen zavolá databázi a hned vrací výsledek. To je mnohem rychlejší, proto ta drastická úspora výkonu, když LinkedIn přešel na Node.js.

          Nejlepší bude počkat na konec seriálu a pak hodnotit výsledek.

          1. 5o

            Re: JS vs SEO

            Vdaka za vysvetlenie. Tieto vyhody chapem. Chapem ze Node.js sa hodi na real-time aplikacie. Ten sposob vyvoja aky opisujes sa da podobne aplikovat aj na PHP + to cachovanie (mimo to ze sa nacitava cely framework, ale ani to nie je pravda, iba sa vykona dispatch cycle, ale aj to sa da obyst statickym cachovanim), to je mimo. Rozdiel s Node je v tom, ze server sa sprava ako service voci aplikaciam (CMS atd). Lenze som si nieco precital o tom, ze je to problem, ze Node bezi na jednom procaku, dalej kedze je to dlho zijuci proces, nastavaju pri (nedobre napisanych) aplikaciach mem leaks. Dalej ak jeden request vyhodi error tak padne cely Node, cize treba osefovat hosing dalsimi servicami co ho budu drzat nazive atd. Takze ked sa nad tym tak zamyslim, nad schopnostami vacsiny programatorov vo firmach atd, kde maju problem pochopit studenti OOP v PHP, tak prakticke vyhody ma Node.js iba teoreticky (myslim pri tvorbe klasickych web stranok).

            1. 5o

              Re: JS vs SEO

              Myslim, ze Node je idealny na HTML5 hry s WebSockets. Taky clanok by som uvital urcite viac, mozno aj ostatny.

            2. petersirka

              Re: JS vs SEO

              1. node môžeš spustiť aj vo viacerých vláknach (len je to trochu iné) viď. http://petersirka.sk/development/spustenie-partial-js-v-module-cluster/ … Filozofia node.js je veľmi dobrá, väčšinou ti jedno vlákno stačí na komunikáciu s klientom.

              2. Ak jeden request vyhodí error, tak padne celá aplikácia … Toto je vec používaného frameworku, ak používaš node.js holí bosí áno, ak používaš framework – nie. To isté máš v PHP alebo v .NET. Čo sa stane ak vo Windwose alebo v OSX aplikácia vyhodí Application Exception? Padne celá aplikácia (pokiaľ ju kóder nezachytí).

              Mne príde node.js menej náchylnejší na chyby, pretože nemusíš riešiť multithreading.

              Node.js je holý bosí, je to framework, do ktorého si buď nákodiš frameworku (ako ja) alebo použiješ existujúci framework napr. expressjs.

              Každý jazyk má niečo lepšie a horšie. Netreba sa pozerať na node.js ako na spasenie, node.js priniesol trošku iný prístup ku kódovaniu a to najpodstatnejšie je to, že je to JavaScript.

      2. petersirka

        Re: JS vs SEO

        Podľa mňa je to veľmi zlé riešenie, pretože Googlu dávaš nereálne výsledky, pozor aby ťa nepenalizoval. Generovať obsah u klienta v internetovom obchode cez JS mi príde ako veľmi zlá úchylka :-) a bodaj by som sa mýlil.

            1. vidya

              Re: JS vs SEO

              pravda. povodne som to neriesil ale vas koment ma prinutil sa trochu zamysliet a zistil som ze zombie.js podporuje history api, takze pre roboty a browsre s podporou hist. api skusim generovat standardne url a hashbang urls budu ako fallback (v mojom pripade by sa to tykalo len starsich androidov). myslim ze by to mohlo fungovat.

        1. petersirka

          Re: JS vs SEO

          Áno AJAX crawling je bohužiaľ jediná možnosť, ktorá nebude veľmi efektívna voči klasickým webom (možno sa mýlim). Hádať sa určite nejdem a ak ti to funguje – potom je to skvelé.

    2. Jakub MrozekAutor příspěvku

      Re: JS vs SEO

      Jak píše kolega výše, pro vyhledávače je potřeba aplikaci přizpůsobit, ale není to tak složité. Na konci seriálu bude díl věnován optimalizaci a tam to bude podrobněji popsáno.

      1. Tomáš Fejfar

        Re: JS vs SEO

        No, já tam nevidim ten přínos používání node.js – pokud pak musíš vyvinout relativně velké úsilí, aby to bylo aspoň minimálně použitelné. Jakože je hezké, že to máš celé AJAXové, ale ve výsledku mi dává větší smysl nette a komponenty – kdy si to v případě nouze prostě celé vyrenderuješ na serveru a když je JS, tak se pošle jen kousek…
        Samozřejmě chápu výhody node před PHP, Pythonem a jinými interpretovanými jazyky, ale podle mého je eshop přesně ten typ aplikace pro kterou je node extrémně nevhodý. Jsem fakt zvědav, jestli se tenhle můj názor do konce seriálu nějak zásadněji změní, ale zatím to tak nevypadá (resp. držím si ho od prvního dílu, ale tam mi přišlo předčasné to vytahovat).

        1. Tomáš Fejfar

          Re: JS vs SEO

          Samozřejmě, když píšu „nodejs“ myslím „node,js jako REST API a k tomu AngularJS“ ;)

  2. Tomáš Jurman

    PHP od Koska

    Ahoj
    článek se mi velmi líbí. Číst o tom jak je možné používat nové technologie jako node.js a Angular, a vidět jak navrhovat REST API je krásné a poučné.
    Jsem rád, že si mohu na Zdrojáku takové progresivní články přečíst.

    Kdo chce programovat eshop v PHP nechť si koupí knihu PHP od pana Koska.

    Zdraví
    echo „Tomáš“;

  3. cl1d3

    Kompatibilita s roznymi prehliadavacmi

    Zaujimalo by ma ako je to s kompatibilitou. Takto naprogramovana aplikacia pojde vo vacsine prehliadacov v pohode? Myslim iPad, iPhone, SAMSUNG Galaxy Tab, IE, Firefox, Opera, Safari …
    Paci sa mi napad programovat veci takouto formou len ci to neprinesie v praxi viac problemov ako radosti spoliehat na JavaScript.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3765