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



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

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

Programowanie w Ruby

Czym jest Ruby on Rails?

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

Programowanie w Ruby

Programowanie w Ruby

Kurs języka Ruby. Ruby on Rails ActionPack

Aplikacje webowe z wykorzystaniem Node.js oraz Express

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

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Testowanie aplikacji. Kurs języka Ruby

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

Program szkolenia: Symfony, nowoczesny framework PHP

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

Programowanie w Ruby

Program szkolenia: REST i Microservices w PHP

Laboratorium nr 3 Podstawy Ruby on Rails

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

Programowanie Komponentowe WebAPI

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Specyfikacja implementacyjna aplikacji serwerowej

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

Programowanie w Ruby

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

OBC01/TOPMOB Projektowanie w języku Objective-C

Wybrane działy Informatyki Stosowanej

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

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

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

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

PHP: bazy danych, SQL, AJAX i JSON

Budowanie interfejsów do baz danych

SZKOLENIE TWORZENIE SYSTEMÓW

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Szkolenie wycofane z oferty

Grails. v 1.1 Web Framework

Aplikacje Internetowe

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Oracle11g: Wprowadzenie do SQL

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Programowanie obiektowe

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Web Tools Platform. Adam Kruszewski

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

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

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Automatyzacja Testowania w WEB 2.0

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

Backend Administratora

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Architektura mikroserwisów na platformie Spring IO

Ruby on Rails. Wprowadzenie. Wydanie II

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

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

Szczegółowy opis zamówienia:

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

Kurs programowania aplikacji bazodanowych

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

Oracle Application Express -

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

Funkcje backendu konfiguratora. Warszawa,

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Spis treści. Przedmowa

Spring Web MVC, Spring DI

Rok akademicki: 2030/2031 Kod: ZIE s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Spis treści. Przedmowa Zaczynamy wprowadzenie do Rails Podstawy Active Record Relacje w Active Record...

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

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

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Bazy danych i strony WWW

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Modele danych walidacja widoki zorientowane na model

System generacji raportów

Zaawansowany kurs języka Python

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Forum Client - Spring in Swing

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Transkrypt:

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

Co to Ruby? Dynamiczny, obiektowy język programowania, stworzony przez Yukihiro Matsumoto Pojawił się w tym samym roku co Java (1995) Przejrzysta, prosta i intuicyjna składnia Wywodzi się z Lispa, Perla, Smalltalka Ma wiele cech wspólnych z Pythonem Metaprogramming

Prosta składnia Elementy składni zaczerpnięte z języków takich jak Perl, Lisp, itp. Kod zrozumiały dla każdego Kod w wielu przypadkach jest odzwierciedleniem zdań odpowiadających danej operacji Keep It Simple, Stupid!

Pełna obiektowość Obiektami w Ruby są: liczby napisy klasy (!) metody (!)... a nawet sam dokument!

Hello World!

Klasy i metody

Blok, Proc i Lambda Wszystkie implementują przekazywanie bloków kodu i ich wykonywanie Jakie są podobieństwa? Jakie są różnice? Znane z innych języków, np.: Lambda z Lispa czy metody anionimowe z Javy

Instrukcje warunkowe

Wyrażenia regularne

Otwarte klasy, czyli jak dynamicznie ułatwiać sobie życie

Moduły, dziedziczenie i Mixins Moduł jako Namespace Dziedziczenie klas Moduł jako Mixin, czyli sposób na dziedziczenie po wielu klasach w Ruby

Ruby on Rails Framework oparty o wzorzec Model-View- Controller, umożliwiający szybkie tworzenie aplikacji internetowych Łatwy i zrozumiały kod dzięki przejrzystej składni języka Ruby Łatwe programowanie API dzięki simply_restful Liczne rozszerzenia ułatwiające i przyspieszające implementację szablonowych rozwiązań

Części składowe Active Record Action Pack: Action Mailer Action Controller Action View Action Web Service

Schemat działania

Active Record, czyli Model w stylu RoR Automatyczne mapowanie tabel baz danych w obiekty Ułatwia zarówno proste, jak i bardziej skomplikowane operacje na bazie danych Obsługa wielu typów baz danych, w tym MySQL, PostgreSQL, SQLite czy bazy Oracle. Każdy model to klasa, można więc dopisywać do niego dowolne metody

Action Controller Odpowiedzialny za obsługę zapytań użytkownika/innej aplikacji Metody to akcje kontrolera Parametry żądania są przekazywane poprzez metodę params[] Zmienne instancji są przekazywane do widoku ApplicationController, czyli jak definiować wpólne metody dla wszystkich kontrolerów Filtry

Action View Łatwe tworzenie widoków, dzięki wbudowaniu w szablony języka Ruby Możliwość tworzenia kilku widoków dla jednej akcji: osobny widok renderuje XHTML... wszystko w jednej akcji! inny XML dla zewnętrznej aplikacji a trzeci feed RSS dla użytkowników

