40
 copyright BNS MEDIA www.devcastzone.com  Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails Materiały pchdzą ze strny:  www.devcastzone.com

Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

Embed Size (px)

DESCRIPTION

Devcast "Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails" ma na celu zaznajomienie uczestników z wersją 3.1 frameworku Ruby on Rails w oparciu o język Ruby w wersji 1.9.2. Devcast opiera się o przykładowy projekt gry w szachy, który w trakcie szkolenia będzie rozwijany.

Citation preview

Page 1: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 1/40copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych

z wykorzystaniem Ruby on Rails

Materiały pchdzą ze strny: 

www.devcastzone.com

Page 2: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 2/40copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych

z wykorzystaniem Ruby on Rails

Mduł 2 

Framework Ruby on Rails

Page 3: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 3/40copyright BNS MEDIAwww.devcastzone.com

Treśd mułu 

Wprowadzenie do Rails  3

•Oprogramowanie z opiniami •Opinie

• DRY • KISS • CoC 

•Instalacja Ruby On Rails •Generowanie projektu •Tworzenie bazy danych •Uruchamianie aplikacji •Konsola 

•Struktura Projektu • App • Config • Inne • Testy 

•Wzorzec MVC •Komponenty Rails •Zadania Rake •Generatory 

• Standardowe • Własne 

•Pluginy• Tworzenie. • Generowanie 

•Bezpieczeństwo 

Page 4: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 4/40copyright BNS MEDIAwww.devcastzone.com

Podstawowe Informacje 

Wprowadzenie do Rails  4

• Framework Ruby on Rails jest zestawem bibliotek opartym o język Ruby. 

• Najnowszą wersją jest Rails 3.1, jednak ciągle bardzo popularna jest wersja2.3.

• Szkolenie oparte jest o wersję 3.1. 

Page 5: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 5/40copyright BNS MEDIAwww.devcastzone.com

Oprogramowanie z opiniami Ruby On Rails jest przykłaem tak zwaneg „pininate sftware”. 

Wprowadzenie do Rails  5

• RoR daje nam konkretne rozwiązania zamiast delikatnych sugestii. 

• RoR podejmuje za nas sporo decyzji:  Wybór ORM - Otrzymujemy wbudowany ORM: ActiveRecord.

Wybór biblioteki JavaScript - Otrzymujemy jQuery (dawniejprototype.js).

Instalowany jest język CoffeeScript.  Instalowana jest biblioteka SASS ułatwiająca pisanie CSS. 

• Oprogramowanie jest przeznaczone do rozwiązania konkretnych zadań. Nie

stara się robić wszystkiego. 

• Pomimo że otrzymujemy gotowy zestaw bibliotek, to możemy prawie każdą zbibliotek podmienić (np. ActiveRecord na DataMapper, ERB na haml, czyTest:Unit na Rspec).

Page 6: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 6/40copyright BNS MEDIAwww.devcastzone.com

Opinie - DRY 

Nie Pwtarzaj Się [DRY – Dn’t Repeat Yurself]. 

Wprowadzenie do Rails  6

• Powtarzający się kod jest uciążliwy i prowadzi do błędów. 

• Należy separować i wydzielać powtarzający się kod.

• W Rails realizowane jest to za pomocą: • modułów włączanych do klas (w warstwach M oraz C), 

• helperów (w warstwach V oraz C), • pluginów acts_as_* (w modelach). 

Page 7: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 7/40copyright BNS MEDIA

www.devcastzone.com

Opinie - KISS 

Nie Kmplikuj Głupcze! [KISS! – Keep It Simple Stupid!]. 

Wprowadzenie do Rails  7

• Należy tworzyć oprogramowanie tak proste jak się da (ale nie prostsze!). 

• Framework powinien dostarczać wszystkich podstawowych narzędzi dopracy.

Page 8: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 8/40copyright BNS MEDIA

www.devcastzone.com

