fórum de software livre do serpro rj 2009

183
Tuesday, September 15, 2009

Upload: fabio-akita

Post on 18-May-2015

519 views

Category:

Technology


0 download

DESCRIPTION

Esta palestra é muito parecida com a que eu também ministrei no evento Dev in Rio 2009, portanto os slides são quase iguais caso você já tenha baixado. A apresentação fala sobre filosofias, valores e idéias ágeis e como elas são a fundação da comunidade Ruby on Rails e do ecossistema que se formou ao seu redor.Alguns dos vídeos mostrados estão disponíveis em http://vimeo.com/akitaonrails.com

TRANSCRIPT

Page 1: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 2: Fórum de Software Livre do Serpro RJ 2009

Ruby on RailsTuesday, September 15, 2009

Page 3: Fórum de Software Livre do Serpro RJ 2009

AkitaOnRails.comslideshare.net/akitaonrails

Tuesday, September 15, 2009

Page 4: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 5: Fórum de Software Livre do Serpro RJ 2009

> 100 slides< 1 hora

Tuesday, September 15, 2009

Page 7: Fórum de Software Livre do Serpro RJ 2009

Contexto

Tuesday, September 15, 2009

Page 8: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 9: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 10: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 11: Fórum de Software Livre do Serpro RJ 2009

Ruby on Rails 2.3

Ruby 1.8

“Novo” Ruby 1.9Tuesday, September 15, 2009

Page 12: Fórum de Software Livre do Serpro RJ 2009

Ruby on Rails 2.3

Ruby 1.8

“Novo” Ruby 1.9Tuesday, September 15, 2009

Page 13: Fórum de Software Livre do Serpro RJ 2009

Ruby on Rails 2.3

Ruby 1.8

“Novo” Ruby 1.9Tuesday, September 15, 2009

Page 14: Fórum de Software Livre do Serpro RJ 2009

1993

“Matz”

Tuesday, September 15, 2009

Page 15: Fórum de Software Livre do Serpro RJ 2009

2001

“Prag Dave”

Tuesday, September 15, 2009

Page 16: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 17: Fórum de Software Livre do Serpro RJ 2009

2004“DHH”

Tuesday, September 15, 2009

Page 18: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 19: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 20: Fórum de Software Livre do Serpro RJ 2009

2006

Charles Nutter

Tuesday, September 15, 2009

Page 21: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 22: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 23: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 24: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 25: Fórum de Software Livre do Serpro RJ 2009

“Tornar as coisas simples fáceis e as coisas complexas

possíveis”

Filosofia Ruby

Tuesday, September 15, 2009

Page 26: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 27: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 28: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 29: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 30: Fórum de Software Livre do Serpro RJ 2009

Orientação a Objetos?

Tuesday, September 15, 2009

Page 31: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 32: Fórum de Software Livre do Serpro RJ 2009

Alay KayTuesday, September 15, 2009

Page 33: Fórum de Software Livre do Serpro RJ 2009

Alay Kay Dan IngallsTuesday, September 15, 2009

Page 34: Fórum de Software Livre do Serpro RJ 2009

Alay KayTuesday, September 15, 2009

Page 35: Fórum de Software Livre do Serpro RJ 2009

Alay KayTuesday, September 15, 2009

Page 36: Fórum de Software Livre do Serpro RJ 2009

“Eu inventei o termo ʻorientação a

objetosʼ, e posso lhes dizer que eu

não estava pensando em C++.”

Alay KayTuesday, September 15, 2009

Page 37: Fórum de Software Livre do Serpro RJ 2009

Meta-programação

Tuesday, September 15, 2009

Page 38: Fórum de Software Livre do Serpro RJ 2009

Meta-apresentação

by Dave ThomasTuesday, September 15, 2009

Page 39: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 40: Fórum de Software Livre do Serpro RJ 2009

Ruby on Rails

Tuesday, September 15, 2009

Page 41: Fórum de Software Livre do Serpro RJ 2009

Código que gera Código

Convention over Configuration

Don’t Repeat Yourself

Extreme Programming

Tuesday, September 15, 2009

Page 42: Fórum de Software Livre do Serpro RJ 2009

Código que gera Código

Convention over Configuration

Don’t Repeat Yourself

Extreme Programming

