Zaawansowane Ruby i Ruby on Rails
LICZBA DNI: 2 (16h)
KOD KURSU: RAILS/ADV
O szkoleniu
DLA KOGO?
Kurs skierowany do osób mających już doświadczenie w Ruby i Ruby on Rails chcących poznać bardziej zaawansowane techniki umożliwiające im tworzenie wydajniejszych i bardziej rozbudowanych aplikacji
WYMAGANIA
Wymagana jest znajomość języka Ruby i frameworka Ruby on Rails, a także co najmniej podstawowa znajomość bazy danych PostgreSQL
ZALETY
Kursant po ukończeniu szkolenia znacząco pogłębi swoją wiedzę o języku Ruby i frameworku Ruby on Rails. Będzie też przygotowany na wyzwania napotykane przy tworzeniu dużych i wydajnych aplikacji
Cele szkolenia
Zaznajomienie słuchaczy z ciekawszymi aspektami tworzenia rozbudowanych aplikacji Ruby on Rails
Nauka tworzenia własnych gemów i DSLi (języki dziedzinowe)
Wykorzystanie bardziej zaawansowanych cech bazy PostgreSQL
Poznanie podejścia Rails do mikroserwisów
Nabycie umiejętności identyfikowania przyczyny najczęstszych problemów wydajnościowych
Poznanie różnych sposobów na przenoszenie zadań w tło, włącznie z elementami infrastruktury Amazon (SQS, SNS)
Nauka integrowania Ruby z innymi językami (C, Java)
Program
Wprowadzenie
Metaprogramowanie
- Method missing
- Aliasowanie metod
- Dynamiczne generowanie kodu
Kod w bazie danych
- Środki ostrożności
- JSON trzymany w bazie
DSL
- Przykłady
- Pisanie własnych Rake’ów
- Pisanie własnego DSLa w Ruby
Bundler
- Tworzenie własnych gemów
- Gemy jako engine
- Testowanie enginów
Tworzenie mikroserwisów przy użyciu Sinatra i Ruby on Rails
- Koncepcje tworzenia mikroserwisów
- Podejście REST
- Mikroserwisy w Sinatra
- Mikroserwis z gemu (engine)
- Tworzenie aplikacji udostępniającej czyste API
- Montowanie aplikacji (Rails/Sinatra) wewnątrz innej aplikacji
Zaawansowane wykorzystanie bazy danych PostgreSQL
- Instrukcje EXPLAIN i EXPLAIN ANALYZE
- Geolokalizacja i wyznaczanie odległości
- Struktury danych PostgreSQL w Rails
- Indeksy GIN i GIST (w tym indeksacja struktur danych)
- Indeksy trigram do przeszukiwania tekstu (na przykładzie livesearch)
Problemy wydajnościowe Ruby on Rails
- Identyfikacja wąskiego gardła
- Cache
- Wykorzystanie Redisa
- Zaawansowane profilowanie aplikacji
Przenoszenie elementów w tło
- Wielowątkowość
- Sidekiq/Resque
- SQS i SNS
- Workery w innych językach
Ruby i Java
- JRuby
- Wywoływanie kodu Javy z wewnątrz Ruby
- Ruby Java Bridge
CRuby
- Wstawki w języku C
Dbanie o jakość kodu
- RuboCop
Podsumowanie