Opinie - CoC 

Knwencja Pna Knfigurację [CC – Convention over Configuration]. 

Wprowadzenie do Rails  8

• Zamiast konfiguracji w plikach xml / yaml stosujemy konwencje.

• Podstawowe konwencje Ruby on Rails:• Modele nazywane są w liczbie pojedynczej. • Tabele w bazie danych nazywane są w liczbie mnogiej odpowiadającej

nazwie modelu.• Kontrolery nazywane są w liczbie mnogiej. • Akcje kontrolerów mapowane są na pliki widoków. 

• Modele nie definiują kolumn, w zamian metody są definiowane napodstawie struktury bazy danych.

Page 9: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 9/40copyright BNS MEDIA

www.devcastzone.com

Instalacja Ruby On Rails 

Wprowadzenie do Rails  9

$ gem install railsFetching: multi_json-1.0.3.gem (100%)Fetching: activesupport-3.1.1.gem (100%)Fetching: builder-3.0.0.gem (100%)... CIACH ...Successfully installed bundler-1.0.21Successfully installed rails-3.1.130 gems installed Installing ri documentation for multi_json-1.0.3...

.. CIACH ...Installing RDoc documentation for railties-3.1.1...Installing RDoc documentation for bundler-1.0.21...Installing RDoc documentation for rails-3.1.1...

rvm --create 1.9.2@szachy # Tylko w systemie Linux

gem install rails

• Instalacja Ruby on Rails sprowadza się do jednego polecenia. 

• Framework Ruby on Rails instaluje ponad 30 bibliotek.

Page 10: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 10/40copyright BNS MEDIA

www.devcastzone.com

Generowanie projektu 

Wprowadzenie do Rails  10

• W Ruby On Rails istotną rolę odgrywają generatory kodu.

• Generatory pozwalają na szybkie stworzenie szkieletu aplikacji. 

$ rails new szachy

Createcreate READMEcreate Rakefilecreate config.rucreate .gitignorecreate Gemfile

create appcreate app/assets/images/rails.pngcreate app/assets/javascripts/application.jscreate config... CIACH ...create config/database.ymlcreate dbcreate vendor/plugins/.gitkeep

run bundle install

Page 11: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 11/40copyright BNS MEDIA

www.devcastzone.com

Tworzenie bazy danych 

Wprowadzenie do Rails  11

• Rails po utworzeniu projektu domyślnie konfiguruje bazy danych w oparciu osilnik SQLite.

• By utworzyć bazy danych korzystamy z zadania rake. 

• Polecenie rake db:setup tworzy bazę danych dla środowiska

deweloperskiego i testowego. Ładuje schemat, oraz inicjalizuje ją danymi zpliku db/seed.rb.

• Dla świeżego projektu jest ono praktycznie identyczne z rake db:create.

rake db:setup

Page 12: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 12/40copyright BNS MEDIA

www.devcastzone.com

Uruchamianie aplikacji 

Wprowadzenie do Rails  12

• Aplikacja Ruby on Rails posiada wbudowany prosty serwer www uruchamianypoprzez:

• Serwer standardowo uruchamia się na porcie 3000. Przykład działania możnaobejrzeć otwierając przeglądarkę. http://localhost:3000/

• Zobaczymy stronę informacyjną zawierającą: 

informację że aplikacja działa,  informacje o wersji Ruby oraz Ruby on Rails, informacje o środowisku i ustawieniach aplikacji,  linki do poradników i dokumentacji (po angielsku).

rails server

Page 13: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 13/40

copyright BNS MEDIAwww.devcastzone.com

Konsola 

Wprowadzenie do Rails  13

• Ruby on Rails dostarcza swoją własną rozszerzoną wersję konsoli irb .

• Po uruchomieniu jej poleceniem:

otrzymujemy dostęp do pełnego środowiska Ruby on Rails. 

• Ruby on Rails udostępnia także skrót do konsoli bazy danych:

