Ruby on Rails. VŠE, Jiří Hradil

Podobné dokumenty
Ruby on Rails: zapomeňte na Javu

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Databázové a informační systémy

Ember.js. Jan Kopřiva, Vojtěch Jasný

Stručný obsah. Část I Úvod. Část II Komponenty

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

Fyzické uložení dat a indexy

Informatika pro moderní fyziky (10) složitější interaktivní dokument, získávání informací z webu

MODERNÍ WEB SNADNO A RYCHLE

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

RESTful API TAMZ 1. Cvičení 11

Otevřený katastr (OK)

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Část 1 Moderní JavaScript

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Olga Rudikova 2. ročník APIN

Systémová administrace portálu Liferay

IS pro podporu BOZP na FIT ČVUT

8.2 Používání a tvorba databází

Mobile application developent

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

Django Urls, views, templates

Instalace a konfigurace

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Dobrý SHOP Popis produktu a jeho rozšíření

SUTOL Symposium 2014

Microsoft Azure Workshop

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Dobrý CMS Popis produktu a jeho rozšíření

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Staňte se bodem zájmu!

Použití databází na Webu

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

VIVO: NOVINKY NA FRONT-ENDU LUNDEGAARD Zdeněk Staněk

Platformy / technologie. Jaroslav Žáček

Nové jazykové brány do Caché. Daniel Kutáč

Dobrý FOTO Popis produktu a jeho rozšíření

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Publikujeme web. "Kam s ním?!"

D R U P A L V O J T Ě C H K U S W O J T H A

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

5. POČÍTAČOVÉ CVIČENÍ

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Převod LN aplikace do xpages

Zpětná vazba od čtenářů 11 Dotazy 11 Zdrojové kódy ke knize 11 Errata 11 Typografické konvence použité v knize 12

CZ.1.07/1.5.00/

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

1 Webový server, instalace PHP a MySQL 13

Vybraná zajímavá Lotus Notes řešení použitelná i ve vašich aplikacích. David Marko TCL DigiTrade

Web frameworks v praxi Tomáš Krátký

Formy komunikace s knihovnami

Správa a tisk faktur v LaTeXu

language="javascript">... </script>.

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

MVVM pro desktop i web

Bakalářské. Vzdělání: Telefon: Ostrava. Bydliště: Ukázky práce: Správa a monitoring platformy provozované na AWS

Instalace produktu Ontopia. ver (open-source verze)

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Správa linuxového serveru: Zprovoznění Ruby aplikací s RVM, Thin a Nginx

Co je (staro)nového v DSpace

Úvod do FlexiBee REST API. Petr Ferschmann FlexiBee Systems s.r.o.

<Insert Picture Here> Vývoj portálových řešení v Javě

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Jak se dělá sociální síť. Část 1- Implementace. Implementace, Startup, Motivace

Budte chytří při vytváření aplikací

Web Services na SOAP

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Michal Augustýn Microsoft Most Valuable Professional

Drupal. Svobodný redakční systém. duben 2007 Jakub Suchý 1

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

bubileg webový redakční systém Manuál administrace pro systém verze 5

O Apache Derby detailněji. Hynek Mlnařík

1. Webový server, instalace PHP a MySQL 13

Správa linuxového serveru: Webová rozhraní k poště (Squirrelmail a Roundcube)

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

MBI - technologická realizace modelu

ANOTACE vytvořených/inovovaných materiálů

Transkript:

Ruby on Rails VŠE, 5.5.2017 Jiří Hradil jiri@hradil.cz

Co jsou Ruby on Rails? http://rubyonrails.org web framework - píšou se v tom web aplikace open source, zadara, 4200 contributors Ruby - objektový jazyk, čistý, čitelný Ruby se rozšiřuje pomocí knihoven = gems (jsou jich desítky tisíc) Rails jsou jedním z gems Rails jsou MVC framework nad Ruby prezentace jede na verzi 4.2, aktuální Rails jsou 5.1 2

Proč používat Rails? Jsou kompletní, ve srovnání s Jsou jednodušší Jsou pro lidi Jsou hezké, budete je mít rádi Jsou rychlé a produktivní - pro vývoj, pro nováčky, pro kohokoli Jsou populární - nejste sami a (vše) je vyřešeno http://trends.builtwith.com/framework Už neřešíme jak, ale co Pokud něco nejde v Rails, zřejmě to děláme špatně 3

Co je v Rails? 3 prostředí - development, test, production pevná adresářová struktura jmenné konvence logování, včetně SQL dotazů šablony velký důraz na testování, TDD princip prototypování (scaffolding) výsledek = projekty vypadají stejně a je v nich pořádek Rails mají vše, co je třeba pro vývoj web aplikací magie, všechno funguje nějak tak samo (method_missing, apod.) 4

Začínáme instalace Ruby (2.2) instalace RubyGems (správa knihoven) gem install rails rails new addressbook -d postgresql cd addressbook rake db:create (vytvoříme db) rails s (nastartujeme server) rails g scaffold contact name:string phone:string (vytvoříme CRUD aplikaci) rake db:migrate (vytvoříme tabulku v db) 5

