Omówienie frameworku Ruby on Rails : Wprowadzenie
Transkrypt
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 Rails Kto korzysta z Rails www.twitter.com Damian Danak Ruby on Rails Kto korzysta z Rails http://basecamphq.com Damian Danak Ruby on Rails Kto korzysta z Rails http://www.shopify.com Damian Danak Ruby on Rails Kto korzysta z Rails http://github.com Ruby on Rails Kto korzysta z Rails http://www.blip.pl Damian Danak Ruby on Rails Głó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 Architektura aplicacji Rails Na framework Rails składają się głównie elementy: ActiveRecord – mechanizm ORM (ObjectRelational 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 Damian Danak Ruby on Rails Architektura aplicacji Rails Damian Danak Ruby on Rails Architektura aplikacji Rails 1 6 Kontroler 5 Widok 4 2 Model 3 Baza Danych 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 Ruby Ję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 Ruby Język Ruby na tle innych języków programowania Język programowania Pozycja Wrzesień 2010 Pozycja Wrzesień 2005 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 Pozycja Pozycja Wrzesień 1995 Wrzesień 1985 Damian Danak Język Ruby Cechy 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 Ruby Cechy 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