Fenomen Ruby On Rails. Marek Kirejczyk



Podobne dokumenty
Kurs języka Ruby. Ruby on Rails ActionPack

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

Laboratorium nr 3 Podstawy Ruby on Rails

Programowanie w Ruby

Programowanie w Ruby

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

Programowanie w Ruby

Czym jest Ruby on Rails?

Testowanie aplikacji. Kurs języka Ruby

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

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

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

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

Przepis 1. Edycja formularza w miejscu 13. Rails sprawia, że edycja w miejscu jest prosta dzięki kontrolce script.aculo.us

Zrąb Grails. Bartosz Bekier

Wprowadzenie do framework a Symfony

Paweł Rajba,

Grails. v 1.1 Web Framework

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

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

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Rails. Przepisy IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE

Programowanie w Ruby

Zaawansowany kurs języka Python

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

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

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

SZKOLENIE TWORZENIE SYSTEMÓW

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

Laboratorium 7 Blog: dodawanie i edycja wpisów

Apache Wicket. Bartosz Bekier

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Laboratorium 6 Tworzenie bloga w Zend Framework

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

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

EPI: Interfejs Graficzny Wykład nr 8 Warstwa widoku

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Instrukcja laboratoryjna cz.3

Zwinne i lekkie aplikacje webowe z. Jacek Laskowski

Kurs rozszerzony języka Python

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

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

ym4r Google Maps w Ruby on Rails

Program szkolenia: Symfony, nowoczesny framework PHP

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

