ecossistema rails campus party 09

Post on 16-Apr-2017

5.031 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ecossistema RailsDesenvolvedores Web 2.0

Tuesday, January 20, 2009

AkitaOnRails

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://www.akitaonrails.com

Tuesday, January 20, 2009

http://www.locaweb.com.br/rails

1Tuesday, January 20, 2009

1993

“Matz”

Tuesday, January 20, 2009

http://www.ruby-lang.org

2001

“Prag Dave”

Tuesday, January 20, 2009

http://www.rubycentral.com/book/http://www.pragprog.com/titles/ruby3/programming-ruby-1-9

2004

“DHH”

Tuesday, January 20, 2009

http://www.rubyonrails.orghttp://www.loudthinking.com

Tuesday, January 20, 2009

http://rubyonrails.org/screencasts

Tuesday, January 20, 2009

http://rubyonrails.org/screencasts

“Tornar as coisas simples fáceis e as coisas

complexas possíveis”

Filosofia Ruby

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://www.levenez.com/lang/

Ruby on Rails

Tuesday, January 20, 2009

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

ActiveSupportRails

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

ActionPack

ActionController

ActionView

ActiveSupportRails

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

ActiveRecord

ActionPack

ActionController

ActionView

ActiveSupportRails

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

ActiveRecord

ActionPack

ActionMailer

ActionController

ActionView

ActiveSupportRails

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

ActiveRecord

ActionPack

ActiveResource

ActionMailer

ActionController

ActionView

ActiveSupportRails

ActionWebService

RUBY

Tuesday, January 20, 2009

http://guides.rails.info/

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

describe Product do include ProductSpecHelper

before(:each) do @product = Product.new end

it "should not be valid when empty" do @product.should_not be_valid end

it "should be valid when having correct information" do @product.attributes = valid_product_attributes @product.should be_valid endend

RSpec

Tuesday, January 20, 2009

describe Product do include ProductSpecHelper

before(:each) do @product = Product.new end

it "should not be valid when empty" do @product.should_not be_valid end

it "should be valid when having correct information" do @product.attributes = valid_product_attributes @product.should be_valid endend

RSpec

rake spec

Tuesday, January 20, 2009

class Product < ActiveRecord::Base after_create :set_initial_inventory has_many :variants, :dependent => :destroy has_many :images, :as => :viewable, :order => :position, :dependent => :destroy has_many :properties, :through => :product_properties belongs_to :tax_category

validates_presence_of :name validates_presence_of :master_price validates_presence_of :description

make_permalink :with => :name, :field => :permalinkend

Model

Tuesday, January 20, 2009

class Product < ActiveRecord::Base after_create :set_initial_inventory has_many :variants, :dependent => :destroy has_many :images, :as => :viewable, :order => :position, :dependent => :destroy has_many :properties, :through => :product_properties belongs_to :tax_category

validates_presence_of :name validates_presence_of :master_price validates_presence_of :description

make_permalink :with => :name, :field => :permalinkend

Model

Product.find(1)

Tuesday, January 20, 2009

class UsersController < Spree::BaseController resource_controller before_filter :initialize_extension_partials actions :all, :except => [:index, :destroy] show.before do @orders = Order.checkout_completed(true) .find_all_by_user_id(current_user.id) end

create.after { self.current_user = @user }

create.response do |wants| wants.html { redirect_back_or_default(products_path) } end end

Controller

Tuesday, January 20, 2009

class UsersController < Spree::BaseController resource_controller before_filter :initialize_extension_partials actions :all, :except => [:index, :destroy] show.before do @orders = Order.checkout_completed(true) .find_all_by_user_id(current_user.id) end

create.after { self.current_user = @user }

create.response do |wants| wants.html { redirect_back_or_default(products_path) } end end

Controller

/users/1

Tuesday, January 20, 2009

<div id="product-listing"> <%= breadcrumbs(@taxon) %> <br/> <%= render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon } %></div>

<% content_for :sidebar do %> <td id="shop-by-col" valign="top"> <%= render :partial => "shared/taxonomies" %> </td><% end %>