rails c

rails db

Page 14: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 14/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu 

Wprowadzenie do Rails  14

$ tree -d app # Główny katalog aplikacji. Zawiera kod oraz zasoby aplikacji. assets # Zasoby aplikacji (javascript, obrazki, style)controllers # Kontroleryhelpers # Moduły pomocnicze 

  mailers # Klasy pocztowe  models # Modeleviews # Widoki

layouts # w tym pliki szablonów.

config # Katalog z konfiguracją projektu, m.in. bazy danych. environments # Konfiguracja poszczególnych środowisk Rails (development, test, production) initializers # Pliki inicjalizujące - wykonywane są przy starcie aplikacji. locales # Pliki tłumaczeń - patrz I18n

db # Pliki baz danych oraz migracjidoc # Pliki dokumentacji projektu.lib # Biblioteki pomocnicze projektuassets #tasks # Definicje zadań Rake dla projektu 

log # Katalog z logami aplikacji  public # Katalog zawierający strony statyczne dostępne publicznie script # Katalog zawierający skrypty pomocnicze projektu (przestarzały) test # Katalog zawierający testy fixtures # dane testowefunctional # testy funkcjonalne (kontrolery i widoki)integration # testy integracyjne (w przypadku gdy aplikacja korzysta z zewnętrznych zasobów i api)   performance # testy wydajnościowe unit # testy jednostkowe (modeli)

tmp #vendor # Zewnętrzne wtyczki, biblioteki i zasoby 

Page 15: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 15/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu - App 

Wprowadzenie do Rails  15

Katalog app jest głównym katalogiem projektu. Wewnątrz znajdują się pliki modeli,kontrolerów i widoków oraz, od wersji 3.1, zasoby aplikacji.

• assets - zasoby aplikacji.  javascripts - Skrypty JavaScript.

stylesheets - Arkusze stylów CSS lub SASS. images - Obrazki aplikacji.

• controllers - kontrolery obsługują akcje HTTP. 

• helpers - moduły zawierające funkcje pomocnicze dla kontrolerów i widoków. 

• mailers - klasy zawierające metody dla obsługi poczty. 

• models - klasy modelujące logikę biznesową; mogą mapować tabele baz danych. 

• views - widoki są plikami szablonów (np. .erb, .haml), których zadaniem jestprzetworzenie danych przygotowanych przez kontroler na plik HTML.

Page 16: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 16/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu - Config 

Wprowadzenie do Rails  16

• environments - zawiera pliki Ruby definiujące zachowanie aplikacji w różnychśrodowiskach. Standardowo zdefiniowane są 3 środowiska: development , test orazproduction .

• initializers - pliki Ruby zawierające kod, który zostanie wykonany w momencie startuaplikacji.

• locales - pliki tłumaczeń dla aplikacji. 

• database.yml - plik YAML zawierający konfigurację bazy danych dla każdego ześrodowisk. 

• application.rb - plik główny aplikacji Rails; jest wywoływany, gdy rozpoczynane jestładowanie środowiska Rails. 

• boot.rb - wywoływany jako pierwszy z application.rb; ładuje biblioteki z pliku Gemfile. 

• routes.rb - plik definiujący mapowanie ścieżek url do kontrolerów. 

Page 17: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 17/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu - Inne 

Wprowadzenie do Rails  17

• db - katalog zawierający bazy danych użyte w projekcie. 

migrations - pliki migracji pozwalające na synchronizację struktury bazy danychpomiędzy wersjami aplikacji. 

• lib - katalog zawierający biblioteki oraz funkcje pomocnicze które nie pasujądo modelu.

tasks - Zawiera zadania programu Rake powiązane z aplikacją. 

• public - katalog zawierający publicznie dostępne strony www oraz innezasoby.

Page 18: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 18/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu - Inne 

Wprowadzenie do Rails  18

• doc - katalog z dokumentacją projektu. Może być generowana poprzez rakerdoc.

