IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

1. diel - Úvod do frameworku Simplex.js

Vitajte v rýchlokurzu javascriptového frameworku Simplex.js, učenie tohto frameworku totiž ani inak ako rýchlo nejde :) A predsa využíva tých najmodernejších jazykových konštrukcií, ktoré priniesol štandard ECMAScript 6, je plne objektovo orientovaný a zníži náklady na vývoj vášho webového projektu na minimum. Framework bol navrhnutý a je vyvíjaný ITnetwork.cz, kde obstaráva všetku front-end funkcionalitu. Myslíte, že sa jedná o "ďalšie najlepší JS framework"? V dnešnej lekcii si vysvetlíme v čom je iný a prečo vášmu projektu ušetrí veľa peňazí, bez ohľadu na to ako je veľký.

Tento kurz predpokladá znalosť aspoň základov JavaScriptu a základov objektovo orientovaného programovania v JS.

Prečo framework?

V HTML a CSS chýba veľa dôležitých komponentov, ktoré na weboch denne potrebujeme. Sú to rôzne slidery, našeptávača, grafy, záložky - už len slávna hláška o cookies Európskej únie, ktorá musí byť prakticky na každej webovej stránke, vyžaduje JavaScript.

JavaScript ako taký ale tieto sic úplne základné komponenty neobsahuje, iba je umožňuje vytvoriť. Dáva teda zmysel využiť nejaký framework, ktorý komponenty rovno prinesie hotové alebo výrazne uľahčí ich tvorbu. Nikto nechceme vynájsť znovu koleso.

Prečo nie jQuery, Angular, React ...?

V minulosti sa hojne používala knižnica jQuery, ktorá sa preslávila implementáciou CSS selektorov do JavaScriptu (od toho query). Avšak po príchode metódy querySelector() priamo do JS štandardu v roku 2013 as príchodom novej syntaxe a možností objektovo orientovaného programovania do JS v roku 2015 začala byť veľmi zastaraná.

Robustnejšie riešenie ako sú populárne frameworky Angular alebo React však tiež nemusí byť pre bežné webové stránky ideálne. Keď vynecháme ich komplexnosť (Angular) alebo naopak nutnosť kombinovať ich pomaly s desiatimi ďalšími neustále sa meniacimi technológiami (React), je najväčší problém, že vyžadujú špecializované programátorov. A už len programátorov, ktorí vedia aspoň čistý JS, je zúfalo málo a veľké spoločnosti vám je ešte přeplácejí. Ak máte malý projekt (start up) v robustnom frameworku, môže vám čoskoro začať tiecť do topánok, až váš programátor prestane stíhať.

Naopak Simplex.js je tak jednoduchý, že sa ho aj priemerný programátor naučia používať za jedno popoludnie. A veľké projekty? Aj pre tých je Simplex.js ideálne riešenie, kódu majú totiž veľa a určite nechceme, aby závisel na zbesilo vyvíjaných veľkých JS frameworkoch (napr. Prechod z Angular 1 na Angular 2 vtedy oslabil veľa projektov, pretože sa framework úplne zmenil a bolo treba kompletne prepísať).

Simplex.js

framework Simplex.js - Rýchlokurz frameworku Simplex.js

Simplex.js je tzv. Microframework. To znamená, že využíva minimalistická riešenie, zakladá si na krátkom zdrojovom kóde a využívanie najmodernejších vychytávok, ktoré boli do webových štandardov pridané za posledné roky. Simplex.js sa nesnaží priniesť "najviac cool trendy riešenie", ale maximálne stavať na funkcionalite moderných webových štandardov, ktoré sú trvanlivé, nemenné, a poskytujú stále viac a viac funkcií. Vďaka tomu môže aj s minimom kódu súperiť s robustnými korporátnymi frameworky, ktoré boli vytvorené v čase, keď veľa funkcionality v štandardoch ešte neexistovala, alebo bola radšej implementovaná znova, aby napr. Získala elegantnejší syntax.

Komponentová architektúra

