Kategorie: Ruby on Rails, Go, Perl, Ruby, Erlang, inne języki programowania
Język programowania Ruby został stworzony przez Yukihiro Matsumoto (Matz) i opublikowany po raz pierwszy w 1995 roku. Jest bardzo nowoczesnym, interpretowanym językiem programowania dostępnym na wiele platform. Jest w pełni obiektowym językiem, który zaczerpnął wiele swoich właściwości z języka Smalltalk. Ruby on Rails jest zaawansowanym środowiskiem (frameworkiem), który umożliwia szybkie i bezstresowe tworzenie efektownych, skomplikowanych i zaawansowanych serwisów / aplikacji internetowych (stron WWW).
Podczas kursu przedstawione zostaną zaawansowane techniki programistyczne języka Ruby, takie jak metaprogramowanie (technika pozwalające na automatyczne generowanie kodu aplikacji w czasie rzeczywistym), metody podczepiane (pozwalające aplikacji ingerować w bieżące wykonywanie kodu interpretera Ruby) i inne rozwiązania pozwalające na tworzenie bardzo elastycznego i eleganckiego kodu. Pokrótce omówione zostaną dobre praktyki programowania obiektowego w języku Ruby. Zaprezentowane zostaną przykłady wykorzystania tych technik na przykładzie samego środowiska Ruby on Rails.
Uczestnicy poznają wiele zaawansowanych mechanizmów programowania z wykorzystaniem środowiska Ruby on Rails. Największy nacisk położony będzie na tajniki technik TDD i tworzenia testów aplikacji, sposób optymalizacji działania aplikacji poprzez zaawansowane wykorzystanie cache na różnych poziomach przetwarzania danych oraz na tworzenie interaktywnych aplikacji i wymianę informacji w czasie rzeczywistym. Oprócz tego szczegółowo przedstawione zostaną metody przenoszenia zadań do wykonania w tle, omówiony zostanie również wprowadzony w Rails 3.1 asset pipeline – czyli nowy sposób zarządzania stylami i skryptami Javascript w obrębie aplikacji.
Czas trwania
3 dni
Program
- Zaawansowane programowanie w Ruby
- Programowanie obiektowe
- wykorzystanie modułów (modules) i mixinów (mixins)
- zaawansowane wykorzystywanie domknięć (closure) – blocki, procedury i lambdy
- Metaprogramowanie w Ruby
- tworzenie metod przy użyciu define_method
- interpretowanie kodu poprzez eval, instance_eval i class_eval
- Metody podczepiane (hook methods)
- śledzenie wywołań (method_added, inherited, included, extended i inne)
- wykorzystanie method_missing i const_missing
- Programowanie obiektowe
- Zaawansowane techniki w Ruby on Rails
- dobre praktyki przy projektowaniu logiki modeli
- asocjacje polimorficzne, has_and_belongs_to_many i inne
- standardowa serializacja danych oraz hstore (PostgreSQL)
- asset pipeline i skomplikowane widoki
- zadania w tle
- kwalifikowanie zadań do wykonania w tle
- kiedy uruchamiać pełne środowisko aplikacji do obsługi zadań, alternatywne metody
- przegląd dostępnych bibliotek i technik (resque, beanstalkd, inne)
- najlepsze praktyki przy tworzeniu REST API
- Profilowanie aplikacji, poszukiwanie wąskich gardeł
- MiniProfiler
- Bullet
- NewRelic
- tworzenie bibliotek (Gemów) i silników (Engines)
- Efektywne testowanie kodu i praktyki TDD
- Najlepsze praktyki
- Refactorowanie kodu
- Guard, RSpec, MiniTest, Cucumber, FactoryGirl
- Wymiana informacji przez aplikację w czasie rzeczywistym
- przegląd dostępnych technik: long pulling, websockety, streaming
- ActionController::Live (Rails 4)
- Serwer komunikatów Faye
- Cache w aplikacjach Rails – zaawansowane techniki
- cache stron (page caching)
- cache akcji i fragmentów
- cacheowanie danych z dowolnego elementu aplikacji
- dezaktualizowanie cache (Sweepers, Observers)
- automatyczna dezaktualizacja na podstawie sprytnych kluczy
Training also available in English - for more information see here.
Przeznaczenie i wymagania
Program szkolenia zakłada znajomość programowania w języku Ruby oraz co najmniej podstawową znajomość środowiska Ruby on Rails. Uczestnik kursu powinien potrafić samodzielnie stworzyć prostą aplikację w środowisku Ruby on Rails. Konieczna jest również dobra znajomość technologi powiązanych z tworzeniem stron WWW oraz co najmniej podstawowa znajomość CSS, języka Javascript oraz biblioteki JQuery.
Dla osób bez żadnego doświadczenia ze środowiskiem Rails bardziej odpowiednie będzie szkolenie Aplikacje internetowe w Ruby on Rails, które od podstaw wprowadzi uczestnika w świat frameworka. Poniżej znajduje się podsumowanie wymagań/zaleceń co do wstępnej wiedzy i umiejętności uczestników.
- solidna znajomość podstaw programowania w języku Ruby
- ogólna znajomość programowania w środowisku Ruby on Rails (zalecana conajmniej wersja 3.x)
- swobodna praca w środowisku terminalowym (powłoki) systemu Linux/BSD/OSX
- rozumienie protokołu HTTP oraz powiązanych zagadnień
- znajomość SQL i podstawowych zagadnień bazy danych MySQL lub Postgres
- dobra znajomość HTML i CSS
- podstawowa znajomość języka Javascript oraz biblioteki JQuery
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ę:
- tworzenie skomplikowanych i zaawansowanych aplikacji WWW
- zaawansowane techniki programistyczne w języku Ruby
- tworzenia zaawansowanej logiki aplikacji przez relacje ActiveRecord
- zaawansowane techniki optymalizacji wydajności aplikacji
- umiejętność wyszukiwania problemów i wąskich gardeł w działaniu aplikacji
- znajomość technik TDD i umiejętność tworzenia efektywnych testów dla aplikacji
- umiejętność tworzenia własnych biblitek (Gemów)
- umiejętność łączenia różnych aplikacji poprzez wykorzystanie silników (Engines)
- znajomość mechanizmów przenoszenia zadań do wykonania w tle
- umiejętność efektywnego organizowania stylów i kodu Javascript w obrębie aplikacji Rails