• log - katalog z logami aplikacji - osobno dla każdego środowiska. 

• public - katalog zawierający statyczne i dostępne publicznie zasoby. 

• tmp - katalog zawierający pliki tymczasowe i sesje (w trybie deweloperskim). 

• vendor - zapisane lokalnie pliki z zewnętrznych projektów. 

gems - lokalnie zapisane gemy. plugins - lokalnie zapisane pluginy. native - wersje binarne aplikacji powiązane z konkretną platformą.  assets - zasoby pochodzące z zewnętrznych projektów. 

Page 19: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 19/40

copyright BNS MEDIAwww.devcastzone.com

Struktura Projektu - Testy 

Wprowadzenie do Rails  19

• fixtures - dane dla testów; mogą być w kilku formatach (rb, yml). Ładowanesą one każdorazowo przy uruchamianiu testów. 

• functional - testy mające za zadanie sprawdzanie kontrolerów oraz widoków. 

• integration - testy integracyjne. Przeznaczone do testowania integracjiaplikacji ze środowiskiem oraz usługami i interfejsami zewnętrznymi.

• performance - testy wydajnościowe, testujące szybkość odpowiedzi

poszczególnych kontrolerów.

• unit - testy jednostkowe dla modelów, helperów oraz innych klaspomocniczych.

Page 20: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 20/40

copyright BNS MEDIAwww.devcastzone.com

Wzorzec MVC 

Wprowadzenie do Rails  20

Page 21: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 21/40

copyright BNS MEDIAwww.devcastzone.com

Wzorzec MVC 

Wprowadzenie do Rails  21

Wzorzec MVC pozwala na:

• Wyraźny podział aplikacji na warstwy. 

• Rozdzielenie logiki biznesowej aplikacji od jej prezentacji. 

• Dowolną prezentację danych - te same dane z kontrolera mogą zostaćsformatowane jako strona WWW, JSON, XML czy grafika.

• Łatwiejsze ponowne użycie kodu. 

• Łatwy podział pracy pomiędzy grafików i programistów odpowiedzialnych zastronę wizualną oraz analityków i programistów odpowiedzialnych za logikębiznesową aplikacji. 

Page 22: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 22/40

copyright BNS MEDIAwww.devcastzone.com

Wzorzec MVC 

Wprowadzenie do Rails  22

Model (M - Model)

• Odpowiedzialny za komunikację z bazą danych (niekoniecznierelacyjną). 

• Obsługę logiki biznesowej aplikacji.

• Obecnie zalecanym stylem pracy w Rails jest Gruby Model - ChudyKontroler.

• Największa porcja kodu powinna przebywać w modelach. 

Page 23: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 23/40

copyright BNS MEDIAwww.devcastzone.com

Wzorzec MVC 

Wprowadzenie do Rails  23

Kontroler (C - Controller)

Odpowiedzialny za:

• Obsługę akcji użytkownika. 

• Przekazywanie użytkownikowi danych z modelu. 

• Obsługę formatów danych. 

• Autentykację oraz Autoryzację. 

Page 24: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 24/40

copyright BNS MEDIAwww.devcastzone.com

Wzorzec MVC 

Wprowadzenie do Rails  24

Widok (V - View)

• Odpowiedzialny jest za formatowanie i serializację danych.

• Nie powinien nie zawierać logiki biznesowej.

• Wszelkie pobieranie oraz przetwarzanie danych powinno odbywać się wkontrolerze.

• Może formatować dane zarówno do plików html, jak i innych formatów. 

Page 25: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 25/40

copyright BNS MEDIAwww.devcastzone.com

Komponenty Rails 

Wprowadzenie do Rails  25

• Action Pack - jeden gem obejmujący Kontroler i Widok. 

Action Controller - bazowa klasa kontrolerów. Action Dispatch - system mapowania URL do Kontrolerów. Action View - klasa obsługująca renderowanie widoków. 

