Repensando o Desenvolvimento Web com Ruby on Rails

Post on 24-May-2015

1.711 views 7 download

description

Software Freedom Day. Em PDF

Transcript of Repensando o Desenvolvimento Web com Ruby on Rails

Ruby on RailsRepensando o Desenvolvimento Web com

segunda-feira, 21 de setembro de 2009

RailsRails

segunda-feira, 21 de setembro de 2009

ComunidadeComunidade

segunda-feira, 21 de setembro de 2009

FilosofiaFilosofia

segunda-feira, 21 de setembro de 2009

DanteRegis.com

@danteregis

Admin de Redes - TJ/SE

segunda-feira, 21 de setembro de 2009

DanteRegis.com

@danteregis

Admin de Redes - TJ/SE

http://slideshare.net/danteregis

segunda-feira, 21 de setembro de 2009

Você não vai aprenderRuby on Rails aqui

segunda-feira, 21 de setembro de 2009

framework

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

David Heinemeier Hansson2004

segunda-feira, 21 de setembro de 2009

37signals

segunda-feira, 21 de setembro de 2009

1400+desenvolvedores

segunda-feira, 21 de setembro de 2009

http://rubyonrails.com

segunda-feira, 21 de setembro de 2009

jul/2004 0.5

dez/2005 1.0

mar/2006 1.1

jan/2007 1.2

dez/2007 2.0

jun/2008 2.1

nov/2008 2.2

mar/2009 2.3

algum dia (em 2009?) 3.0

segunda-feira, 21 de setembro de 2009

Empregos(fonte: indeed.com)

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

MVC

segunda-feira, 21 de setembro de 2009

opiniated

segunda-feira, 21 de setembro de 2009

eXtreme Programming

segunda-feira, 21 de setembro de 2009

TDD

segunda-feira, 21 de setembro de 2009

REST

segunda-feira, 21 de setembro de 2009

modularização

segunda-feira, 21 de setembro de 2009

DRY

segunda-feira, 21 de setembro de 2009

Convention over

Configuration

segunda-feira, 21 de setembro de 2009

KISS

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

script/console

segunda-feira, 21 de setembro de 2009

Model

segunda-feira, 21 de setembro de 2009

Model

segunda-feira, 21 de setembro de 2009

Model

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

x = Product.new

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

x = Product.newx.name = "Pão Jacó"

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

x = Product.newx.name = "Pão Jacó"x.stock = "100

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

x = Product.newx.name = "Pão Jacó"x.stock = "100x.price = 0.15

segunda-feira, 21 de setembro de 2009

Model

id: integer

name: string

price: float

category_id: integer

stock: integer

created_at: datetime

updated_at: datetime

x = Product.newx.name = "Pão Jacó"x.stock = "100x.price = 0.15x.save

segunda-feira, 21 de setembro de 2009

Model

segunda-feira, 21 de setembro de 2009

Model

INSERT INTO `products` COLUMNS (`name`, `price`, `stock`) VALUES ("Pão Jaco", 0.15, 100);

segunda-feira, 21 de setembro de 2009

Model

segunda-feira, 21 de setembro de 2009

Model

Product.first

segunda-feira, 21 de setembro de 2009

Model

Product.first

Product.find_all_by_category_id(10)

segunda-feira, 21 de setembro de 2009

Model

Product.first

Product.find_all_by_category_id(10)

Product.find_or_create_by_name("Margarina")

segunda-feira, 21 de setembro de 2009

Model

Product.first

Product.find_all_by_category_id(10)

Product.find_or_create_by_name("Margarina")

Product.count

segunda-feira, 21 de setembro de 2009

Model

Product.first

Product.find_all_by_category_id(10)

Product.find_or_create_by_name("Margarina")

Product.count

Product.average('price')

segunda-feira, 21 de setembro de 2009

validations

segunda-feira, 21 de setembro de 2009

associations

segunda-feira, 21 de setembro de 2009

instance methods

segunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

end

segunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

endsegunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

end

belongs_to :category

segunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

end

belongs_to :category validates_presence_of :name

segunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

end

belongs_to :category validates_presence_of :name validates_numericality_of :stock

segunda-feira, 21 de setembro de 2009

Model

class Product < ActiveRecord::Base

end

belongs_to :category validates_presence_of :name validates_numericality_of :stock

def consume! stock -= 1 save end

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

p = Product.new(:stock => "xxxxx")

segunda-feira, 21 de setembro de 2009

p = Product.new(:stock => "xxxxx")p.save

segunda-feira, 21 de setembro de 2009

p = Product.new(:stock => "xxxxx")p.save#=> false

