szkolenie wiosna 2010

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!

blog comments powered by Disqus