• Action Mailer - obsługa wysyłania poczty. 

• Active Model - interfejs pomiędzy ORMem(dowolnym) a ActionPackiem udostępniającywspólne metody wymagane dla modeli do współpracy z modułami pomocniczymi ActionPack.

• Active Record - klasa bazowa dla modeli udostępniająca operacje CRUD na bazie danych.

• Active Resource - klasa bazowa dla modeli opartych na zewnętrznych web-serwisach a nie

bazie danych.

• Active Support - zestaw modułów i klas pomocniczych, oraz rozszerzeń klas Rubywykorzystywanych przez pozostałe moduły Rails. 

• Railties - bazowy kod Rails, zawierający generatory oraz spoinę łączącą wszystkie pozostałemoduły frameworku. 

Page 26: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 26/40

copyright BNS MEDIAwww.devcastzone.com

Zadania Rake 

Wprowadzenie do Rails  26

• Wraz z Ruby on Rails otrzymujemy zestaw przydatnych zadań Rake.

• Pełną listę można otrzymać wywołując rake -D

• rake db - zadania związane z zarządzaniem bazą danych. 

rake db:create - tworzy bazę danych na podstawie danych z plikuconfig/database.yml.

rake db:drop - niszczy bazę danych. 

rake db:setup - tworzy bazę danych, po czym ładuje schemat bazydanych z pliku db/schema.rb oraz dane początkowe z pliku db/seeds.rb.  rake db:migrate - migruje bazę danych od najnowszej wersji.  rake db:rollback - wycofuje ostatnio przeprowadzoną migrację.  rake db:schema:dump - zrzuca schemat bazy danych do pliku.

Page 27: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 27/40

copyright BNS MEDIAwww.devcastzone.com

Zadania Rake 

Wprowadzenie do Rails  27

• rake assets:clean - czyści wszystkie wygenerowane zasoby. 

• rake test - uruchamia wszystkie testy aplikacji.

rake test:recent - uruchamia ostatnio zmienione testy.

• rake routes - wypisuje wszystkie ścieżki aplikacji, co pozwala nasprawdzenie jaki kontroler obsługuje dany adres. 

• rake middleware - wyświetla listę wszystkich bibliotek pośredniczących Rack

pomiędzy serwerem WWW a aplikacją Rails. 

• rake secret - generuje losowy ciąg znaków - sekret do użycia jako klucz dosesji przechowywanych w ciasteczkach.

• rake doc:app - generuje dokumentację aplikacji. 

Page 28: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 28/40

copyright BNS MEDIAwww.devcastzone.com

Generatory 

Wprowadzenie do Rails  28

• Generatory uruchamiamy poprzez wywołanie polecenia• 

• Listę generatorów otrzymamy po wykonaniu polecenia 

• Pomoc dla każdego z generatorów otrzymamy poleceniem

• 

• Szczególnym generatorem jest generator generatorów, pozwalający nam nastworzenie swoich własnych generatorów. 

rails g NazwaGeneratora parametry:generatora

rails g

rails g generator -h

Page 29: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 29/40

copyright BNS MEDIAwww.devcastzone.com

Standardowe Generatory 

Wprowadzenie do Rails  29

• Podstawowe generatory rails pozwalają na generowanie: 

• modeli - pozwala na generowanie modeli oraz migracji.

• kontrolerów - generuje kontrolery oraz widoki.

• migracji - migracje zmieniają schemat bazy danych.

• moduły pomocnicze - generuje helpery. Jako parametr przyjmuje nazwę modułu

• testy  – testy wydajnościowe i integracyjne możemy wygenerować wywołując 

rails g performance_test Nazwarails g integration_test Nazwa

rails g controller Positions

rails g migration AddZToPoszycja z:integer

rails g controller Positions show index

rails g model Pozycja x:integer y:integer

Page 30: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 30/40

copyright BNS MEDIAwww.devcastzone.com

Standardowe Generatory 