segunda-feira, 21 de setembro de 2009

p = Product.firstp.categoryp.category.name = "Mudei o nome"p.category.save

segunda-feira, 21 de setembro de 2009

has_many

segunda-feira, 21 de setembro de 2009

class Category < ActiveRecord::Base has_many :productsend

segunda-feira, 21 de setembro de 2009

cat.productscat.products.newcat.products.first

segunda-feira, 21 de setembro de 2009

named scope

segunda-feira, 21 de setembro de 2009

class Product < ActiveRecord::Base named_scope :low_stock, :conditions => ['stock <= 10']end

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

Product.low_stock#=> [.....]

segunda-feira, 21 de setembro de 2009

Product.low_stock#=> [.....]

category.products.low_stock#=> [...]

segunda-feira, 21 de setembro de 2009

SQL?

segunda-feira, 21 de setembro de 2009

migrations

segunda-feira, 21 de setembro de 2009

controle de versão

segunda-feira, 21 de setembro de 2009

do banco de dados!

segunda-feira, 21 de setembro de 2009

sem SQL!

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

class AddQuantityToCartProduct < ActiveRecord::Migration

segunda-feira, 21 de setembro de 2009

class AddQuantityToCartProduct < ActiveRecord::Migration def self.up add_column :cart_products, :quantity, :integer end

segunda-feira, 21 de setembro de 2009

class AddQuantityToCartProduct < ActiveRecord::Migration def self.up add_column :cart_products, :quantity, :integer end

def self.down drop_column :cart_products, :quantity endend

segunda-feira, 21 de setembro de 2009

com SQL!

segunda-feira, 21 de setembro de 2009

> 90%experiência pessoal

segunda-feira, 21 de setembro de 2009

ActionController

segunda-feira, 21 de setembro de 2009

session

segunda-feira, 21 de setembro de 2009

render

segunda-feira, 21 de setembro de 2009

filters

segunda-feira, 21 de setembro de 2009

class ApplicationController < ActionController::Base before_filter :check_login def check_login render :text => "acesso negado!" endend

segunda-feira, 21 de setembro de 2009

flash

segunda-feira, 21 de setembro de 2009

flash[:notice] = "Você logou no sistema"

segunda-feira, 21 de setembro de 2009

cookies

segunda-feira, 21 de setembro de 2009

respond_to

segunda-feira, 21 de setembro de 2009

ActionView

segunda-feira, 21 de setembro de 2009

erb

segunda-feira, 21 de setembro de 2009

haml

segunda-feira, 21 de setembro de 2009

erb

segunda-feira, 21 de setembro de 2009

form_tagform_for

segunda-feira, 21 de setembro de 2009

<div> <span><%= flash[:notice] %></span></div><div> <% form_tag do %> <p> Usuário: <%= text_field_tag 'username' %> </p> <p> Senha: <%= password_field_tag 'password' %> </p> <p> <%= submit_tag 'Entrar' %> </p> <% end %></div>

segunda-feira, 21 de setembro de 2009

Tempo para falar mal de certas “soluções”

segunda-feira, 21 de setembro de 2009

Fim do tempo para falar mal de certas

“soluções”

segunda-feira, 21 de setembro de 2009

Comunidade

segunda-feira, 21 de setembro de 2009

RailsConfhttp://railsconf.com

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

segunda-feira, 21 de setembro de 2009

Rails Summit Latin America

http://railssummit.com.br

segunda-feira, 21 de setembro de 2009

13 e 14 de outubroSão Paulo/SP

segunda-feira, 21 de setembro de 2009

Aldo França

segunda-feira, 21 de setembro de 2009

Great Blogs ‘n People

segunda-feira, 21 de setembro de 2009

Akita on Railshttp://akitaonrails.com

segunda-feira, 21 de setembro de 2009

Carlos Brandohttp://nomedojogo.com

segunda-feira, 21 de setembro de 2009

Ozéias Sant’anahttp://railsbox.org

segunda-feira, 21 de setembro de 2009

Bruno Mirandahttp://brunomiranda.com

segunda-feira, 21 de setembro de 2009

Ruby Ondahttp://rubyonda.com

segunda-feira, 21 de setembro de 2009

Nando Vieirahttp://simplesideias.com.br

segunda-feira, 21 de setembro de 2009

PeepCodehttp://peepcode.com

segunda-feira, 21 de setembro de 2009

RailsCastshttp://railscasts.com

segunda-feira, 21 de setembro de 2009

http://slideshare.net/danteregis

segunda-feira, 21 de setembro de 2009

dante@danteregis.com

segunda-feira, 21 de setembro de 2009