Tuesday, September 15, 2009

Page 43: Fórum de Software Livre do Serpro RJ 2009

Código que gera Código

Convention over Configuration

Don’t Repeat Yourself

Extreme Programming

Tuesday, September 15, 2009

Page 44: Fórum de Software Livre do Serpro RJ 2009

Código que gera Código

Convention over Configuration

Don’t Repeat Yourself

Extreme Programming

Tuesday, September 15, 2009

Page 45: Fórum de Software Livre do Serpro RJ 2009

Restful Resources

Unicode, Time Zone, i18n

Segurança (XSS, CSRF, Injection)

Rack Support (Middlewares)

Tuesday, September 15, 2009

Page 46: Fórum de Software Livre do Serpro RJ 2009

Restful Resources

Unicode, Time Zone, i18n

Segurança (XSS, CSRF, Injection)

Rack Support (Middlewares)

Tuesday, September 15, 2009

Page 47: Fórum de Software Livre do Serpro RJ 2009

Restful Resources

Unicode, Time Zone, i18n

Segurança (XSS, CSRF, Injection)

Rack Support (Middlewares)

Tuesday, September 15, 2009

Page 48: Fórum de Software Livre do Serpro RJ 2009

Restful Resources

Unicode, Time Zone, i18n

Segurança (XSS, CSRF, Injection)

Rack Support (Middlewares)

Tuesday, September 15, 2009

Page 49: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 50: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 51: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 52: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 53: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 54: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 55: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 56: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 57: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 58: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 59: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 60: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 61: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 62: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 63: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 64: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 65: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 66: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 67: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 68: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 69: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 70: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 71: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 72: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 73: Fórum de Software Livre do Serpro RJ 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, September 15, 2009

Page 74: Fórum de Software Livre do Serpro RJ 2009

“Beautiful Code”

Tuesday, September 15, 2009

Page 75: Fórum de Software Livre do Serpro RJ 2009

//$Id: Booking.java 5579 2007-06-27 00:06:49Z gavin $package org.jboss.seam.example.booking;

import java.io.Serializable;import java.math.BigDecimal;import java.text.DateFormat;import java.util.Date;

import javax.persistence.Basic;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;import javax.persistence.Temporal;import javax.persistence.TemporalType;import javax.persistence.Transient;

import org.hibernate.validator.Length;import org.hibernate.validator.NotNull;import org.hibernate.validator.Pattern;import org.jboss.seam.annotations.Name;

@Entity@Name("booking")public class Booking implements Serializable{ private Long id; private User user; private Hotel hotel; private Date checkinDate; private Date checkoutDate; private String creditCard; private String creditCardName; private int creditCardExpiryMonth; private int creditCardExpiryYear; private boolean smoking; private int beds; public Booking() {} public Booking(Hotel hotel, User user) { this.hotel = hotel; this.user = user; }

@Transient public BigDecimal getTotal() { return hotel.getPrice().multiply( new BigDecimal( getNights() ) ); }

@Transient public int getNights() { return (int) ( checkoutDate.getTime() - checkinDate.getTime() ) / 1000 / 60 / 60 / 24; }

@Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } @NotNull @Basic @Temporal(TemporalType.DATE) public Date getCheckinDate() { return checkinDate; } public void setCheckinDate(Date datetime) { this.checkinDate = datetime; }

@ManyToOne @NotNull public Hotel getHotel() { return hotel; } public void setHotel(Hotel hotel) { this.hotel = hotel; } @ManyToOne @NotNull public User getUser() { return user; }

Tuesday, September 15, 2009

Page 76: Fórum de Software Livre do Serpro RJ 2009

public void setUser(User user) { this.user = user; } @Basic @Temporal(TemporalType.DATE) @NotNull public Date getCheckoutDate() { return checkoutDate; } public void setCheckoutDate(Date checkoutDate) { this.checkoutDate = checkoutDate; } @NotNull(message="Credit card number is required") @Length(min=16, max=16, message="Credit card number must 16 digits long") @Pattern(regex="^\\d*$", message="Credit card number must be numeric") public String getCreditCard() { return creditCard; }

public void setCreditCard(String creditCard) { this.creditCard = creditCard; } @Transient public String getDescription() { DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM); return hotel==null ? null : hotel.getName() + ", " + df.format( getCheckinDate() ) + " to " + df.format( getCheckoutDate() ); }

