Pokračujeme ve stručném představení druhého modulu programu tvorby webových aplikací v Learn2Code.
Migrace
Jelikož během vývoje projektu se nevyhneme změnám. Když nahráváme nový kód na produkční server, potřebujeme také aktualizovat tabulky databáze. Tento problém řeší migrace , kterým jsme proto věnovali velkou pozornost. Migrace jsou propracovaným modulem Ruby on Rails a napomáhají spravovat tabulky relačních databází.
Scaffolding
Štefan nám ukázal také zrychlený způsob generování hlavních součástí aplikace – scaffolding. Scaffold vytvoří funkční části zdrojového kódu ze šablon, které Railsy obsahují. Takto vygenerované zdrojové kódy lze následně samozřejmě upravovat. Pokud tedy chceme vytvořit na jeden šup modely, kontrolery i šablony, vygenerovat scaffold je ideálním nástrojem. Třeba však říci, že ačkoli scaffold pomůže k rychlému začátku s vývojem aplikace, negeneruje univerzální kód, je třeba jej upravovat az tohoto důvodu většina zkušených Rails vývojářů scaffold nepoužívá.
Šablony, layouty, partialy
Ruby on Rails má integrovaný prokročilý šablonovací systém. Všechny šablony aplikace se nacházejí pod adresářem app/views/*. Výsledná podoba stránky, kterou můžeme vidět v prohlížeči je dosažena sledem různých kroků. Stránka se skládá z layoutu, šablony aktuální akce a případně partialů. Každý z těchto elementů představuje určitý level zanoření:
Nejzákladnější šablonou je layout. Nejčastěji obsahuje pouze základní strukturu HTML stránky a značky pro načtení CSS a JS souborů.
Do layoutu je vložena šablona přesně podle aktuálního controlleru a akce (yield).
Každá šablona může do sebe dále vkládat partialy, což jsou „mini šablony“ a řeší část logiky ve smyslu designu (např. navigace nebo box s produktem).
I18n
Součástí Ruby on Rails je také framework pro překlad aplikace do dalších jazyků. Pomocí I18N (18 je počet písmen mezi ian ve slově internationalization) lze vytvořit jazykovou mutaci našeho webu. Ukázka aplikace, kterou jsme vytvořili, je na přiložených obrázcích (v aplikaci nebylo téměř vůbec použito CSS).
Naše aplikace je třeba dostat online, jelikož dosud běžely pouze na lokální adrese. Využili jsme k tomu cloud hostingovou službu Heroku , která je do jisté míry zdarma.
To je ve velmi zkrácené a okresané formě obsah druhého modulu, vše se obsáhnout nedá a probrali jsme toho mnohem víc. Nabyté znalosti a dovednosti určitě využijeme při vývoji vlastních aplikací během workshopu, určitě to tím však neskončí.
Mám na starosti marketing a operations v Skillmea | (spolu)organizujem programátorský workshop Rails Girls Bratislava | ambasádor EU Code Week na Slovensku