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!