Kategorie: Ruby on Rails, Go, Perl, Ruby, Erlang, inne języki programowania
Ruby on Rails jest zaawansowanym środowiskiem (frameworkiem) pozwalającym na szybkie i bezstresowe tworzenie efektownych i zaawansowanych serwisów / aplikacji internetowych (stron WWW). Jak głosi samo hasło przewodnie środowiska, Ruby on Rails zapewnia równowagę pomiędzy produktywnością, a czerpaniem przyjemności z programowania i pozwala na tworzenie pięknego kodu preferując konwencję nad konfiguracją.
Rails pozwala na tworzenie aplikacji internetowych opartych o bazy danych bazując na wzorcu MVC (Model-View-Controller). Daje możliwość bardzo efektownego wykorzystania Ajax’a dostępnego w widokach (View), sprawne generowanie zapytań i odpowiedzi w kontrolerach (Controller) oraz budowanie zaawansowanej logiki biznesowej w modelach (Model).
Podstawowe trzy zasady, na których zachowanie kładzie nacisk środowisko to:
- DRY (don’t repeat yourself – nie powatarzaj się) – kod aplikacji powinien być tak tworzony, aby można było go wykorzystać w wielu miejscach. Dzięki temu można uniknąc pisania tej samej logiki w różnych miejscach programu.
- Konwencja ponad konfigurację – autorzy środowiska wykorzystują wiele praktycznych konwencji i założeń na temat aplikacji, dzięki czemu programista może uniknąc zbędnej, żmudnej (i powtarzalnej) konfiguracji swojej aplikacji i środowiska. Oczywiście większość konwencji można nadpisać własną konfiguracją, jeżeli zajdzie taka konieczność.
- Szybkie wprowadzanie zmian – zintegrowany serwer WWW oraz interpretowany język pozwalają na bardzo szybkie obserwowanie zmian wprowadzonych w kodzie (brak kompilacji i konieczności restartów), co minimalizuje czas potrzebny na rozwijanie aplikacji. Duży nacisk na testowanie kodu i wykorzystanie technik TDD pozwalają na szybkie aktualizowanie aplikacji bez ryzyka wprowadzenia błędów i regresji.
Czas trwania
3 dni
Program
Podczas trzech dni szkolenia uczestnicy stworzą od podstaw aplikację do prowadzenia Bloga. Serwis będzie pozwalał na publikowanie artykułów przez różnych autorów, dodawanie komentarzy do artykułów i ich moderowanie.
- Wprowadzenie, podstawowa architektura, modele
- wprowadzenie i historia Rails (bardzo pobieżnie)
- architektura Model-View-Controller
- elementy projektu w środowisku Rails
- struktura katalogów projektu
- konwencje w nazewnictwie
- pojęcie zasobu oraz konwencje REST
- ActiveRecord i ORM (Object-Relational Mapping)
- migracje
- zależoności między modelami (has_one, belongs_to, itp)
- walidacja modeli
- metody zwrotne (callbacks) w modelach
- wykorzystanie konsoli podczas programowania (omówienie rozszerzeń typh Hirb)
- Warstwa widoku i kontrolera, szablony
- ActionController – kontrolery
- ciastka i zarządzanie sesją
- filtry w kontrolerach
- ścieżki (routes)
- ActionView – widoki
- szablony (layouts) i partiale (partials) oraz metody pomocnicze (helpers)
- języki szablonów (ERB, Haml, Slim)
- krótkie wprowadzenie do Twitter Bootstrap i szablonów styli
- ajax (JQuery oraz szablony RJS)
- generatory i rake
- różne środowiska aplikacji (production/development/test)
- Zaawansowane technologie, najpopularniejsze biblioteki
- zarządzanie CSS i Javascript w aplikacji (asset pipeline)
- pobieżnie o Less, Sass i CoffeeScript
- bezpieczeństwo aplikacji WWW
- najlepsze praktyki Rails
- polecane biblioteki (Gemy) do powtarzających się zadań:
- autentykacja (Devise)
- autoryzacja (Cancan, Rolify)
- zdania w tle (Sidekiq, Resque, ActiveJob)
- obrazy i inne załączniki (Paperclip, CarrierWave)
- raportowanie wyjątków (Errbit)
- testowanie (Guard, RSpec, Minitest)
- użyteczne Gemy ułatwiające rozwój aplikacji
- BetterErrors
- Pry
- Debugger
- Faker
- pamięć podręczna aplikacji Rails (caching)
Training also available in English - for more information see here.
Przeznaczenie i wymagania
Program szkolenia zakłada dobrą znajomość podstawowych technik programowania ogólnie (zmienne, pętle, warunki, funkcje, obiekty). Znajomość dowolnego języka programowania znacząco ułatwi przyswojenie materiału przedstawianego na kursie. Wcześniejsze doświadczenia z językiem Ruby nie są konieczne, ponieważ sam jeżyk zostanie stopniowo omówiony podczas kursu.
Zlecane jest również ogólnie dobre rozeznanie w koncepcjach związanych z tworzeniem stron WWW. Poniżej znajduje się podsumowanie zaleceń co do wstępnej wiedzy i umiejętności uczestników. Zwracamy uwagę, że znajomość wszystkich wymienionych elementów nie jest konieczna, ale im większe rozeznanie w okolicznych technologiach, tym łatwiejsze będzie zrozumienie programu kursu.
- znajomość podstawowych koncepcji i konstrukcji w programowaniu
- podstawowa znajomość ogólnych zagadnień związanych z tworzeniem aplikacji WWW
- bazowa znajomość HTML i CSS
- ogólne rozumienie protokołu HTTP oraz zagadnień takich jak przekierowania, SSL, różnic między GET, a POST
- zalecana jest podstawowa znajomość języka Javascript (i podstaw JQuery)
- zalecana jest podstawowa znajomość SQL i bazy danych MySQL lub Postgres
Certyfikaty
Uczestnicy otrzymują certyfikaty ukończenia kursu sygnowane przez ALX. Każdy uczestnik po zakończeniu szkolenia będzie posiadał następujące umiejętności / wiedzę:
- znajomość języka Ruby
- umiejętność zbudowania od podstaw aplikacji w Ruby on Rails
- zarządzanie bazą danych aplikacji RoR poprzez migracje
- umiejętność tworzenia zaawansowanej logiki aplikacji przez relacje ActiveRecord
- podstawy budowania interfejsu użytkownika w oparciu o Ajax
- wyszukiwanie i wykorzystywanie zewnętrznych bibliotek (Gemów) w Aplikacjach Rails
- podstawowe rozumienie idei technik TDD
- umiejętność konfiguracji ścieżek (routes) w aplikacjach Rails
- zrozumienie podstawowych dobrych praktyk związanych z tworzeniem stron WWW w Rails