public boolean isSmoking() { return smoking; }

public void setSmoking(boolean smoking) { this.smoking = smoking; }

public int getBeds() { return beds; }

public void setBeds(int beds) { this.beds = beds; } @NotNull(message="Credit card name is required") @Length(min=3, max=70, message="Credit card name is required") public String getCreditCardName() { return creditCardName; }

public void setCreditCardName(String creditCardName) { this.creditCardName = creditCardName; }

public int getCreditCardExpiryMonth() { return creditCardExpiryMonth; }

public void setCreditCardExpiryMonth(int creditCardExpiryMonth) { this.creditCardExpiryMonth = creditCardExpiryMonth; }

public int getCreditCardExpiryYear() { return creditCardExpiryYear; }

public void setCreditCardExpiryYear(int creditCardExpiryYear) { this.creditCardExpiryYear = creditCardExpiryYear; } @Override public String toString() { return "Booking(" + user + ","+ hotel + ")"; }

}

Tuesday, September 15, 2009

Page 77: Fórum de Software Livre do Serpro RJ 2009

class Booking < ActiveRecord::Base belongs_to :hotel belongs_to :user validates_presence_of :hotel validates_presence_of :user validates_presence_of :credit_card validates_presence_of :credit_card_name validates_length_of :credit_card, :within => 16..16 validates_format_of :credit_card, :with => /^\\d*$/ validates_length_of :credit_card_name, :within => 3..70 def total hotel.price * nights end def nights ((checkout_date - checkin_date) / 1.day).round end def to_s "Booking(#{user},#{hotel})" endend

Tuesday, September 15, 2009

Page 78: Fórum de Software Livre do Serpro RJ 2009

class Booking < ActiveRecord::Base belongs_to :hotel belongs_to :user validates_presence_of :hotel validates_presence_of :user validates_presence_of :credit_card validates_presence_of :credit_card_name validates_length_of :credit_card, :within => 16..16 validates_format_of :credit_card, :with => /^\\d*$/ validates_length_of :credit_card_name, :within => 3..70 def total hotel.price * nights end def nights ((checkout_date - checkin_date) / 1.day).round end def to_s "Booking(#{user},#{hotel})" endend

Tuesday, September 15, 2009

Page 79: Fórum de Software Livre do Serpro RJ 2009

class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds

t.timestamps end end

def self.down drop_table :bookings endend

Tuesday, September 15, 2009

Page 80: Fórum de Software Livre do Serpro RJ 2009

class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds

t.timestamps end end

def self.down drop_table :bookings endend

Tuesday, September 15, 2009

Page 81: Fórum de Software Livre do Serpro RJ 2009

class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds

t.timestamps end end

def self.down drop_table :bookings endend

Tuesday, September 15, 2009

Page 82: Fórum de Software Livre do Serpro RJ 2009

190vs40

Tuesday, September 15, 2009

Page 83: Fórum de Software Livre do Serpro RJ 2009

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

“Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles

agora é mais rápido que antes.”

Tuesday, September 15, 2009

Page 84: Fórum de Software Livre do Serpro RJ 2009

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

“Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles

agora é mais rápido que antes.”

Tuesday, September 15, 2009

Page 85: Fórum de Software Livre do Serpro RJ 2009

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

“Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles

agora é mais rápido que antes.”

Tuesday, September 15, 2009

Page 86: Fórum de Software Livre do Serpro RJ 2009

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

“Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles

agora é mais rápido que antes.”

Tuesday, September 15, 2009

Page 87: Fórum de Software Livre do Serpro RJ 2009

Ferramentas Ágeis

Tuesday, September 15, 2009

Page 88: Fórum de Software Livre do Serpro RJ 2009

Repositórios GitoriousGithub

Integração Contínua

IntegrityCruise Control

Deployment CapistranoPuppet

Monitoramento New Relic

Tuesday, September 15, 2009

Page 89: Fórum de Software Livre do Serpro RJ 2009

Repositórios GitoriousGithub

Integração Contínua

IntegrityCruise Control

Deployment CapistranoPuppet

Monitoramento New Relic

Tuesday, September 15, 2009