Wprowadzenie do Rails  30

Pozostałe generatory związane z Ruby: 

• mailer - generuje moduł formatowania poczty. 

• observer - klasa implementująca wzorzec obserwatora na modelu. 

• plugin - generuje szkielet pluginu.

• resource - generuje model dla zewnętrznego zasobu. 

• scaffold - generuje cały szkielet modelu MVC - od modelu przez kontroler,

helpery, oraz widoki.

• scaffold_controller - podobnie jak scaffold, z tym że omija tworzeniemodelu. Nazwa istniejącego modelu misi zostać podana jako parametr. 

• session_migration - generuje migrację umieszczającą specjalną tabelę doprzetrzymywania sesji w bazie danych.

Page 31: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 31/40

copyright BNS MEDIAwww.devcastzone.com

Własne Generatry 

Wprowadzenie do Rails  31

• Ruby on Rails pozwala na tworzenie własnych generatorów. 

• Generatory automatyzują proces tworzenia zasobów. Redukując czaspotrzebny na wykonanie powtarzających się czynności. 

• Generatory mogą korzystać z metod biblioteki thor. 

• Biblioteka thor pozwala na bezpieczne używanie generatorów (m.in. chroniprzed przypadkowym nadpisaniem plików).

• Używając generatorów możemy tworzyć nie tylko pliki i kod, ale także grafikę,czy inne zasoby binarne.

rails g generator logo

Page 32: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 32/40

copyright BNS MEDIAwww.devcastzone.com

Pluginy 

Wprowadzenie do Rails  32

• Pluginy są sposobem na ponowne użycie kodu. 

• Pluginy mogą zostać dodane do aplikacji Ruby on Rails na dwa sposoby: • Jako biblioteka gem• Jako zainstalowany plugin

• Obecnie zalecanym sposobem jest dodawanie pluginów jako gemy wewnątrzpliku Gemfile.

• Instalacja pluginu może nastąpić zarówno z pliku, serwera www, jak i

repozytorium git.

rails plugin instal https://github.com/swanandp/acts_as_list.git

Page 33: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 33/40

copyright BNS MEDIAwww.devcastzone.com

Pluginy - Tworzenie 

Wprowadzenie do Rails  33

• Pluginy możemy tworzyć przy pomocy generatorów. 

• Pluginy mogą dodawać do aplikacji funkcjonalności, jak i narzędzia

deweloperskie, takie jak:• generatory,• zachowania Modeli (acts_as_*),• filtry Kontrolerów,• szablony widoków,

• Pluginy mogą zawierać własne zestawy testów. 

• Pluginy powinny trzymać klasy wewnątrz przestrzeni nazw (modułu) i unikaćrozszerzania klas bez potrzeby.

rails g plugin pretty_form 

Page 34: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 34/40

copyright BNS MEDIAwww.devcastzone.com

Pluginy - Generowanie 

Ruby on Rails - MVC  34

$ rails g plugin amicreate vendor/plugins/amicreate vendor/plugins/ami/MIT-LICENSEcreate vendor/plugins/ami/READMEcreate vendor/plugins/ami/Rakefilecreate vendor/plugins/ami/init.rbcreate vendor/plugins/ami/install.rbcreate vendor/plugins/ami/uninstall.rbcreate vendor/plugins/ami/libcreate vendor/plugins/ami/lib/ami.rbinvoke test_unitinside vendor/plugins/amicreate testcreate test/ami_test.rbcreate test/test_helper.rb

Page 35: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 35/40

copyright BNS MEDIAwww.devcastzone.com

Bezpieczeostw 

Wprowadzenie do Rails  35

• Z obsługą formularzy i formatowania danych HTML związane jest sporozagrożeń.

• Framework Ruby on Rails posiada domyślnie sporo zabezpieczeń. 

• Widoki domyślnie są chronione przed atakami Cross Site Scripting. 

