RUBY ON RAILS. ZHR.pl extreme II 13.12.2008 Warszawa Szymon Fiedler fidel@zhr.pl



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

Kurs języka Ruby. Ruby on Rails ActionPack

Czym jest Ruby on Rails?

Programowanie w Ruby

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

Programowanie w Ruby

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

Zdecyduj: Czy to jest rzeczywiście prześladowanie? Czasem coś WYDAJE SIĘ złośliwe, ale wcale takie nie jest.

Tychy, plan miasta: Skala 1: (Polish Edition)

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

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

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

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

Programowanie w Ruby

I.Wojnicki, Tech.Inter.

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Stargard Szczecinski i okolice (Polish Edition)

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

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

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

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

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Metasploit Part 1. The Beginning

Wstęp. Ale po co? Implementacja

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik?

DODATKOWE ĆWICZENIA EGZAMINACYJNE

Architektura komunikacji

INSTRUKCJE JAK AKTYWOWAĆ SWOJE KONTO PAYLUTION

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Network Services for Spatial Data in European Geo-Portals and their Compliance with ISO and OGC Standards

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

Instrukcja obsługi User s manual

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

Rev Źródło:

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Cele. Definiowanie wyzwalaczy

Laboratorium nr 3 Podstawy Ruby on Rails

Revenue Maximization. Sept. 25, 2018

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

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

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Bardzo formalny, odbiorca posiada specjalny tytuł, który jest używany zamiast nazwiska

EXCEL PL PROGRAMOWANIE PDF

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

Analysis of Movie Profitability STAT 469 IN CLASS ANALYSIS #2

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Programowanie obiektowe

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Aplikacje WWW - laboratorium

ANKIETA ŚWIAT BAJEK MOJEGO DZIECKA

Oracle Application Express -

Podstawy programowania III WYKŁAD 6

ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS.

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

1. CZYM JEST SERIALIZACJA

Helena Boguta, klasa 8W, rok szkolny 2018/2019

Pielgrzymka do Ojczyzny: Przemowienia i homilie Ojca Swietego Jana Pawla II (Jan Pawel II-- pierwszy Polak na Stolicy Piotrowej) (Polish Edition)

Test sprawdzający znajomość języka angielskiego

Tworzenie i wykorzystanie usług sieciowych

Scala - programowanie obiektowo-funkcyjne

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

OpenPoland.net API Documentation

Programowanie w Ruby

Krok po kroku... (czyli jak stworzyć i wydrukować krzyżówkę)

Enterprise SSO IBM Corporation

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

This is CS 50. Harvard College s Introduction to Computer Science I \ DAVID J. MALAN 99 WEEK 2

EPI: Interfejs Graczny Podstawy Ruby on Rails

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Wroclaw, plan nowy: Nowe ulice, 1:22500, sygnalizacja swietlna, wysokosc wiaduktow : Debica = City plan (Polish Edition)

Previously on CSCI 4622

Formularz dla osób planujących ubiegać się o przyjęcie na studia undergraduate (I stopnia) w USA na rok akademicki

Machine Learning for Data Science (CS4786) Lecture 24. Differential Privacy and Re-useable Holdout

Zasady rejestracji i instrukcja zarządzania kontem użytkownika portalu

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Projekt: Mikro zaprogramowane na sukces!

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

Programowanie w Ruby

Technologie internetowe ASP.NET Core. Paweł Rajba

PRZEWODNIK PO PRZEDMIOCIE

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Transkrypt:

RUBY ON RAILS ZHR.pl extreme II 13.12.2008 Warszawa Szymon Fiedler fidel@zhr.pl

CO TO WŁAŚCIWIE ROR? Framework Opensource Do szybkiego tworzenia aplikacji webowych Twórca: David Heinemeier Hansson Ruby, architektura MVC

FRUSTRACJA... A POTEM NADESZŁY RAILSY Java, PHP,.Net Od zabawki do światowego fenomenu w kilka miesięcy Liczne nagrody i web 2.0 Popularne narzędzie, nie tylko dla hardcore owców

PROSTY, NIE ZNACZY KIEPSKI Stosują go profesjonaliści (37signals.com, Facebook.com, CESEI.zhr.pl :) Próba czasu - nowoczesne i profesjonalne tworzenie oraz implementacja Wgryźli się i zobaczyli, że to nie tylko zabawka

RUBY, RUBY, RUBY, RUBY... 1995 - Yukihiro Matsumoto (Matz) Nowoczesny Obiektowo zorientowany (wszystko jest obiektem) Naturalne i przejrzyste wyrażanie myśli w kodzie Łatwość pisania i odczytywania (nawet po wielu miesiącach) Boom 2003-2005 (za sprawą Rails)

BAJECZKI W RAILS Pisanie kodu jak powieści czyni życie łatwiejszym Programy są krótsze i bardziej czytelne Wiele informacji w kilku linijkach kodu