Page 90: Fórum de Software Livre do Serpro RJ 2009

Repositórios GitoriousGithub

Integração Contínua

IntegrityCruise Control

Deployment CapistranoPuppet

Monitoramento New Relic

Tuesday, September 15, 2009

Page 91: Fórum de Software Livre do Serpro RJ 2009

Repositórios GitoriousGithub

Integração Contínua

IntegrityCruise Control

Deployment CapistranoPuppet

Monitoramento New Relic

Tuesday, September 15, 2009

Page 92: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 93: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 94: Fórum de Software Livre do Serpro RJ 2009

Comunidade

Tuesday, September 15, 2009

Page 95: Fórum de Software Livre do Serpro RJ 2009

Geoffrey

peepcode.com

Tuesday, September 15, 2009

Page 96: Fórum de Software Livre do Serpro RJ 2009

Gregg Pollack

envylabs.com

Tuesday, September 15, 2009

Page 97: Fórum de Software Livre do Serpro RJ 2009

Ryan Bates

railscasts.com

Tuesday, September 15, 2009

Page 98: Fórum de Software Livre do Serpro RJ 2009

Satish Talim

rubylearning.org

Tuesday, September 15, 2009

Page 99: Fórum de Software Livre do Serpro RJ 2009

Peter Cooper

rubyinside.com.br

Tuesday, September 15, 2009

Page 100: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 101: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 102: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 103: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 104: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 105: Fórum de Software Livre do Serpro RJ 2009

O que dizempor aí ...

Tuesday, September 15, 2009

Page 106: Fórum de Software Livre do Serpro RJ 2009

Pouco usado

Tuesday, September 15, 2009

Page 107: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 108: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 109: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 110: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 111: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 112: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 113: Fórum de Software Livre do Serpro RJ 2009

Rails não Escala

Tuesday, September 15, 2009

Page 114: Fórum de Software Livre do Serpro RJ 2009

Rails não EscalaTM

Tuesday, September 15, 2009

Page 115: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 116: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 118: Fórum de Software Livre do Serpro RJ 2009

Para colocar as coisas em perspectiva, o Friendster foi

escrito em Java e eles mudaram para PHP.

MySpace foi escrito em ColdFusion e eles mudaram

para ASP.NET.

Blaine Cook

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

Tuesday, September 15, 2009

Page 119: Fórum de Software Livre do Serpro RJ 2009

Para colocar as coisas em perspectiva, o Friendster foi

escrito em Java e eles mudaram para PHP.

MySpace foi escrito em ColdFusion e eles mudaram

para ASP.NET.

Blaine Cook

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

Quando as pessoas caem em problemas de escalabilidade, normalmente acham que a

linguagem é o problema, mas eu acho que isso raramente é

a realidade.

Tuesday, September 15, 2009

Page 120: Fórum de Software Livre do Serpro RJ 2009

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

“O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os

resultados das eleições em quase tempo real em um de seus sites mais acessados

de todos os tempos.”

Tuesday, September 15, 2009

Page 121: Fórum de Software Livre do Serpro RJ 2009

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

“O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os

resultados das eleições em quase tempo real em um de seus sites mais acessados

de todos os tempos.”

Tuesday, September 15, 2009

Page 122: Fórum de Software Livre do Serpro RJ 2009

Ruby é Lento

Tuesday, September 15, 2009

Page 123: Fórum de Software Livre do Serpro RJ 2009

x mais lento que C++

Tuesday, September 15, 2009

Page 124: Fórum de Software Livre do Serpro RJ 2009

0 50 100 150 200

Python 2

Ruby 1.9

Perl

JRuby

Python 3

PHP

Ruby 1.8.6

x mais lento que C++

Tuesday, September 15, 2009

Page 125: Fórum de Software Livre do Serpro RJ 2009

Homepage: 331 ms

Tuesday, September 15, 2009

Page 126: Fórum de Software Livre do Serpro RJ 2009

Homepage: 331 ms

Total: 5.45 sTuesday, September 15, 2009

Page 127: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 128: Fórum de Software Livre do Serpro RJ 2009

Performance!=

Escalabilidade

Tuesday, September 15, 2009

Page 129: Fórum de Software Livre do Serpro RJ 2009

Outros Mitos?

