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. Tutaj jest o tyle zabawnie, że w chwili pisania tej strony stabilna i bieżąca jest 2.3, aktualnie w wersji beta jest 3.0, a większość materiałów na sieci dotyczy wersji z zakresu 2.0 – 2.3.
Będziemy pracowali na Rails 2.3.5, jako że jest to najnowsza stabilna wersja i właśnie taka jest uwzględniona w najnowszym BitNami RubyStack (zalecane środowisko dla windowsowców, których — nie mam złudzeń — będzie na szkoleniu najwięcej, przynajmniej na początku ;)).
A tak naprawdę nie ma to wielkiego znaczenia, ponieważ na szkoleniu nie będziemy korzystali z ficzerów, które pojawiły się po wersji 2.1 (a z wersji 2.1 będą tylko named_scope).
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.8.7 i Railsy v.2.3.5 (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ść – ale nie jest ona konieczna (Railsy mają wbudowaną SQLite, która w środowisku deweloperskim wystarcza).
4. Instalacja Ruby i Rails na Twoim Ulubionym Systemie Operacyjnym™
- Windows: zaczynamy od windowsów, bo ich użytkownicy mają najprościej dzięki projektowi Bitnami RubyStack. Wchodzą na bitnami.org/stack/rubystack, ściągają i instalują, po czym mają działające pełne środowisko Ruby+Rails+MySQL,
- Linux: zależnie od dystrybucji. 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 - Mac OS X: dla systemu w wersji 10.4 klikamy tutaj, posiadacze 10.5 (Leopard) klikają tutaj, a posiadacze Snow Leoparda nie mam pojęcia — muszę dopytać kolegów makowców z pracy.
Prosty test czy Ruby On Rails działa jak trzeba: otwieramy konsolę, wchodzimy do dowolnego katalogu i odpalamy
rails 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
ruby script/server
(użytkowicy Windows używają backslasha zamiast slasha oczywiście)
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 parę dni 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!