szkolenie wiosna 2012

Ruby On Rails — podstawy

Trochę wstępnej paplaniny

1. tzw. Target

“Grupą docelową” szkolenia, jak zresztą podpowiadał plakat, są programiści zaznajomieni z tworzeniem dynamicznych serwisów WWW w jakimś języku/technologii server side: PHP, Java EE (JSP, JSF, Servlets itp. itd.), Perl, Python – cokolwiek. Język nie robi wielkiej różnicy, chodzi o ogólną (acz specjalistyczną!) znajomość problematyki tworzenia takich aplikacji, wraz zagadnieniami takimi jak: integracja z bazami danych, sesje, ciasteczka, bezpieczeństwo, protokół http (GET, POST), plus oczywiście przynajmniej podstawowa znajomość html i css. Bardzo fajna będzie znajomość Javascript, z naciskiem na AJAX i jego “cienie i blaski”.

Warto znać niepodstawowe zagadnienia z programowania “ogólnego”. Cała obiektówka to absolutna podstawa: Ruby jest językiem w pełni obiektowym, bardziej nawet niż Java, więc wszystkie najważniejsze koncepcje OOP gdzieś-tam na pewno się pojawią. Fajnie znać wzorce projektowe, wystarczy te najważniejsze 18 z książki Gangu Czworga (spokojnie, będziemy mówili o raptem kilku). Przyda się znajomość testów jednostkowych i narzędzi kontroli wersji (patrz też niżej, dla ambitnych).

Będziemy trochę (sporo) robić w konsoli (linii komend), więc należy przynajmniej wiedzieć jak się chodzi po katalogach i uruchamia programy ;)

Nieznajomość ww. nie dyskwalifikuje i jak najbardziej zapraszam do udziału w szkoleniu. Po prostu zajęcia będą prowadzone z założeniem znajomości przez słuchaczy powyższych koncepcji przynajmniej z grubsza. Najwyżej osobie zupełnie zielonej będzie trudniej zrozumieć i całość wymagała więcej pracy. Ale Ruby oraz Railsy są na tyle przyjazne, że pozwolą gładko i powoli “wejść” we wszystkie powyższe tematy. Tym bardziej, że można i należy zadawać pytania, więc jak tylko czas i okoliczności pozwolą, będzie można wiele rzeczy wyjaśnić od zera.

Laptopy nie są warunkiem koniecznym uczestnictwa, chodziło mi o nacisk na przekazywanie praktycznej wiedzy, jej od-ręki implementację i zobaczenie na własne oczy wyników. Nic tak dobrze nie uczy jak popsucie czegoś samemu ;) Naładujcie laptopy przed przyjściem – na miejscu co prawda będą listwy, ale na pewno nie uda się wycisnąć 40 gniazdek (raczej okolice 10-15).

2. Numerologia

Wersja Ruby On Rails. Na szczęście trochę się uspokoiło względem poprzednich szkoleń. Będziemy pracować na najnowszej stabilnej wersji, czyli 3.2, ale szkolenie będzie “kompatybilne wstecz” z wersjami 3.1 i 3.0.

Kwestie techniczne

3. Zanim zaczniemy…

…warto przygotować sobie parę rzeczy na komputerach, żeby początek był łatwy tak jak być powinien, a nie trudny jak z reguły jest.

Twój laptop powinien mieć zainstalowane i działające:

  • Twój ulubiony system operacyjny: Windows może być, Linux jak najbardziej (na nim będę prezentacje robił), Mac OSX używa chociażby autor Railsów,
  • Twój ulubiony edytor tekstu do programowania z kolorowaniem składni Ruby; może być IDE jak Eclipse/RadRails czy NetBeans, ale na własną odpowiedzialność!
  • Twoja ulubiona przeglądarka WWW
  • oraz, oczywiście, Ruby v. 1.9.2 (lub 1.9.3) i Rails 3.2.3 (już wkrótce Twoje ulubione!)

Przyda się Twoja ulubiona baza danych: MySQL i PostgreSQL zalecane, hardkorowcy mogą używać np. Oracle, ale na własną odpowiedzialność. Natomiast baza nie jest obowiązkowa, Railsy mają wbudowaną SQLite, która w środowisku deweloperskim wystarcza.

4. Instalacja Ruby i Rails na Twoim Ulubionym Systemie Operacyjnym™

Niestety mnogość systemów operacyjnych i wersji powoduje że nie sposób w kilku zdaniach podsumować najlepszego sposobu na Railsy na danym systemie. Proponuję więc wrzucić w gugla “installing ruby on rails [SYSTEM] [WERSJA]” i próbować do skutku.

Poniżej kilka dobrych wskazówek na start.

  • Windows. Najlepiej Bitnami RubyStack lub RailsInstaller . Warto też rzucić okiem na stronie Bitnami na obrazy Linuksów (do wirtualizacji) z pełnym środowiskiem, to chyba najlepsze z rozwiązań.
  • Linux. Zależnie od dystrybucji (patrz wyżej). Generalnie zaleca się zainstalowanie z pakietów/portów/czegokolwiek Ruby, a następnie RubyGems ze źródeł i potem wykonanie komendy
    gem install rails
    Jeśli chodzi o wersję Ruby, to najlepiej 1.9.3, ale 1.9.2 i 1.8.7 też będą w porządku. UNIKAJCIE 1.9.1, mocno niestabilna wersja!
    Ubuntu/Debian: apt-get install ruby18 irb18 (i co tam jeszcze może być, ale nie rubygems!) i starczy.
  • Mac OS X. dla systemu w wersji 10.4 klikamy tutaj, posiadacze Leoparda i Snow Leoparda klikają tutaj .

Prosty test czy Ruby On Rails działa jak trzeba: otwieramy konsolę, wchodzimy do dowolnego katalogu i odpalamy

rails new nazwaprojektu

Jeśli zostaniemy zalani serią komunikatów o utworzeniu plików i katalogów, a katalog nazwaprojektu będzie miał w środku inne katalogi i pliki – brawo, Ruby i Railsy śmigają.

Warto jeszcze przetestować serwer i własne środowisko – wchodzimy do nazwaprojektu i w tym katalogu uruchamiamy

rails server

Jeśli dostaniemy kilka linijek tekstu, zablokowaną konsolę (trwający proces), a wpisanie w przeglądarce adresu http://localhost:3000 pokaże nam ładną przykładową aplikację – gratulacje, można zacząć przygodę z Ruby On Rails!

5. Dla ambitnych

Będę się starał podczas szkolenia, obok samego Rubiego i Railsów, przemycić trochę innych narzędzi, uważanych za standard dla każdego szanującego się programisty Ruby. A konkretnie

  • kontrola wersji z użyciem Git
  • automated testing

Oczekujcie używania tych narzędzi podczas prezentacji oraz (zwłaszcza!) do prac domowych — zarówno jeśli chodzi o ich podanie w formie nieprzechodzących unit-testów, jak i ich sprawdzanie poprzez przeglądanie kodu na Githubie.

Znaczy byłoby bardzo fajnie, gdyby każdy uczestnik szkolenia przyszedł z pewną wiedzą o ww. narzędziach (a najlepiej z choć minimalnym doświadczeniem w ich stosowaniu).

Na koniec

Ponieważ wszystko działa jak trzeba i mamy jeszcze chwilę do rozpoczęcia szkolenia, pobawcie się Railsami. Albo poduczcie się “czystego” Ruby’ego. Na sieci są już dziesiątki (jeśli nie setki) tutoriali, na pewno każdy znajdzie napisany w odpowiedni sposób.

Do zobaczenia!

blog comments powered by Disqus