• Formularze są automatycznie zabezpieczane przed atakami Cross Site

Request Forgery.

• Generując zapytania SQL używając biblioteki AREL jesteśmy chronieni przedatakami SQL Injection.

Page 36: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 36/40

copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails

 – prgram pełneg szklenia 

1. Wprwadzenie d Języka Ruby o Instalacja Języka Ruby - Linux

o Instalacja Języka Ruby - Windows

o Uruchamianie Skryptów

o Tryb interaktywny

o Prawda, Fałsz i Nic 

o Literały Numeryczne 

o Łaocuchy 

o Tablice

o Tablice Asocjacyjne

o Symbole

o Symble a Łaocuchy 

o Zakresy

o Wyrażenia regularne

o Instrukcje Warunkowe

o Instrukcja Wyboru

o Operatory Logiczne

o Pętle 

o Wyjątki 

Tworzenie aplikacji z użyciem biblioteki Hibernate 36

o Zmienne

o Zmienne Lokalne

o Zmienne Obiektowe

o Zmienne Klasowe

o Zmienne Globalne

o Stałe 

o Metody

o Nazwy Metod

o Metody - Wywływanie 

o Bloki

o Obiekty

o Klasy

o Klasy - Dziedziczenie

o Klasy - Dziedziczenieo Mduły

o Mduły - Przestrzeo nazw

o Require i Load

o Rubygems

o Bundler

Page 37: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 37/40

copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails

 – prgram pełneg szklenia 

2. Framework Ruby on Railso Oprogramowanie z opiniami

o Opinie• DRY

• KISS

• CoC

o Instalacja Ruby On Rails

o Generowanie projektuo Tworzenie bazy danych

o Uruchamianie aplikacji

o Konsola

o Struktura Projektu• App

• Config

• Inne

• Testy

o Wzorzec MVC

o Komponenty Railso Zadania Rake

o Generatory

• Standardowe

• Własne 

o Pluginy

• Tworzenie.

• Generowanie

o Bezpieczeostw

Tworzenie aplikacji z użyciem biblioteki Hibernate 37

Page 38: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 38/40

copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails

 – prgram pełneg szklenia 

3. Wzorzec MVCo Modele

o Konfiguracja Bazy Danych

o Przykładwa Konfiguracja

o Dstęp Do Bazy Danych

o Tworzenie modeli

o Migracje

o Wzorzec projektowy ActiveRecord

o Walidacje

o Wywłanie Zwrotne (Callbacks)

o Pwiązania(Associations)

o Arel• Podstawy

• Wyszukiwanie

•  Łączenie tabel. Relacje 

o Zakresy - Scope

o Deklaratywne rozszerzaniemżliwści modeli

Tworzenie aplikacji z użyciem biblioteki Hibernate 38

o Kontrolery

o Generowanie

o Kontrolery w architekturze REST

o  Ruting i Obsługa Akcji HTTP 

o Renderowanie HTML

o Renderowanie XML, YAML, JSON

o  Kntrla dstępu 

o Widoki

o Szablony• aplikacji

• akcji

• częściwe

o Formularzeo Helpery DOM

o ActionMailer - bsługa pczty 

Page 39: Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails

5/14/2018 Tworzenie Aplikacji Internetowych z Wykorzystaniem Ruby on Rails - slidepdf.com

http://slidepdf.com/reader/full/tworzenie-aplikacji-internetowych-z-wykorzystaniem-ruby-on-rails 39/40

copyright BNS MEDIAwww.devcastzone.com

Tworzenie aplikacji internetowych z wykorzystaniem Ruby on Rails

 – prgram pełneg szklenia 

4. Framework Ruby on Railso Rack.

o JQuery

o Shouldao RSpec

o Cucumber

o CoffeeScript

o Less

o Sass

o Alternatywne szablonyHTML

• Haml

• Markaby

• Liquid

Tworzenie aplikacji z użyciem biblioteki Hibernate 39