Ruby on rails wprowadzenie teoretyczne. Łukasz Szyndzielorz
1. {
Ruby on Rails -
wprowadzenie
KNSI, 27.02.2014r.
Łukasz Szyndzielorz l.szyndzielorz@gmail.com
2. Ruby on Rails (w skrócie Rails lub RoR) – jest to
framework (szkielte aplikacji, zestaw gotowych
bibliotek i narzędzi) napisany w języku Ruby,
przeznaczony do szybkiego tworzenia aplikacji
internetowych.
Ruby on Rails?
3. Daje on programistom możliwość tworzenia stron i
aplikacji działających po stronie serwera (ang. Server-side),
komunikujących się z bazą danych oraz renderujących
tzw. widoki (ang. Views), co pozwala na oddzielenie logiki
biznesowej aplikacji od warstwy prezentacji.
Ruby on Rails?
4. Środowisko Rails zostało napisane w 2004 roku
przez Davida Heinemeiera Hanssona,
amerykańskiego programistę duńskiego
pochodzenia, w firmie 37signals podczas pracy
nad oprogramowaniem do zarządzania
projektami Basecamp.
Ruby on Rails. Historia.
5. Wzorzec architektoniczy MVC (ang. Model-View-
Controller). Model-Widok-Kontroler – jest to wzorzec
projektowy, który „dzieli aplikację na trzy warstwy, co
ułatwia jej tworzenie i późniejsze rozwijanie.”
Model – w przypadku Rails, odpowiada on za
komunikację z bazą danych ,
Kontroler – na podstawie danych wejściowych od
użytkownika, wchodzi
w interakcje z modelem, z którego pobiera dane, które ma
zwrócić do odpowiedniego widoku,
Widok – jest odpowiedzialny za wyświetlenie
użytkownikowi danych przekazanych mu przez kontroler.
W środowisku Rails domyślnie używany jest do tego
system szablonów zwany Embedded Ruby (w skrócie ERB).
Pozwala on na osadzenie kodu języka Ruby w różnego
rodzaju dokumentach, np. html.
Główne założenia Ruby
on Rails
7. Stosowanie konwencji (nazewniczych) zamiast konfiguracji
(ang. Convention over configuration) – dzięki
zaimplementowaniu tej strategii w środowisku Rails,
programiści nie muszą pisać kodu konfiguracyjnego w
plikach XML, tak jak ma to miejsce w innych środowiskach
np. Spring Framework w Javie . Framework Rails generuje
podstawowy, skonfigurowany już szkielet aplikacji, który
wymusza na programiście stosowanie odpowiednich
konwencji nazewniczych, co znacznie skraca proces
tworzenia oprogramowania.
Główne założenia Ruby
on Rails
8. Rusztowania (ang. Scaffolding) – słownik języka
polskiego, definiuje rusztowanie, jako
„prowizoryczną konstrukcję z drewna lub z rur
stalowych, ułatwiająca wznoszenie lub remont
budowli”. Rusztowanie w informatyce ma
podobne znaczenie. Programiści wykorzystują
tymczasowy kod rusztowania, które tworzy
wstępne ramy, struktury i podstawowe
mechanizmy aplikacji
do czasu aż nie będzie gotowy właściwy kod
programu.
Główne założenia Ruby
on Rails
9. Scaffolding jest jedną
z najpopularniejszych metod prototypowania aplikacji
internetowych, jest to technika metaprogramowania, która
generuje kod programu, na podstawie specyfikacji napisanej przez
programistę. Pozwala bardzo szybko stworzyć działającą aplikację
internetową, komunikującą się z bazą danych, zapewniającą
podstawową funkcjonalność, taką jak: zapis, odczyt, edycja,
kasowanie (ang. Create, Read, Update, Delete. w skrócie CRUD).
Dzięki temu, programista może sprawdzić jak główne
komponenty aplikacji będą współpracować ze sobą.
Główne założenia Ruby
on Rails
10. Reguła DRY (ang. Don’t repeat yourself) – „Nie powtarzaj się!” – jest
to technika programistyczna, która ma na celu zminimalizowanie
liczby powtarzającego się kodu. Aby kod był suchy (DRY -
zawierający jak najmniejszą liczbę powtórzeń), należy
wyekstrahować powtarzający się kod do odpowiednich metod lub
modułów.
Główne założenia Ruby
on Rails
11.
12. Świat:
Twitter
BaseCamp
GitHub
SlideShare
YellowPages
Shopify
Groupon
Spree
Polskie aplikacje:
inFakt
Versum
KanbanTool
Kwejk <Oryginał PHP, przepisany na ROR. Firma Cube Investments>
Adtaily
Gametrade
Blip <kiedy funkcjonował>
…i wiele więcej
Rails. Kto używa?
13. Ruby (ang. rubin) jest to dynamiczny,
obiektowy, skryptowy język programowania
ogólnego przeznaczenia, który prócz
paradygmatu obiektowego wspiera również
paradygmaty programowania funkcyjnego i
proceduralnego.
Ruby. W nim napisany
RoR.
14. Ruby został stworzony przez japońskiego
programistę Yukihiro Matsumoto, pseudonim
„Matz” w latach 1993-1995. Matsumoto „połączył
części jego ulubionych języków (Perla, Smalltalka, Eiffel,
Ady i Lispa) by uformować nowy język, który
zbalansował programowanie funkcjonalne wraz z
programowanie imperatywnym”.
Przy opracowywaniu swojego języka, Matz, skupił
się na szybkości pisania kodu
i czytelności składni. Chciał stworzyć język
„potężniejszy niż Perl i bardziej zorientowany obiektowo
niż Python” i, jak twierdzi, „Ruby został
zaprojektowany, aby dawać szczęście programistom”.
Ruby. W nim napisany
RoR.
15. Mimo że pierwsza wersja interpretera (v. 0.95)
została opublikowana w roku 1995, nie zyskał
on dużej popularności wśród programistów z
tzw. „głównego nurtu”. Był używany przede
wszystkim przez niewielką liczbę
administratorów do pisania skryptów
shellowych systemów operacyjnych z rodziny
UNIX.
Dopiero pojawienie się frameworka Ruby on
Rails w 2004 roku sprawiło, że język Ruby
lawinowo zaczął zdobywać nowych
entuzjastów.
Ruby. W nim napisany
RoR.
16. TIOBE.com – jest serwis zajmujący się śledzeniem
popularności języków programowania, na podstawie
liczby programistów, ilości organizowanych kursów,
szkoleń i konferencji, liczbie forów i list mailingowych
poświęconych danemu językowi.
Z opublikowanego w kwietniu 2013 roku rankingu
stworzonego przez TIOBE.com, wynika, że Ruby
uplasowany został na dziewiątym miejscu w dziesiątce
najpopularniejszych języków programowania, a
jednocześnie awansował aż o cztery miejsca względem
ubiegłorocznego raportu. Sytuację tę pokazuje
ilustracja zaczerpnięta ze strony TIOBE.com.
Ruby. W nim napisany
RoR.
18. Ruby. Główne cechy.
5.class #zwróci => Fixnum. To znaczy, że obiekt 5 jest klasy
Fixnum.0.33.class # zwróci => Float
"Hello, world!".class # zwróci => String
nil.class # zwróci => NilClass
Obiektowość - w Rubym wszystko jest
obiektem, począwszy od liczb, przez łańcuchy
znaków, na wartościach boolowskich, takich jak
true i false kończąc.
Nawet wartość nil, odpowiednik null w
językach Java czy C# jest obiektem klasy
NilClass. Na przykład:
19. Ruby. Główne cechy.
Elegancka i prosta składnia – Ruby
jest językiem wysokiego poziomu
W wyniku działania powyższego
kodu otrzymamy:
3.times do
print "Hello, world!„
end
„Hello, World! Hello, world! Hello world!”
20. Ruby. Główne cechy.
Dynamiczne typowanie (tzw.
Duck typing) - programista nie
musi deklarować typu zmiennej,
tak jak ma to miejsce w językach
kompilowanych, jak Java czy C#.
21. Ruby. Główne cechy.
Dynamiczne typowanie (tzw.
Duck typing) - programista nie
musi deklarować typu zmiennej,
tak jak ma to miejsce w językach
kompilowanych, jak Java czy C#.
22. Ruby. Główne cechy.
Wbudowany system zarządzania pakietami –
RubyGems – umożliwia dystrybucję programów i
bibliotek napisanych w języku Ruby, za pomocą
paczek,
tzw. Gems (ang. perełki). Perełki tworzone i
rozwijane są przez społeczność programistów Ruby i
Ruby on Rails. Najczęściej udostępniane są na
wolnych licencjach, przez co każdy może z nich
korzystać i dowolnie je modyfikować. Dzięki temu,
wtyczki te są na bieżąco poprawiane, aktualizowane
i rozwijane,
Open Source - Ruby jest projektem Open Source, jest
całkowicie darmowy
i rozpowszechniany na zasadach licencji GNU GPL.