Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Kod: RoR-Rails
Kategoria: Ruby on Rails
Forma: 30% wykłady / 70% warsztaty
Czas trwania: 4 dni
Grupa docelowa: developerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Podczas tego szkolenia uczestnicy dowiedzą się, w jaki sposób szybko tworzyć wysokiej jakości aplikacje webowe w oparciu o technologię Ruby on Rails.

Poznają oni kluczowe możliwości najnowszej wersji Rails - 3.2, jak również elementy języka Ruby w wersji 1.9 i nauczą się, jak wykorzystać tę wiedzę do tworzenia aplikacji, krok po kroku - od idei do wdrożenia.

W oparciu o tworzoną od podstaw aplikację uczestnicy poznają najważniejsze cechy tej technologii.

Szkolenie ma formę wykładów zakończonych warsztatami, główny nacisk położony jest na ćwiczenia praktyczne.

W procesie tworzenia projektu przedstawione zostaną elementy zwinnych (agile) metod tworzenia oprogramowania oraz praktyk takich jak refaktoring, DRY i innych.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Nauka poprzez ćwiczenia praktyczne
  • Poznanie pełnego procesu wytwarzania oprogramowania w oparciu o metodyki zwinne (TDD, BDD, automatyzacja)
  • Zawiera elementy Domain Driven Design
  • Poznanie narzędzi i bibliotek, które są obecnie na preferowane przez programistów Ruby on Rails
  • Szybkie tworzenie w pełni testowalnych aplikacji internetowych

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Wstęp
    1. Środowisko Developerskie
      1. Instalacja - Windows
      2. Instalacja - Linux
      3. RubyMine IDE
  2. Aplikacje webowe
    1. Lightweight vs enterprise
  3. Zwinne projektowanie
    1. Podejście Agile
    2. User Story
    3. Interakcja z klientem
    4. Automatyzacja testów
      1. Jednostkowe
      2. end2end
    5. Zwinne modelowanie
      1. Elementy Domain Driven Design
        1. Bulding Blocks
  4. Język Ruby
    1. Filozofia
    2. Różnice pomiędzy dynamicznie a statycznie typowanymi językami programowania
    3. Podstawowe konstrukcje języka (Metody, Klasy, Moduły, Bloki, Sterowanie, Wyrażenia regularne, Yield)
    4. Podstawowe typy (Teksty, Liczby, Tablice, Mapy)
    5. Programowanie zorientowane obiektowo
    6. Metaprogramowanie
    7. Podejście funkcyjne
    8. Idiomy języka Ruby
    9. Wzorce
      1. Wzorce zawarte w składni
      2. Best practices
  5. Framework Rails
    1. Podstawy
      1. Architektura aplikacji
      2. Architektura Model View Controler
      3. RESTful
      4. Rails Models and Action Pack
    2. Pierwsza aplikacja
      1. Komendy linii poleceń
      2. Generatory (scaffolding)
      3. Zasada "konwencja ponad konfiguracją"
    3. Model
      1. Rails ActiveRecord
      2. Zarzadzanie schematem bazy danych przy pomocy migracji
      3. ORM - walidacja, callbacki
      4. Zasięgi (scope)
      5. Techniki optymalizacyjne
      6. Zasady designu obiektowego
        1. Enkapsulacja
        2. DRY
        3. Low Coupling
        4. High Cohesion
    4. Widoki
      1. Rails ActionView
      2. Layouty, partiale, helpery
      3. Formularze
      4. HTML (silnik szablonów: ERB/ HAML - do wyboru)
      5. CSS (Sass)
      6. Javascript
        1. JQuery
      7. Coffeescript
        1. Ajax
        2. Wydajność
      8. Best Practices
    5. Kontrolery
      1. Rails ActionController
      2. Wzorce Decorator/Presenter i Facade
      3. Zasada 'skinny controller, fat model'
      4. Obsługa różnych formatów (xml, json, csv, pdf)
    6. Routing
      1. RESTful urls
      2. Tworzenie zdalnego API
    7. Rozsyłanie maili
      1. Rails ActionMailer
    8. Zadania w tle
      1. delayed_job
    9. Autentykacja i bezpieczeństwo
      1. Bezpieczne mechanizmy Rails
      2. Zarządzanie użytkownikami przy pomocy devise
      3. Kontrolowanie dostępu
    10. Narzędzia
      1. assets pipeline - kompilator statycznych zasobów
      2. Bundler - zarządzanie zależnościami
      3. Rake - automatyzacja procesu budowania
  6. Testowanie
    1. Testowanie jednostkowe
      1. Zalety testowania w izolacji
      2. Podstawowe pojęcia i techniki
      3. Test-Driven Development
        1. Narzędzia wspomagające TDD: guard, spork
      4. Testowanie JavaScript
    2. RSpec
      1. Testowanie modeli
      2. Testowanie kontrolerów
      3. Testowanie widoków
      4. Testowanie route'ów
      5. Przygotowanie stanu (fixture, factory)
      6. Mockowanie
    3. Testowanie integracyjne/akceptacyjne
      1. Metodyka Behavior-Driven Development
        1. Technika modelowania wymagań poprzez User Story
      2. Scenariusze akceptacyjne
      3. Współpraca z Ekspertem Domenowym
      4. Cucumber - narzędzie wspierające BDD
        1. Produktywne techniki tworzenia scenariuszy
      5. Capybara - testowanie przez warstwę prezentacji
        1. Pułapki i najlepsze praktyki tworzenia testowalnych widoków
  7. Deployment i automatyzacja
    1. Deployment w chmurze
      1. Heroku
    2. Własny server
      1. capistrano
    3. Zaawansowana automatyzacja
      1. Developerskie środowisko proukcyjne
      2. VirtualBox, Vagrant, Chef
    4. Continuous integration
  8. Wskazówki praktyczne
    1. Zasady S.O.L.I.D. w praktyce
    2. Pułapki wydajności
    3. Bezpieczeństwo


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail/Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń