Omówienie frameworku Ruby on Rails : Wprowadzenie
Transcript of Omówienie frameworku Ruby on Rails : Wprowadzenie
Damian Danak
Czym jest Ruby on Rails?
Ruby on Rails - napisany w języku Ruby framework open source do szybkiego tworzenia aplikacji internetowych w oparciu o architekturę MVC
David Heinemeier Hansson – twórca Rails
Damian Danak
Ruby on RailsKto korzysta z Rails
www.twitter.com Damian Danak
Ruby on RailsKto korzysta z Rails
http://basecamphq.com Damian Danak
Ruby on RailsKto korzysta z Rails
http://www.shopify.com Damian Danak
Ruby on RailsKto korzysta z Rails
http://github.com
Ruby on RailsKto korzysta z Rails
http://www.blip.pl Damian Danak
Ruby on RailsGłówne koncepcje Rails
szybkość, łatwość i przyjemność pisania kodu reguła DRY (ang. Don't Repeat Yourself),
polegająca na unikaniu powtarzania tej samej w funkcjonalności różnych miejscach pracy
reguła Convention Over Configuration, polegająca na sprowadzeniu do minimum niezbędnej konfiguracji przez zastępowanie jej gotowymi domyślnymi, zalecanymi wzorcami
możliwość użycia dodatkowych modułów, które w sposób błyskawiczny rozszerzają aplikacje o rozmaite funkcjonalności jak logowanie, skalowanie obrazków, czy tagowanie
Damian Danak
Ruby on Rails
Na framework Rails składają się głównie elementy:
ActiveRecord – mechanizm ORM (Object-Relational mapping) dla Ruby, odpowiada za tworzenie modeli w architekturze MVC
ActionPack – biblioteka zawierająca klasy ActionController i ActionView, które odpowiadają za tworzone kontrolery i widoki
Architektura aplicacji Rails
Damian Danak
Ruby on RailsArchitektura aplicacji Rails
Damian Danak
Ruby on RailsArchitektura aplikacji Rails
Kontroler
Widok ModelBaza Danych
1
2
3456
Konwencja a konfiguracja w Rails
Konwencja a konfiguracja w Rails
Programowanie z nastawieniem na testy
W Ruby on Rails kładzie się silny nacisk na programowanie sterowane testami, czyli tzw. TDD (ang. Test-Driven Development). Istotą testów jest zautomatyzowany proces weryfikacji kodu. Poza tym powinny one być również pisane tak, aby definiować oczekiwania w stosunku do aplikacji. Pomaga to sterować tworzeniem nowego programu, zmuszając do myślenia o niewielkich, dających się rozdzielić fragmentach kodu przez co powstający zapis jest łatwiej analizować.
Damian Danak
REST
REST (ang. Representational State Transfer) to koncepcja, która powstała w 2000 roku jako rozprawa doktorska Roya Fieldinga, współtwórcy protokołu HTTP i serwera Apache. Idea podejścia zorientowanego na zasoby wywodzi się z faktu, że aplikacje internetowe opierają się na interakcjach użytkowników z różnymi zasobami, a nie wywoływaniem zdalnych usług. Wszystkie aplikacje REST zapewniają ten sam zestaw instrukcji umożliwiających działanie na zasobach i opierają się na akcjach CRUD (ang. Create, Read, Update, Delete).
Reguła DRY
Reguła DRY (ang. Don’t Repeat Yourself – nie powtarzaj się)propaguje sposób tworzenia aplikacji, w którym powtarzający się kod programu separuje się, umieszczając go w jednym miejscu aplikacji, a dostęp do niego uzyskuje się poprzez tworzenie odwołań do niego. Takie podejście jest wygodne, ponieważ ogranicza ilość błędów, które mogą powstać podczas refaktoryzacji kodu, a także przyśpiesza pracę podczas jego konserwacji, ponieważ ewentualne zmiany dokonywane są w jednym miejscu aplikacji. Ponadto znacząco zwiększa to czytelność kodu. Najbardziej rozpowszechnione mechanizmy pomagające realizować tą regułę to: funkcje, moduły, makra czy biblioteki. Dodatkowo w Rails realizowane jest to za pomocą tzw. helpers (funkcje pomocnicze) oraz partials (fragmenty).
Czym jest Ruby?
Ruby - to interpretowany po stronie serwera, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto
Język RubyJęzyk Ruby na tle innych języków programowania
Dzięki Ruby on Rails nastąpił duży wzrost zainteresowania językiem Ruby
Wg indeksu TIOBE (www.tiobe.com) język Ruby jest obecnie 10 najpopularniejszym językiem programowania.
Damian Danak
Język RubyJęzyk Ruby na tle innych języków programowania
Język programowania
Pozycja Wrzesień 2010
Pozycja Wrzesień 2005
Pozycja Wrzesień 1995
Pozycja Wrzesień 1985
Java 1 1 - -
C 2 2 1 1
C++ 3 3 2 10
PHP 4 5 - -
(Visual) Basic 5 6 3 4
C# 6 7 - -
Python 7 8 21 -
Objective-C 8 44 - -
Perl 9 4 8 -
Ruby 10 25 - -
Lisp 13 14 7 2
Ada 19 17 6 3
Damian Danak
Język RubyCechy języka Ruby
Ruby posiada:
prostą składnię automatyczne odśmiecanie pamięci (ang. garbage collector) wyrażenia regularne wbudowane w składnię "Duck typing" - rozpoznawanie typów na podstawie ich
zachowania, a nie deklaracji moduły - rodzaj wielodziedziczenia pozwalający włączyć gotową
implementację zbioru metod do danej klasy możliwość zmiany praktycznie wszystkiego - dodanie dodatkowych
metod do klasy Array, czy zmiana sposobu drukowania liczb całkowitych są niezmiernie proste.
Damian Danak
Język RubyCechy języka Ruby cd.
Ruby posiada:
liczby całkowite o dowolnych rozmiarach dodawanie metod do instancji klasy - możliwa jest
zmiana lub dodanie metody do instancji danej klasy bloki i lambdy (closures) - wygodne przekazywanie
funkcji jako parametrów iteratory przeciążanie operatorów (ang. operator overloading) obsługa wyjątków (ang. exception handling)
Damian Danak
Wydajność języka Ruby
Test aplikacji Acunote Czas żadania [s] Poprawa
Wersja Interpretera 1.8.6 JRuby 1.2.0 1.9.1 JRuby 1.9.1
Operacje data/czas 1.23 0.58 0.53 2.1x 2.3x
Intensywny rendering 0.61 0.44 0.30 1.4x 2.0x
Intensywne obliczenia 2.57 1.79 1.33 1.4x 1.9x
Operacje na bazie danych 5.58 4.63 3.29 1.2x 1.7x
Damian Danak
Wydajność języka Ruby
Damian Danak
Dostępne narzędzia
Edytory IDE
Damian Danak
Podsumowanie Ruby jako nowy język programowania czerpie z innych
języków to co najlepsze i łączy te wybrane cechy w jedną całość
Język Ruby daje programiście niespotykaną dotąd swobodę jeśli chodzi tworzenie oraz modyfikację kodu
W języku Ruby powstało wiele nowoczesnych aplikacji, służących zarówno do celów naukowych (symulacje w ośrodku NASA), jak również aplikacji internetowych o zasięgu światowym (twitter.com)
Ruby on Rails łączy wiele koncepcji, które współgrają ze sobą, tworząc nowoczesne środowisko do tworzenia aplikacji zorientowanych na potrzeby współczesnego Internetu
Poznanie reguł związanych z programowaniem w Rails pozwala na wydajne tworzenie spójnych i nowoczesnych aplikacji, łatwych w rozbudowie.
Środowisko Rails ułatwia pracę zespołową nad projektem
Damian Danak
Koniec
Damian Danak