Model, co budeme psát? 1 model = 1 = třída = 1 tabulka (default) Model má atributy - vlastnosti Atributy modelu jsou atributy tabulky Model si drží vlastní konzistenci a je samostatný jak to funguje? 6

Model, ORM Model sám komunikuje s DB a drží si konzistenci ORM - mapování objektu do databázových relací Automaticky generuje SQL Findery, magie rails c - spustí konzoli (příkazový řádek nad projektem) Contact.find(1) Contact.find_by_name( Jirka ) Contact.find_by_name_and_phone( Jirka, 123 ) Contact.create(name: Hradil ) Contact.find(1).delete 7

View - jak to bude vypadat? CRUD princip HTML, komunikace přes odkazy, formuláře, jako v PHP Hezké URL: http://invoicehome.com/clients/1 Šablony respond_to do format format.xml { render xml: @contacts } format.json { render json: @contacts } format.html end Hafo pomocných metod, generujících kusy kódu - link_to, image_tag 8

Controller - jak to spojit? metody pro CRUD new / create - form na nový záznam / uložení index / show - výpis všech záznamů / jednoho edit / update - form na úpravu / uložení destroy - smazání záznamu routes.rb - mapování URL na controllery, generuje cesty rake routes 9

Rozšiřování Rails Rails jsou gem, ale jdou rozšiřovat pomocí dalších gems Gems si samy řeší svoje závislosti i skrze verze Funguje skvěle, neřešíme Bundler, soubor Gemfile bundle install třeba stránkování přes will_paginate gem will_paginate @contacts = Contact.paginate(page: params[:page], per_page: 10) will_paginate(@contacts) 10

Populární frameworky Pořád je to jen webová aplikace, takže přidáme třeba Bootstrap (kdo má pořád řešit responsivní layout?) <link rel="stylesheet" href="https:// maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/ bootstrap.min.css" integrity="sha384- BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/ K68vbdEjh4u" crossorigin="anonymous"> Font Awesome (kdo má pořád kreslit/stahovat ikony?) <script src="https://use.fontawesome.com/ a770e59afd.js"></script> 11

Testy, testy, testy Units - jednotkový testy modelů (na úrovni metod objektů) Functional test - test controlleru (HTTP requesty) Integration test - test přes více controllerů, průchod aplikací Testy se generují automaticky, Rails chtějí, abyste testovali Testy jsou rychlé a snadno se spouští Fixtures - data pro testování, YAML formát Testy lze rozšířit, třeba přes Selenium rake test 12

Zkušenosti, Yeti NG Insia Yeti NG - největší software pro pojišťovací makléře ve střední Evropě Teklo 2 miliardy CZK / 5 mil. faktur ročně (rok 2011) Tisíce současně pracujících uživatelů Desítky serverů v clusteru Uptime 4 devítky ročně Napsáno v Rails 13

Zkušenosti, Invoice Home https://invoicehome.com fakturační systém pro živnostníky, B2C, C2C cca 1 mil. aktivních uživatelů z více než 150 zemí hlavně USA, Canada, UK, Austrálie, Španělsko, Francie, Singapore de facto celosvětový standard pro šablony faktur (pereme se o první místo s Microsoft Office templates v Google/Bing organic search) Amazon AWS, servery v USA, backup Singapore, CDN, desítky serverů v clusteru uptime 99.999% (=downtime něco málo přes 5 minut ročně) Napsáno v Rails, JQuery, PostgreSQL, Elastic Search, Java, aj. 14

Migrace z PHP a Javy PHP / Java vývojář migruje do 2-3 měsíců komplet Do 6 měsíců zná Rails perfektně Nutná znalost relačních databází, SQL Vynucené objekty, testování, MVC Začátečník do 1 měsíce napíše jednodušší projekt, hezky Produktivita 10x větší (srovnáno s Javou - stack Spring, Hibernate, Apache Wicket, 2010) Technologie v Rails: HTTP, HTML, CSS, JS, JQuery, AJAX, SQL 15

Pozor na Pořád je to jen web framework Bezpečnost, útoky, zálohování, hashování, šifrování - řeší se úplně stejně jako jinde Rails nasadí růžové brýle Spousta magie, která není vždy vidět Je třeba vědět a znát Není to o technologii, je to o vás a je to na vás 16

Zdroje Bible Rails: Agile Development with Rails 5: https:// pragprog.com/book/rails5/agile-web-development-withrails-5 Kniha Crafting Rails 4 Applications: https:// pragprog.com/book/jvrails2/crafting-rails-4-applications Cokoli pro Rails od The Pragmatic Programmers: https:// pragprog.com Videa RailsCasts by Ryan Bates: http://railscasts.com/ Komunita: Stack Overflow (haha :), Google, atd. 17

Díky! Otázky? jiri@hradil.cz 18