Scaffolding, czyli generatory dla leniwych Generowanie: migracji modeli kontrolerów widoków

Tworzymy pierwszą aplikację Prywatny system zakładek a la Del.icio.us CRUD Tagi Eksport do XML Wyszukiwarka

Polecenie `rails`, czyli jak zacząć

Konfiguracja bazy danych

Konsola, czyli bez czego nie można się objeśc Pozwala na wykonywanie dowolnego kodu Ruby Ładuje całe środowisko naszej aplikacji (modele, itd.) Pozwala na szybkie testowanie i debugging Umożliwia uruchamianie różnych środowisk (production, development)./script/console

Generowanie części aplikacji./script/generate migration..../script/generate model..../script/generate controller...

Scaffolding Tworzymy model i migrację:./script/generate model... Tworzymy szkielet akcji (scaffold) dla modelu:./script/generate scaffold...

Simply Restful REST, czyli jak wykorzystać dodatkowe możliwości protokołu HTTP Metody GET, POST, PUT, DELETE i ich znaczenie w zwiększeniu semantyczności aplikacji Simply Restful, czyli REST w Ruby on Rails

REST a mapowanie URL Metoda HTTP URL w REST Akcja URL bez REST GET /projects/1 show DELETE /projects/1 destroy PUT /projects/1 update POST /projects create GET /projects/ show/1 GET /projects/ destroy/1 POST /projects/1/ update POST /projects/ create

Metody _path Metoda _path Metoda HTTP URL Akcja projects_path GET /projects index projects_path(1) GET /projects/1 show new_project_path GET /projects/new new edit_project_path(1) GET /projects/1;edit edit projects_path POST /projects create project_path(1) PUT /projects/1 update project_path(1) DELETE /projects/1 destroy

REST a scaffolding Metoda./script/generate scaffold_resource Generowane są: Migracje Model Kontroler Testy Fixtures

Walidacje Łatwy sposób na sprawdzanie poprawności wprowadzanych danych Definiowane w modelu, przez co są dostępne niezależnie od tego, gdzie się do danego modelu odwołujemy Przykładowe metody: validates_presence_of validates_uniqueness_of validates_numericallity_of

Relacje między modelami Dostępne relacje: has_one belongs_to has_many has_and_belongs_to_many has_many :through

Test-driven development, czyli jak pisać testy Zalety test-driven development Unikamy błędów w trakcie pisania aplikacji Koniec sprawdzania każdej funkcji aplikacji w przeglądarce Możemy uruchamiać testy w różnych środowiskach, więc przed każdym release można przetestować aplikację na serwerze produkcyjnym

Rodzaje testów Unit Testing sprawdzanie poprawności relacji pomiędzy modelami oraz walidacji sprawdzanie działania metod należących do logiki modelu Functional Testing sprawdzanie działania kontrolerów, odwołujemy się do aplikacji jak przeglądarka użytkownika

Integration Testing Performance Testing Klasa Benchmark Używanie Mock Objects Prosty sposób na testowanie aplikacji korzystających z zewnętrznych serwisów bez konieczności bezpośredniego łączenia z nimi

Łączenie się z zewnętrzną aplikacją przez REST Integralne działanie ActiveResource Łatwe tworzenie zarówno aplikacji klienckich, jak i serwerowych Pełna integracja z ActiveRecord Niestety, nie jest to częścią Rails 1.2.x; dostępne jedynie w Rails Edge

Pisanie własnych zadań Rake Rake umożliwia pisanie własnych zadań (zestawów poleceń) dotyczących naszych aplikacji Przykładowe wbudowane metody: rake db:migrate rake test Tworzymy własne zadanie

Cache w Ruby on Rails Mechanizmy dostępne w Ruby on Rails: caches_page caches_action Fragment Cache A w drugą stronę... expire_page expire_action ActionController::Caching::Sweeper

Ruby on Rails od strony serwera Możliwe sposoby serwowania aplikacji Ruby on Rails: WEBrick CGI FastCGI mod_ruby Mongrel

Przykładowy przebieg zapytania - Mongrel 1. Przeglądarka WWW 2. Serwer HTTP (load balancing) Apache, Lighttpd, nginx, Pound, Pen 3. Jedna z n instancji serwera Mongrel 4. Ruby on Rails

Capistrano, czyli Rails deployment made easy Capistrano umożliwia łatwą i kompleksową obsługę serwerów aplikacji i baz danych Przydatne polecenia: cap setup cap deploy cap --apply-to /path Application cap deploy_with_migrations http://manuals.rubyonrails.com/read/book/17

acts_as_versioned, czyli jak wersjonować modele Pełna integracja z ActiveRecord Działa bez żadnej dodatkowej integracji z naszej strony Pozwala na wyświetlanie poprzednich wersji i cofanie się do nich./script/plugin install acts_as_versioned