53
Ruby on Rails Peak IT, 17 September 2008

Ruby on Rails Introduction

Embed Size (px)

Citation preview

Page 1: Ruby on Rails Introduction

Ruby on RailsPeak IT, 17 September 2008

Page 2: Ruby on Rails Introduction

Joost Hietbrink?www.linkedin.com/in/joosthietbrink

Page 4: Ruby on Rails Introduction
Page 5: Ruby on Rails Introduction
Page 6: Ruby on Rails Introduction
Page 8: Ruby on Rails Introduction

• Birthday: 24 February 1993

• v1.0: 25 December 1996

• “more powerful than Perl, and more OO than Python”

• 99.9% Object Oriented

Page 9: Ruby on Rails Introduction

Yukihiro ‘Matz’ Matsumoto, creator of Ruby.

Page 10: Ruby on Rails Introduction

try ruby! (in your browser)http://tryruby.hobix.com/

Page 11: Ruby on Rails Introduction
Page 12: Ruby on Rails Introduction

• Birth: July 2004

• Shipped with OSX Leopard

• Latest: 2.1.1: 4 September 2008

Page 13: Ruby on Rails Introduction

David ‘dhh’ Heinemeier Hansson

Page 14: Ruby on Rails Introduction

Ruby on Rails vs.JavaPHP.NET

ColdFusionDjango

...

Page 15: Ruby on Rails Introduction
Page 16: Ruby on Rails Introduction

Websites on Rails

Page 17: Ruby on Rails Introduction

Companies using Rails

Page 18: Ruby on Rails Introduction

The Framework

source: http://flickr.com/photos/charlesbodi/236037049/

Page 19: Ruby on Rails Introduction

• Convention over Configuration

• Agile Programming principle

• DRY

Page 20: Ruby on Rails Introduction

app controllers helpers models viewsconfig environments initializersdbdoclib taskslogpublic images javascripts stylesheetsscript performance processtest fixtures functional integration unit...

Page 21: Ruby on Rails Introduction

ModelView

Controller

Framework (MVC)

Page 22: Ruby on Rails Introduction
Page 23: Ruby on Rails Introduction

Modelssource: http://flickr.com/photos/74982136@N00/252447564

Page 24: Ruby on Rails Introduction

ActiveRecord

source: http://media.rubyonrails.org/presentations/pursuitofbeauty.pdf

Page 25: Ruby on Rails Introduction
Page 26: Ruby on Rails Introduction
Page 27: Ruby on Rails Introduction
Page 28: Ruby on Rails Introduction
Page 29: Ruby on Rails Introduction
Page 30: Ruby on Rails Introduction
Page 31: Ruby on Rails Introduction
Page 32: Ruby on Rails Introduction
Page 33: Ruby on Rails Introduction
Page 34: Ruby on Rails Introduction
Page 35: Ruby on Rails Introduction

Fat Models

Page 36: Ruby on Rails Introduction

ActionControllersource: http://flickr.com/photos/sameli/261307204/

Page 37: Ruby on Rails Introduction
Page 38: Ruby on Rails Introduction
Page 39: Ruby on Rails Introduction
Page 40: Ruby on Rails Introduction

RESTfulResources

Page 41: Ruby on Rails Introduction

HTTP verb Controller Action

CRUD Action URL

GET show READ /products/1/products/1.xml

POST create CREATE /products

PUT update UPDATE /products/1

DELETE destroy DESTROY /products/1

GET new /products/new

GET index /products

GET edit /products/1/edit

source: http://rubyenrails.nl/articles/2006/11/02/restful-rails

Page 42: Ruby on Rails Introduction

ActionViewsource: http://flickr.com/photos/bocavermelha/66759796/

Page 43: Ruby on Rails Introduction
Page 44: Ruby on Rails Introduction

action.mimetype.renderer

show.html.erbindex.rss.builderedit.iphone.haml

Page 45: Ruby on Rails Introduction

Generateinstead of

Create

Page 46: Ruby on Rails Introduction

DRY vs. DRO

Page 48: Ruby on Rails Introduction

Demo?!

Page 49: Ruby on Rails Introduction

?

Joost HietbrinkJoopp (joopp.com/blog.joopp.com)

[email protected] 14 89 65 41

Page 50: Ruby on Rails Introduction

More info

• rubyonrails.org

• railscasts.com

• peepcode.com

• rubyenrails.nl

• slideshare.net:

• http://www.slideshare.net/mattb/coding-on-the-shoulders-of-giants

Page 52: Ruby on Rails Introduction

How to create aMP3 Playing Alarm Clock

in Ruby?

Page 53: Ruby on Rails Introduction

sleep7.hours%x(open~/heaven‐sent.mp3)