Czym jest Ruby on Rails?



Podobne dokumenty
Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Kurs języka Ruby. Ruby on Rails ActionPack

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Ruby i Ruby on Rails. Mateusz Drożdżyński

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Programowanie Komponentowe WebAPI

Wykład nr 1 Język Ruby i framework Rails

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

EXSO-CORE - specyfikacja

Style programowania - krótki przeglad

Programista do działu testów PDT/1401/T/TBG

Tworzenie oprogramowania

SZKOLENIE TWORZENIE SYSTEMÓW

Programowanie MorphX Ax

Program szkolenia: Symfony, nowoczesny framework PHP

Modelowanie i Programowanie Obiektowe

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Podstawy Programowania Obiektowego

Programowanie w Ruby

Zagadnienia programowania obiektowego

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Programowanie obiektowe - 1.

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe 2 - opis przedmiotu

Programowanie w Ruby

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Programowanie Zespołowe

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Web frameworks do budowy aplikacji zgodnych z J2EE

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Podstawy programowania. Wprowadzenie

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Programowanie współbieżne i rozproszone

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Dokumentacja projektu QUAIKE Architektura oprogramowania

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

ActiveXperts SMS Messaging Server

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Słowa kluczowe jak góry lodowe

Programowanie obiektowe

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Architektura mikroserwisów na platformie Spring IO

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

System zarządzający grami programistycznymi Meridius

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Zdalna edycja i przeglądanie dokumentacji medycznej.

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Techniki efektywnego testowania kodu dla programistów Java (Spock

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Scala - programowanie obiektowo-funkcyjne

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Praca Dyplomowa Magisterska

Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Tomasz Grześ. Systemy zarządzania treścią

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Zaawansowane programowanie w języku C++

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Wstęp do Informatyki dla bioinformatyków

Czym jest technologia Bluetooth?

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Programowanie. Dodatek - uzupełnienie wiadomości. mgr inż. Krzysztof Szwarc. Sosnowiec,

Szkolenie wycofane z oferty

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Specyfikacja implementacyjna aplikacji serwerowej

Zakres egzaminu dyplomowego (magisterskiego) na kierunku INFORMATYKA

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Wykład 3 Składnia języka C# (cz. 2)

BIBLIOTEKA CYFROWA JAKO KONTENER TREŚCI DLA PORTALI INTERNETOWYCH. DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA.

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Redis, skrypty w języku Lua

Paradygmaty programowania

Transkrypt:

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

Ruby on Rails Kto korzysta z Rails www.twitter.com

Ruby on Rails Kto korzysta z Rails http://basecamphq.com

Ruby on Rails Kto korzysta z Rails http://www.shopify.com

Ruby on Rails Kto korzysta z Rails http://github.com

Ruby on Rails Kto korzysta z Rails http://www.blip.pl

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

Ruby on Rails Architektura aplicacji 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

Ruby on Rails Architektura aplicacji Rails

Ruby on Rails Architektura aplikacji Rails 1 Kontroler 6 Widok 5 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ć.

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.

Język Ruby Ję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

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.

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)

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

Wydajność języka Ruby

Dostępne narzędzia Edytory IDE

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

Koniec