<%= render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty? %>

Views ERB

Tuesday, January 20, 2009

#product-listing =breadcrumbs(@taxon) %br =render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon}

-content_for :sidebar do %td#shop-by-col(:valign => "top") =render :partial => "shared/taxonomies" =render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty?

Views HAML

Tuesday, January 20, 2009

ActionController::Routing::Routes.draw do |map| map.connect ':controller/service.wsdl', :action => 'wsdl'

map.resources :products, :member => {:change_image => :post} map.resources :addresses map.resources :orders, :has_many => [:line_items]

map.namespace :admin do |admin| admin.resources :users admin.resources :products endend

Rotas RESTFul

Tuesday, January 20, 2009

ActionController::Routing::Routes.draw do |map| map.connect ':controller/service.wsdl', :action => 'wsdl'

map.resources :products, :member => {:change_image => :post} map.resources :addresses map.resources :orders, :has_many => [:line_items]

map.namespace :admin do |admin| admin.resources :users admin.resources :products endend

Rotas RESTFul

GET /products/newGET /productsPOST /productsGET /products/1GET /products/1/editPUT /products/1DESTROY /products/1

Tuesday, January 20, 2009

class RenameAppConfiguration < ActiveRecord::Migration def self.up rename_table :app_configurations, :configurations change_table :configurations do |t| t.string :type end end

def self.down change_table :configurations do |t| t.remove :type end rename_table :configurations, :app_configurations endend

Migrations

Tuesday, January 20, 2009

class RenameAppConfiguration < ActiveRecord::Migration def self.up rename_table :app_configurations, :configurations change_table :configurations do |t| t.string :type end end

def self.down change_table :configurations do |t| t.remove :type end rename_table :configurations, :app_configurations endend

Migrations

rake db:migrate

Tuesday, January 20, 2009

“Beautiful Code”

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programminghttp://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available

11 mil classes!

46 só de Collections!

Tuesday, January 20, 2009

http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programminghttp://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available

• Modules:

• Enumerable

• Comparable

• Classes:

• Array

• Hash

• Set

• Sorted Set

Tuesday, January 20, 2009

• Modules:

• Enumerable

• Comparable

• Classes:

• Array

• Hash

• Set

• Sorted Set

1.400classes

só 6 de Collections!

Tuesday, January 20, 2009

• Convention over Configuration

• Don’t Repeat Yourself

• You Ain’t Gonna Need It

• Automação

• Boas Práticas

• Código Bonito

• Ferramentas Simples

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://macromates.comhttp://www.apple.com/macbook

2Tuesday, January 20, 2009

Mitos

Tuesday, January 20, 2009

http://www.loudthinking.com/posts/29-the-rails-myths

Ruby tem marketshare

menor que Java ou PHP

Tuesday, January 20, 2009

Qual foi o concurso?

Qual foi o prêmio?

Tuesday, January 20, 2009

http://gilesbowkett.blogspot.com/2009/01/why-hacker-news-thinks-php-won.html

Tuesday, January 20, 2009

http://www.google.com/trends?q=ruby+rails%2C+python+django%2C+grails%2C+zend

Tuesday, January 20, 2009

http://www.google.com/trends?q=microsoft+windows%2C+linux&ctab=0&geo=all&date=all&sort=0

Tuesday, January 20, 2009

http://www.roughlydrafted.com/2008/10/25/apple-earnings-profits-and-cash-embarrass-microsoft-2/

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Martin Fowler

Tuesday, January 20, 2009

http://www.thoughtworks.com/how-we-do-it/ruby.html

Agile

Tuesday, January 20, 2009

http://pragdave.pragprog.com/

Mitos

Tuesday, January 20, 2009

Rails não Escala

Tuesday, January 20, 2009

Tuesday, January 20, 2009

FUD: http://www.techcrunch.com/2008/05/22/twitter-at-scale-will-it-work/

To put things into perspective, though,

Friendster was written in Java to start, and switched to PHP. Myspace was written in ColdFusion and transitioned