Przetwarzanie danych w chmurze

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Techniki efektywnego testowania kodu dla programistów Java (Spock

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Szczegółowy opis zamówienia:

REFERAT O PRACY DYPLOMOWEJ

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

OpenLaszlo. OpenLaszlo

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

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

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

Open Source w służbie developerom

Podstawy technologii WWW

Backend Administratora

EPI: Interfejs Graczny Podstawy Ruby on Rails

Symfony w przykładach / Włodzimierz Gajda. Gliwice, cop Spis treści. Podziękowania 13 Wstęp 15

Czysta architektura (nawet z Django!) Sebas an PyWaw 72

TorqueBox. Moc Javy piękno Rubiego

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Przykład połączenie z bazą danych

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

I.Wojnicki, Tech.Inter.

Instrukcja laboratoryjna

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Kurs rozszerzony języka Python

MVC w praktyce tworzymy system artykułów. cz. 1

Specyfikacja funkcjonalna systemu katalog opinii

Tworzenie modułów. Wymagania aplikacji. Tworzenie modułów. Architektura aplikacji. controllers

Tworzenie oprogramowania

Praca Dyplomowa Magisterska

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

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

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

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

Załącznik 1 instrukcje instalacji

SPINACZ.edu.pl platforma współpracy nauki z biznesem w zakresie innowacyjnych rozwiązań informatycznych

Tworzenie książeczek w Storybird

Dokumentacja kompilacji źródeł aplikacji 1.0

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

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

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

WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

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

Transkrypt:

Fenomen Ruby On Rails Marek Kirejczyk

Część 2 Ruby on Rails

Framework

Eksplozja frameworków? Php Zend Symfony Python Django TurboGears Pylons SmallTalk Seaside.NET Ajax Extension MonoRail Java Hibernate Spring Guice Tempestry Struts Stripes JavaScript DoJo Prototype GWT

Ekspozja frameworków! Php Python Java JavaScript EZ Publish, LogiCreate, Mojavi, Navigator, Phrame, ZNF, Achievo ATK, Akelos Framework, AModules3, Ambivalence, Aukyla PHPFramework, Binarycloud, Biscuit, bitweaver, Booby, Cake, Castor, Cgiapp, CodeIgniter, Copix, Core Enterprise PHP, FastFrame, FuseLogic, Konstrukt, Kumbia, Krysalis, Inek, InterJinn, Ismo, Medusa, PHPon Trax, PhpMVC, Popoon, Prado, Qcodo, rwfphp, Seagull, Sitellite, SolarPHP, sqeletor, Studs, struts4php, symfony, TaniPHP, Tigermouse, web.framework, Wolfden CMF, Zephyr Framework, Zoop Framework Django, TurboGears, web.py, Pylons, Fanery, Webware, SkunkWeb, Zope Hibernate, Spring, Guice, Tempestry, Struts, Stripes, Wicket, Sails, Trails, Cocoon, WebWork, Turbine, Maverick, Echo, SOFIA, Verge, Anvil, Jaffa, Japple, JPublish, Jucas, WebOnSwing, Chrysalis, VRaptor, Millstone, Swinglets, Wicket, Millstone... DoJo, Prototype, GWT, TrimJunction, AJAX WebShop, ActiveWidgets, AjaxFace, Backbase, Bindows, Nitobi, Engine for Web Applications, Ext, Freja, Gravey, JackBe, Javeline FrameWork, JsLINB, JsRia, Macao, MochiKit, Mootools, Open Rico, OpenLink AJAX Toolkit, Plex Toolkit, Prototype, jquery, qooxdoo, Script.aculo.us, SmartClient, Subsys_JsHttpRequest, ThyAPI, Interactive Website Framework, TIBET, UI4W, YUI, inlike, Zimbra AjaxTK,

How many software developers does it take to change a light bulb? Twenties? Thirties? Fourties?

Frameworkties!

We are only one framework from the solution? Skąd taka popularność własnie RoR przy takim zalewie frameworków? Nie warto być jednym z tysięcy studentów, ambitnych pracowników czy uczniów liceum, którzy właśnie dziś zaczynają pisać swój framework WWW inny niż wszystkie. Jeśli chce się nauczyć tylko jednego frameworku to RoR wydaje się dobrym pomysłem

Zasady RoR DRY Don t Repeat Yourself Convention over configuration

Instalacja

Instant Rails students/~mk209471 Lub http://rubyforge.org/frs/download.php/18843 /InstantRails-1.7-win.zip Lub I'm feeling lucky: instant rails Rozpakowanie zajmie dłużej niż napisanie prostej aplikacji ;) Dowolny katalog, ale bez spacji w ścieżce! Proponuje c:\temp

http://127.0.0.1:3000/

Krok 1: Kontroler i widok ruby script/generate controller Blog app\views\blog\index.rhtml ew. controllers\blog_controller def index render :text => "Hello z kontrolera" end

Krok 2: Baza danych demo\config:

Dodajemy tabele posts

Krok 3: Dodajemy model ruby script/generate model Post Dodajemy do kontrolera scaffold :post Dostajemy CRUD Dodajmy jeszcze pola: body :text created_at:datetime Wprowadźmy walidacje do modelu validates_presence_of :title

Działa! Dodajmy kilka postów

Co się stało? Wygenerował się kod w czasie kompilacji. Blog kontroler create show list create.rhtml show.rhtml list.rhtml Update, destroy...

A co z validate? validates_presence_of :title,... Wywołanie metody w definicji kalsy Wygenerował metodę validate

Model class Post < ActiveRecord::Base Generuje akcesory na podstawie bazy danych Metody statyczne np.: find

Czego nie robimy! Nie kompilujmy Nie ładujemy aplikacja Nie konfigurujemy np.: nie przypisujemy widoków akcjom

Urozmaićmy nasz blog! Wygenerujmy scaffolda ruby script/generate scaffold Post Blog Poprawki: Usuwamy przewijanie Kontroler posts = find.(:all) Widok <%= link_to post.title,... Odwróćmy kolejność postów

Poprawmy strukturę Tworzymy Partial Wydzielamy _post.rhtml z list.rhtml <%= render :partial => "post", :collection => @posts.reverse %> Ponowne użycie show.rhtml <%= render :partial => "post", :object => @post %>

Ruby On Rails - części AciveRecord ActionPack ActiveControler ActiveView ActiveWebServices Action Mailer Active Support

Active Record Problem: Nie można wyciągnąć relacji z bazy danych Rozwiązanie: has_many, belongs_to... Zapisujemy w modelu

Active Record Problem: Część aplikacji (definicje danych) trzymamy w bazie danych Rozwiązanie: Migracje Napisane w railsach skrypty migrujące przez kolejne wersje bazy danych rake db migrate

Widok i Kontroler Akcje automatycznie renderują widoki Środowisko akcji jest kopiowane do widoku Wszelkie pomocnicze funkcje dla widoku pisze się w helperach Automatycznie wygenerowane w katalogu helpers Wiele gotowych helperów, np.: do obsługi formularzy layouts

Scaffolding Szybkie prototypowanie Tworzenie paneli administracyjnych Customizowane scuffoldy Technika programowania: Generowanie i edycja Edukacyjna rola Szybkie powstawanie prostych serwisów Scaffoldy pokazują wiele typowych technik RoR

Scaffoldy class BlogController < ApplicationController scaffold :post end + = + +

Testowanie Automatycznie generują sie testy jednostkowe Do każdego modułu generuje się prosty fixture, automatycznie ładujący się przed testem Wsparcie dla testów funkcjonalnych i integracyjnych Specjalny katalog na mocks objects ;)

AJAX Rails Way: link_to_remote Link z dodatkowym argumentem - miejscem na wklejenie requestu Bindowania do prototype'a Biblioteki, puginy, dodatki...

Wiecej, więcej, więcej Ruby i Rails 2.0 Intensywna praca nad spęłnieniem wymogów enterprise Pluginy (gems...) np.: do obsługi i18n

Literatura Agile Web Development with Rails - Dave Thomas, David Heinemeier Hansson