, , ,

Należę do tej grupy ludzi, która wiecznie uczy się programować. Niby znam terminologię i gdy się do mnie mówi to wiem o czym, niby próbowałem już wszystkiego się nauczyć i zawsze na jakimś etapie nauki po prostu dawałem sobie spokój głównie dlatego, że dochodziłem do wniosku,iż mój umysł nie jest w stanie czegoś przyswoić 😀 aż w końcu trafiłem na Ruby- ludzki język programowania

Przeszłość programistyczna

Miałem krótki romans z Turbo Pascalem (bo musiałem), wcześniej z Delphi, Visual basiciem, „C”, „C++”„C#” i wieloma innymi wierzcie mi, że książek na moich półkach od „Helionów” po „Grębosze” walało się od groma. Tutoriale do PHP oraz cakePHP też miałem przyjemność przeglądać. Mam nawet znajomych,którzy jeszcze w czystym PHP kodzą bo uważają, że to lepsze niż framoworki. Ja zaś zirytowany wiecznymi niepowodzeniami zarzuciłem temat jakiegokolwiek programowania i zacząłem bawić się w obsługę gotowych rozwiązań typu wordpress, joomla, php-fusion itp. Ale pewnego dnia natrafiłem na coś innego… coś co do mnie (wiecznego laika) przemówiło w sposób jakby „ludzki” możecie się śmiać ale Rails to jest to czego przez tyle lat szukałem!

Ruby on Rails vs PHP

Zainteresowanym spróbuje „po ludzku” opisać co mnie w Raisach urzekło i jak zacząć z nimi zabawę. W związku z tym, że nie znam terminologii będę wiele rzeczy opisywał tak jak „ja to widzę”.

Z definicji Ruby on Rails jest sieciowym frameworkiem napisanym w języku Ruby.

Czym jest Ruby? 

Wikipedia dostarcza wielu ciekawych (i dla programistów) pewnie użytecznych informacji jak to, że Ruby posiada:

  • automatyczne odśmiecanie pamięci
  • iteratory
  • przeciążanie operatorów (ang. operator overloading)
  • normalne i zaawansowane właściwości zorientowania obiektowego (klasa, metoda)
  • obsługa wyjątków (ang. exception handling)
  • wyrażenia regularne wbudowane w składnię
  • liczby całkowite o dowolnych rozmiarach
… i wiele więcej z których znaczna część nic mi nie mówi dlatego nie będę ich przepisywał. Ja wolę mówić o Ruby w sposób następujący:
Ruby jest językiem programowania pochodzącym z Japonii, który ma zrewolucjonizować sieć. Siłą Rubyego ma byc równowaga pomiędzy prostotą kodu a możliwościami jakie ten prosty kod ze sobą niesie. O czym faktycznie można się przekonać już pisząc pierwsze rzeczy z tutków.  

Definicję już znamy teraz pora wrócić do Frameworka, który jest oparty o architekturę MVC (Model-View-Controller) i chwali się tym na każdym kroku :).

Ale po co powstał Rails skoro jest już ( co najmniej ) 10 innych frameworków Rubyego? Ja nie wiem ale może ktoś z czytelników będzie miał na to jakąś fajną teorię. Wiem natomiast, że to właśnie Railsy spowodowały, iż Ruby stał się tym czym jest dzisiaj czyli popularnym, rozwijanym i supportowanym przez olbrzymią społeczność użytecznym językiem programowania dla webmajstrów.

Pierwszy raz zobaczyłem Ruby on Rails na przykładach na serwisie Youtube. Po obadaniu paru filmów, poczułem głód wiedzy i zacząłem szukać czegoś większego. Przeglądając zasoby sieci trafiłem między innymi na:

  • tryruby.org – wprowadzenie do Rubyego z takim fajnym interpreterem z poziomu przeglądarki 😀
  • railsforzombies.org dużo marketingu ale z drugiej strony fajne wprowadzenie już do samych Railsów
  • Gdy już przejdziemy całe „Zombies” można pokusić się o rozpoczęcie jedynego właściwego tutoriala

Się zaczyna!

Można albo przeprowadzić instalację Ruby i Railsów według wskazówek z tutka z pt. 3 albo (jeśli używa się Windows) można przejść na http://railsinstaller.org/ pobrać instalkę i zainstalować cały pakiet kilkoma kliknięciami 🙂

Musicie coś wiedzieć z hostowaniem Railsów nie jest tak łatwo jak z PHP na przykład. Otóż Railsy potrzebują specjalnego hostingu (czytając book z pt.3 dowiecie się o tym jak używać GITA oraz jak wrzucić swój projekcik na darmowy serwer Heroku) Jednak wszystko można i trzeba obsłużyć również na localhoscie. Żeby jednak cokolwiek poza czystymi szkieletami generowanymi z poziomu railsowego terminala zrobić trzeba używać jakiegoś edytora. Ja osobiście preferuję nieudziwnione i lekkie środowiska dla tego korzystam z Notepad ++ (do pobrania w Google:P) cokolwiek robię. Do zabawy z Raisami (o których póki co sam niewiele wiem) dodatkowo zainstalowałem plugin „Explorer” oraz podmieniłem plik odpowiedzialny za kolorowanie składni. Aby była taka stricte railsowa jak na screenie poniżej. (bez tego składnia Railsowa nie będzie kolorowana).

hello world

Oczywiście można użyć np. APTANA RAILS ale ja się czuję w takich wielkich IDE jakoś nieswojo poza tym zbyt mało wiem żeby sobie ułatwiać środowiskami. Wychodzę z założenia, że najpierw trzeba się nauczyć żeby potem móc cudować z IDE.
Skoro już mamy gotowe środowisko i zainstalowanego ROR można zacząć działać.
Prosta komenda rails New nerdation
Wygeneruje nam nowy projekt a w nim masę plików w efekcie zaś taką stronę domyślną jak na screenie poniżej.

Teraz to już z górki można według tutoriala zbudować stronę na wzór Tweetera z logowaniem walidacją itp. 😀 Mnie podoba się to, że język Ruby oferuje takie rzeczy jak „język po ludzku” np. napisanie czegoś takiego jak poniżej:

class Micropost < ActiveRecord::Base
belongs_to :user
validates :content, :lenght=>{ :maximum => 140 }
end

zaowocuje… no własnie każdy jest w stanie zrozumieć czym zaowocuje linia kodu:

validates :content, :length=>{ :maximum => 140 } w modelu micropost 🙂

Dla większości  takie proste rzeczy są bardzo zrozumiałe a rzeczy trudniejsze z tego co mi się wydaje są zbiorem tych łatwych i są z nich zbudowane więc… można działać.

Podsumowując zdaję sobie sprawę, że w całej notce zawarłem tylko podstawy podstaw ale myślę, że każdy kto lubi nowości i ciekawostki powinien zajrzeć do Railsów 🙂

PS: Istnieje też przewodnik dla początkujących w wersji polskiej, który porusza w prawdzie starszą wersję Railsów ale można sobie „początek” wyczytać w rodzimym języku jak ktoś woli. Niestety po polsku jest tylko Agile które podobno nie jest szczególnie dobre.