Tuesday, September 15, 2009

Page 130: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 131: Fórum de Software Livre do Serpro RJ 2009

Mais Produtivo

“Melhor”

Anti-legadoTuesday, September 15, 2009

Page 132: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 133: Fórum de Software Livre do Serpro RJ 2009

Agilidade

Tuesday, September 15, 2009

Page 134: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 135: Fórum de Software Livre do Serpro RJ 2009

Robert C. Martin

Tuesday, September 15, 2009

Page 136: Fórum de Software Livre do Serpro RJ 2009

“Uncle Bob”

Tuesday, September 15, 2009

Page 137: Fórum de Software Livre do Serpro RJ 2009

Código Limpo

Tuesday, September 15, 2009

Page 138: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 139: Fórum de Software Livre do Serpro RJ 2009

Test Driven Development

Tuesday, September 15, 2009

Page 140: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 141: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 142: Fórum de Software Livre do Serpro RJ 2009

Funcionalidade: Adição Para evitar erros bobos Como um péssimo matemático Eu quero saber como somar dois números Cenário: Adicionar dois números Dado que eu digitei 50 na calculadora E que eu digitei 70 na calculadora Quando eu aperto o botão de soma Então o resultado na calculadora deve ser 120

Tuesday, September 15, 2009

Page 143: Fórum de Software Livre do Serpro RJ 2009

Funcionalidade: Adição Para evitar erros bobos Como um péssimo matemático Eu quero saber como somar dois números Cenário: Adicionar dois números Dado que eu digitei 50 na calculadora E que eu digitei 70 na calculadora Quando eu aperto o botão de soma Então o resultado na calculadora deve ser 120

Tuesday, September 15, 2009

Page 144: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 145: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 146: Fórum de Software Livre do Serpro RJ 2009

Não é mais demorado?

Tuesday, September 15, 2009

Page 147: Fórum de Software Livre do Serpro RJ 2009

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 148: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 149: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 150: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 151: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 152: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 153: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 154: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 155: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 156: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 157: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 158: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 159: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 160: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 161: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 162: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 163: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 164: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 165: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 166: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 167: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 168: Fórum de Software Livre do Serpro RJ 2009

1 2 3 4 5 6 7 8 9 100

17.50

35.00

52.50

70.00

Produtividade

Tempo

“Cowboy” Profissional

Produtividade

Tuesday, September 15, 2009

Page 169: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 170: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 171: Fórum de Software Livre do Serpro RJ 2009

237 Equipes137 Finalizadas

Tuesday, September 15, 2009

Page 172: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 173: Fórum de Software Livre do Serpro RJ 2009

Empreendedorismo

Código e “Forma”

Ciclo de Vida de Projetos

Comunidade Open Source

Tuesday, September 15, 2009

Page 174: Fórum de Software Livre do Serpro RJ 2009

Empreendedorismo

Código e “Forma”

Ciclo de Vida de Projetos

Comunidade Open Source

Tuesday, September 15, 2009

Page 175: Fórum de Software Livre do Serpro RJ 2009

Empreendedorismo

Código e “Forma”

Ciclo de Vida de Projetos

Comunidade Open Source

Tuesday, September 15, 2009

Page 176: Fórum de Software Livre do Serpro RJ 2009

Empreendedorismo

Código e “Forma”

Ciclo de Vida de Projetos

Comunidade Open Source

Tuesday, September 15, 2009

Page 177: Fórum de Software Livre do Serpro RJ 2009

Profissionalismo

Tuesday, September 15, 2009

Page 178: Fórum de Software Livre do Serpro RJ 2009

Tuesday, September 15, 2009

Page 179: Fórum de Software Livre do Serpro RJ 2009

one more thing ...

Tuesday, September 15, 2009

Page 180: Fórum de Software Livre do Serpro RJ 2009

2008Tuesday, September 15, 2009

Page 181: Fórum de Software Livre do Serpro RJ 2009

2008Tuesday, September 15, 2009

Page 182: Fórum de Software Livre do Serpro RJ 2009

13 e 14Outubro

2009Tuesday, September 15, 2009

Page 183: Fórum de Software Livre do Serpro RJ 2009

Obrigado!akitaonrails.com

railssummit.com.br

Tuesday, September 15, 2009