Prepared exclusively for Krzysztof Lis PHP Ruby Ruby the details. Ruby has some interesting rules that we must learn to write and more vocabulary than PHP. effective methods and has some magic to discover. and more Understanding vocabularythese than PHP. effective methods and has some magic to discover. Understanding these will go long way to helping you understand Let swhat s pretend really we are happening developing an application t will go a long way to helping you understandlet s what s pretend really happening we are developing an applicati when when you you start start digging digging into into tion interface. Only users who are the administr RUBY Rails Rails programming. programming. VS. tionphp functions interface. of the Only application, users who and are we the want admin to h whether functions a User of the model application, has the administrator and we want Defining a Method priv ply whether return. a User model has the administrator The basics of ofdefining aamethod are are the the same same in both in both Ruby Ruby and and PHP. PHP. but let s look at ply return. We ve seen them both before, but let s look at Inthem PHP, again again this quickly might quickly lookbefore like the following. exploring deeper. Here is isananexample of of a method a In PHP, with with this one one might parameter look like the following. PHP Download beginning_ruby_code/php/control_if_not.php in PHP. PHP Download beginning_ruby_code/php/method_basic.php class Parrot { public function say($word) { public function say($word) { // say it here // say it here } PHP PHP public Downloadfunction beginning_ruby_code/php/control_if_not.php edit() { if (! $this->user->isadmin() ) { public function edit() { return; if (! $this->user->isadmin() ) { } } return; } } } That s pretty straightforward PHP code and wou Here s that same code written the Ruby way. do it. Let s translate that code directly into Ruby Here s that same code written the Ruby way. That s pretty straightforward PHP code and Download beginning_ruby_code/ruby/method_basic.rb Ruby Download beginning_ruby_code/ruby/control_if_not.rb do it. Let s translate that code directly into R RUBY Download beginning_ruby_code/ruby/method_basic.rb class Parrot class def say(word) Parrot def # say(word) it here end# say it here end end end Prepared exclusively for Krzysztof Lis Prepared exclusively for Krzysztof Lis Ruby RUBY def edit if! @user.admin? return def edit end if! @user.admin? return #... end end Download beginning_ruby_code/ruby/control_if_not.rb #... end Report erratum this copy is (First printing, January 2008) Report erratum this copy is (First printing, January 2008)

DON T REPEAT YOURSELF Mówisz co chcesz w jednym miejscu Miejsce sugeruje architektura MVC Jedziesz z koksem :) Wolisz zmieniać w jednym miejscu, czy kilku(nastu, dziesięciu)?

KONWENCJA PONAD KONFIGURACJĄ Domyślność w każdym aspekcie klecenia aplikacji Idź za konwencją i stwórz aplikację w Railsach używając mniej kodu, niż w innych frameworkach Jeżeli chcesz ominąć konwencję, Rails na to pozwala Niezliczona ilość wtyczek (logowanie, praca z obrazami, edycja tekstu - Adam coś o tym wie)

STANDARDY Rails jest nowy i jego developerzy rozumieją nowy WEB Rails nie goni standardów, on je tworzy! Pełna integracja z Ajax em

MODELS, VIEWS, AND CONTROLLERS! '()#*(++&*!12*(.%&*1%&)0%1*&34&%# "1'()#*(++&*1-)#&*"5#%1.-#617(0&+ #1'()#*(++&*1-)8(9&%18-&. $1,-&.1*&)0&*%1)&:#1$*(.%&*1%5*&&) $ # ",-&. /(0&+!"#"$"%& Figure 2.1: The Model-View-Controller Architecture MODEL-VIEW-CONTROLLER be a view that displays product information on a catalog page and another set of views used by administrators to add and edit products. RYS1. ARCHITEKTURA MVC Controllers orchestrate the application. Controllers receive events from the AGILE WEB DEVELOPMENT WITH RAILS 3 VER. 4 outside world (normally user input), interact with the model, and display an

BUDOWA ActiveRecord - mechanizm ORM ActionPack ActionController ActionView ActiveSupport - rozszerzenia m.in. Time, String ActionMailer - wysyłka maili

IMPLEMENTACJA Uruchamianie na dowolnej liczbie serwerów jednym poleceniem: mongrel_rails start -d -p 3000 -e production mongrel_rails cluster::start -d -p 3000 -e production -n 3 Webrick, Mongrel, Thin Samodzielny albo ukryty za Apachem, czy Lighttpd

BAZY DANYCH MySQL, PostgreSQL, Oracle, MS SQL Server, Sqlite (domyślny), IBM DB2, OpenBase, Sybase Wystarczy biblioteka Ruby i przyuczony AcitveRecord Kompatybilność vs. jawna składnia SQL Migracje - zmiana struktury tabel, niezależnie od typu, korzystając z Ruby ego XML, YML, CSV i wszystko, co potrafi ruszyć Ruby

BEZPIECZEŃSTWO Escape html <%=h @user.name %> Automatyczne zabezpieczenie zapytań SQL Sprawdzanie autentyczności użytkownika przed wykonaniem akcji before_filter :login_required

RAILS IS AGILE Indywidualność i interakcje ponad procesami i narzędziami Działająca aplikacja ponad tonami dokumentacji Współdziałanie z klientem ponad negocjacjami nad kontraktem Odpowiadanie na zmiany ponad trzymanie się planu

KSIĄŻKI

SCREENCASTY railscasts.com pragprog.com/screencasts peepcode.com