Pokračujeme v stručnom predstavení druhého modulu programu tvorby webových aplikácií v Learn2Code.
Migrácie
Keďže počas vývoja projektu sa nevyhneme zmenám. Keď nahrávame nový kód na produkčný server, potrebujeme tiež aktualizovať tabuľky databázy. Tento problém riešia migrácie, ktorým sme preto venovali veľkú pozornosť. Migrácie sú prepracovaným modulom Ruby on Rails a napomáhajú spravovať tabuľky relačných databáz.
Scaffolding
Štefan nám ukázal aj zrýchlený spôsob generovania hlavných súčastí aplikácie - scaffolding. Scaffold vytvorí funkčné časti zdrojového kódu zo šablón, ktoré Railsy obsahujú. Takto vygenerované zdrojové kódy je následne samozrejme možné upravovať. Ak teda chceme vytvoriť na jeden šup modely, kontrolery aj šablóny, vygenerovať scaffold je ideálnym nástrojom. Treba však povedať, že hoci scaffold pomôže k rýchlemu začiatku s vývojom aplikácie, negeneruje univerzálny kód, je potrebné ho upravovať a z tohto dôvodu väčšina skúsených Rails vývojárov scaffold nepoužíva.
Šablóny, layouty, partialy
Ruby on Rails má integrovaný prokročilý šablónovací systém. Všetky šablóny aplikácie sa nachádzajú pod adresárom app/views/*. Výsledná podoba stránky, ktorú môžeme vidieť v prehliadači je dosiahnutá sledom rôznych krokov. Stránka pozostáva z layoutu, šablóny aktuálnej akcie a prípadne partialov. Každý z týchto elementov predstavuje určitý level zanorenia:
Najzákladnejšou šablónou je layout. Najčastejšie obsahuje iba základnú štruktúru HTML stránky a značky na načítanie CSS a JS súborov.
Do layoutu je vložená šablóna presne podľa aktuálneho controlleru a akcie (yield).
Každá šablóna môže do seba ďalej vkladať partialy, čo sú “mini šablóny” a riešia časť logiky v zmysle dizajnu (napr. navigácia alebo box s produktom).
I18n
Súčasťou Ruby on Rails je aj framework na preklad aplikácie do ďalších jazykov. Pomocou I18N (18 je počet písmen medzi i a n v slove internationalization) je možné vytvoriť jazykovú mutáciu nášho webu. Ukážka aplikácie, ktorú sme vytvorili, je na priložených obrázkoch (v aplikácii nebolo takmer vôbec použité CSS).
Naše aplikácie je potrebné dostať online, keďže doteraz bežali len na lokálnej adrese. Využili sme na to cloud hostingovú službu Heroku, ktorá je do istej miery zadarmo.
To je vo veľmi skrátenej a okresanej forme obsah druhého modulu, všetko sa obsiahnuť nedá a prebrali sme toho omnoho viac. Nadobudnuté vedomosti a zručnosti určite využijeme pri vývoji vlastných aplikácií počas workshopu, určite to tým však neskončí.
Marián Kristeľ
Mám na starosti marketing a operations v Skillmea | (spolu)organizujem programátorský workshop Rails Girls Bratislava | ambasádor EU Code Week na Slovensku