Omówienie frameworku Ruby on Rails : Wprowadzenie

26
Damian Danak

Transcript of Omówienie frameworku Ruby on Rails : Wprowadzenie

Page 1: Omówienie frameworku Ruby on Rails : Wprowadzenie

Damian Danak

Page 2: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 3: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsKto korzysta z Rails

www.twitter.com Damian Danak

Page 4: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsKto korzysta z Rails

http://basecamphq.com Damian Danak

Page 5: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsKto korzysta z Rails

http://www.shopify.com Damian Danak

Page 6: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsKto korzysta z Rails

http://github.com

Page 7: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsKto korzysta z Rails

http://www.blip.pl Damian Danak

Page 8: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 9: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 10: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsArchitektura aplicacji Rails

Damian Danak

Page 11: Omówienie frameworku Ruby on Rails : Wprowadzenie

Ruby on RailsArchitektura aplikacji Rails

Kontroler

Widok ModelBaza Danych

1

2

3456

Page 12: Omówienie frameworku Ruby on Rails : Wprowadzenie

Konwencja a konfiguracja w Rails

Page 13: Omówienie frameworku Ruby on Rails : Wprowadzenie

Konwencja a konfiguracja w Rails

Page 14: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 15: Omówienie frameworku Ruby on Rails : Wprowadzenie

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).

Page 16: Omówienie frameworku Ruby on Rails : Wprowadzenie

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).

Page 17: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 18: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 19: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 20: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 21: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 22: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 23: Omówienie frameworku Ruby on Rails : Wprowadzenie

Wydajność języka Ruby

Damian Danak

Page 24: Omówienie frameworku Ruby on Rails : Wprowadzenie

Dostępne narzędzia

Edytory IDE

Damian Danak

Page 25: Omówienie frameworku Ruby on Rails : Wprowadzenie

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

Page 26: Omówienie frameworku Ruby on Rails : Wprowadzenie

Koniec

Damian Danak