to ASP.NET.

When people run into problems scaling sites they

often think that the language is the problem, but I think

it’s rarely the case. Blaine Cook

http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter

Tuesday, January 20, 2009

http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter

“The New York Times used Ruby on Rails to pull together, analyze and display election results in near real time on one of its busiest Web

traffic days ever. ”

http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1

Tuesday, January 20, 2009

http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9120778

“They serve up 23 million visitors a month. The conversion resulted in 20,000 lines of Ruby code instead of 125,000 lines of Java code, and most importantly

eased the difficulty they had in maintaining it. Once complete, and optimized their site is now faster than before. They also completed the

rewrite in three months with four developers.”

http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails

Tuesday, January 20, 2009

http://www.akitaonrails.com/2008/11/21/rails-podcast-brasil-qcon-special-john-straw-yellowpages-com-and-matt-aimonetti-merbhttp://www.rubyonrailsexamples.com/sites-on-rails/yellowpagescom-goes-ror/

Tuesday, January 20, 2009

http://www.techcrunch.com/2008/01/24/hulu-discusses-private-beta-suggests-public-launch-time-frame/

Tuesday, January 20, 2009

http://www.blogblogs.com.br

Mitos

Tuesday, January 20, 2009

Deployment de Rails é difícil

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Apache + FastCGI

LightTPD + FastCGI

Litespeed + SAPI

Apache + Mongrel

Nginx + Mongrel

Nginx + Thin

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://phusion.nlhttp://www.modrails.com/

gem install passengerpassenger-install-apache2-module

Tuesday, January 20, 2009

http://phusion.nlhttp://www.modrails.com/

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Mitos

Tuesday, January 20, 2009

Rails é mal documentado

Tuesday, January 20, 2009

Geoffrey

Tuesday, January 20, 2009

http://www.peepcode.com

Jason e Gregg

Tuesday, January 20, 2009

http://railsenvy.comhttp://envycasts.com

Ryan Bates

Tuesday, January 20, 2009

http://railscasts.com

Pratik Naik

Tuesday, January 20, 2009

http://guides.rails.info/

Satish Talim

Tuesday, January 20, 2009

http://rubylearning.org

Peter Cooper

Tuesday, January 20, 2009

http://rubyinside.comhttp://railsinside.comhttp://rubyflow.comhttp://jrubyinside.comhttp://yorails.com

_why

Tuesday, January 20, 2009

http://whytheluckystiff.net/

Tuesday, January 20, 2009

http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Dstripbooks&field-keywords=ruby+rails&x=0&y=0

Tuesday, January 20, 2009

3Tuesday, January 20, 2009

Mitos

Tuesday, January 20, 2009

Open Source

Tuesday, January 20, 2009

Chris Wanstrath

Tuesday, January 20, 2009

http://github.com

Tuesday, January 20, 2009

http://rubyforge.orghttp://gitorious.org

Tuesday, January 20, 2009

http://jruby.codehaus.orghttp://www.macruby.orghttp://www.ironruby.nethttp://ruby.gemstone.com/http://rubini.us/

Tuesday, January 20, 2009

http://gettingreal.37signals.com/GR_por.phphttp://aprendaaprogramar.rubyonrails.pro.br/http://why.nomedojogo.com/http://rubyonrails.pro.brhttp://rubyonbr.org

Tuesday, January 20, 2009

http://gettingreal.37signals.com/GR_por.phphttp://aprendaaprogramar.rubyonrails.pro.br/http://why.nomedojogo.com/http://rubyonrails.pro.brhttp://rubyonbr.org

Conferências

Tuesday, January 20, 2009

Tuesday, January 20, 2009

http://www.confreaks.com/http://www.akitaonrails.com/railsconf2008

Tuesday, January 20, 2009

http://www.locaweb.com.br/railssummithttp://www.akitaonrails.com/railssummit2008

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Tuesday, January 20, 2009

Especialista de uma coisa só é um amador em todo o resto.

Tuesday, January 20, 2009

Obrigado!Tuesday, January 20, 2009

top related