Všetka funkcionalitu je v simplex obsiahnutá v komponentoch a rovno sa počíta s tým, že jedna komponenta môže byť na jednej stránke niekoľkokrát (napr. Dva slidery na titulnej stránke). Komponenty sa automaticky vygenerujú na základe pripravenej HTML šablóny a sú od seba navzájom odtienené. Simplex niektoré veci zámerne neumožňuje, napr. Pristupovať k HTML kódu stránky mimo danú komponent, čím zabraňuje zlému návrhu typickému pre globálne jQuery selektory, kedy vo zložitejšie aplikácii už programátor ani nevedel, ktorá časť stránky je čím upravovaná.

Moderný návrh

Veľkým neduhom jQuery boli napr. Funkcie vo funkciách, ktoré boli zas vo funkciách. V Simplex.js máme lambda funkcie v metódach tried. Štruktúra kódu je tak samopopisující. Ďalšou výhodou je dodržiavanie kontexte kľúčového slova this v obsluhe udalostí a zároveň možnosť vytiahnuť si ľahko zdrojový alebo cieľový element udalosti cez parameter. Jednotlivé komponenty, reprezentovanej triedami, od seba môžu dediť (napr. Carousel dedí z TabControl).

Šablóny a binding

Po vzore trojvrstvových frameworkov (ako je napr. Angular), Simplex umožňuje jednoducho bindovat premenné objektov priamo na elementy alebo formulárové polia. To šetrí čas a znižuje riziko zanesenia chyby do kódu. Táto funkčnosť je zatiaľ experimentálne.

Začíname

Aby sme mohli používať náš framework, musíme si ho najskôr stiahnuť. Súbor s kompletným frameworkom bude dostupný v poslednom dieli tohto rýchlokurzu. Obsah archívu rozbalíme do zložky, v ktorej ho chceme začať používať, napr na plochu:

Adresár frameworku Simplex - Rýchlokurz frameworku Simplex.js

Vysvetlenie obsahu podpriečinkov:

  • Controls/ - zložka obsahuje jednotlivé komponenty,
  • Framework/ - zložka obsahuje samotný framework,
  • photos/ - zložka s obrázkami pre ukážku použitie (index.html),
  • Styles/ - zložka obsahuje CSS súbory.

Ukážka použitia

V koreňovom priečinku nájdeme jednoduchú html stránku s názvom index.html. Je tu ukázané použitie komponentov Carousel a TabControl:

Ukážka komponentov Carousel a TabControl z frameworku Simplex.js - Rýchlokurz frameworku Simplex.js

Poďme sa pozrieť ako všetko funguje. Otvorte si zdrojový kód stránky. Na konci stránky pred ukončujúcom elementom </html> nájdeme okrem iného nasledujúci kód:

<script src="Framework/Sjs.js"></script>
<script src="Framework/SimplexSelection.js"></script>
<script src="Framework/SimplexControl.js"></script>

Vysvetlenie kódu:

  • Framework/Sjs.js - trieda starajúci sa o automatické načítanie a registráciu komponentov,
  • Framework/SimplexControl.js - rodičovská trieda pre všetky komponenty,
  • Framework/SimplexSelection.js - trieda pre výber elementov.

Ďalej tu vidíme registrovanie jednotlivých komponentov, čím sa na stránke spracujú, ak tu sú vložené:

<script>
    Sjs.initialize();
    Sjs.register('TabControl');
    Sjs.register('Carousel');
</script>

O inicializácii triedy objektu Sjs sa stará volanie metódy initialize(). Následne sa vykoná registrácia komponenty, ktorú chceme na stránke využívať, konkrétne zavolaním metódy register(). Komponentmi rozumieme také "prvky", ktoré nám poskytuje obsah priečinka Controls, teda napr. TabControl, Carousel pod.

V túto chvíľu sme si vysvetlili kľúčové kroky pre použitie frameworku, vysvetlili sme si obsah zložiek a pripojenie JS súborov vrátane inicializácia a registrácia komponentov.

Nabudúce, v lekcii Opis vstavaných komponentov Simplex.js , si ukážeme ako pracujeme s komponentmi na príklade hojne využívané komponenty Carousel. Následne si popíšeme aj ďalšie vstavané komponenty frameworku.


 

Všetky články v sekcii
Rýchlokurz frameworku Simplex.js
Preskočiť článok
(neodporúčame)
Opis vstavaných komponentov Simplex.js
Článok pre vás napísal Petr Kozler
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se aktuálně věnuje především programování v PHP (a vývoji webových aplikací obecně) nebo v Pythonu, ojediněle pak v C nebo v Javě...
Aktivity