Repensando o Desenvolvimento Web com
                             Ruby on Rails
segunda-feira, 21 de setembro de 2009
Rails


segunda-feira, 21 de setembro de 2009
Comunidade



segunda-feira, 21 de setembro de 2009
Filosofia




segunda-feira, 21 de setembro de 2009
DanteRegis.com
                                             @danteregis

                                        Admin de ...
DanteRegis.com
                                                       @danteregis

                                       ...
Você não vai aprender
                     Ruby 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 Hansson
                                                           2004


segunda-feira, 21 de setembro d...
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...
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-...
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

        ...
Model
                        id: integer

                     name: string
                                        x = P...
Model
                        id: integer

                     name: string
                                        x = P...
Model
                        id: integer

                     name: string
                                        x = P...
Model
                        id: integer

                     name: string
                                        x = P...
Model
                        id: integer

                     name: string
                                        x = P...
Model




segunda-feira, 21 de setembro de 2009
Model



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




segunda-f...
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")

...
Model

      Product.first

      Product.find_all_by_category_id(10)

      Product.find_or_create_by_name("Margarina")

...
Model

      Product.first

      Product.find_all_by_category_id(10)

      Product.find_or_create_by_name("Margarina")

...
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 sete...
Model
                      class Product < ActiveRecord::Base




                      end
segunda-feira, 21 de setembro...
Model
                      class Product < ActiveRecord::Base
                        belongs_to :category




          ...
Model
                      class Product < ActiveRecord::Base
                        belongs_to :category
              ...
Model
                      class Product < ActiveRecord::Base
                        belongs_to :category
              ...
Model
                      class Product < ActiveRecord::Base
                        belongs_to :category
              ...
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 s...
p = Product.first
                          p.category
                          p.category.name = "Mudei o nome"
        ...
has_many



segunda-feira, 21 de setembro de 2009
class Category < ActiveRecord::Base
                       has_many :products
                     end




segunda-feira, ...
cat.products
                                        cat.products.new
                                        cat.products...
named scope



segunda-feira, 21 de setembro de 2009
class Product < ActiveRecord::Base
       named_scope :low_stock, :conditions => ['stock <= 10']
     end




segunda-feir...
segunda-feira, 21 de setembro de 2009
Product.low_stock
                                   #=> [.....]




segunda-feira, 21 de setembro de 2009
Product.low_stock
                                   #=> [.....]

                                   category.products.low...
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
...
class AddQuantityToCartProduct < ActiveRecord::Migration
  def self.up
    add_column :cart_products, :quantity, :integer
...
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 => "...
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_tag
                                        form_for


segunda-feira, 21 de setembro de 2009
<div>
        <span><%= flash[:notice] %></span>
      </div>
      <div>
        <% form_tag do %>
             <p>
     ...
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”


segund...
Comunidade



segunda-feira, 21 de setembro de 2009
RailsConf
                                        http://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://railssumm...
13 e 14 de outubro
                                        Sã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 Rails
                                         http://akitaonrails.com




segunda-feira, 21 de setembro de 2009
Carlos Brando
                                         http://nomedojogo.com




segunda-feira, 21 de setembro de 2009
Ozéias Sant’ana
                                           http://railsbox.org




segunda-feira, 21 de setembro de 2009
Bruno Miranda
                                         http://brunomiranda.com




segunda-feira, 21 de setembro de 2009
Ruby Onda
                                        http://rubyonda.com




segunda-feira, 21 de setembro de 2009
Nando Vieira
                                        http://simplesideias.com.br




segunda-feira, 21 de setembro de 2009
PeepCode
                                        http://peepcode.com




segunda-feira, 21 de setembro de 2009
RailsCasts
                                        http://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
Upcoming SlideShare
Loading in …5
×

[PDF] Repensando o Desenvolvimento Web com Ruby on Rails

1,809 views
1,720 views

Published on

Software Freedom Day. Em PDF

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,809
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
37
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[PDF] Repensando o Desenvolvimento Web com Ruby on Rails

  1. 1. Repensando o Desenvolvimento Web com Ruby on Rails segunda-feira, 21 de setembro de 2009
  2. 2. Rails segunda-feira, 21 de setembro de 2009
  3. 3. Comunidade segunda-feira, 21 de setembro de 2009
  4. 4. Filosofia segunda-feira, 21 de setembro de 2009
  5. 5. DanteRegis.com @danteregis Admin de Redes - TJ/SE segunda-feira, 21 de setembro de 2009
  6. 6. DanteRegis.com @danteregis Admin de Redes - TJ/SE http://slideshare.net/danteregis segunda-feira, 21 de setembro de 2009
  7. 7. Você não vai aprender Ruby on Rails aqui segunda-feira, 21 de setembro de 2009
  8. 8. framework segunda-feira, 21 de setembro de 2009
  9. 9. segunda-feira, 21 de setembro de 2009
  10. 10. David Heinemeier Hansson 2004 segunda-feira, 21 de setembro de 2009
  11. 11. 37signals segunda-feira, 21 de setembro de 2009
  12. 12. 1400+ desenvolvedores segunda-feira, 21 de setembro de 2009
  13. 13. http://rubyonrails.com segunda-feira, 21 de setembro de 2009
  14. 14. 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
  15. 15. Empregos (fonte: indeed.com) segunda-feira, 21 de setembro de 2009
  16. 16. segunda-feira, 21 de setembro de 2009
  17. 17. MVC segunda-feira, 21 de setembro de 2009
  18. 18. opiniated segunda-feira, 21 de setembro de 2009
  19. 19. eXtreme Programming segunda-feira, 21 de setembro de 2009
  20. 20. TDD segunda-feira, 21 de setembro de 2009
  21. 21. REST segunda-feira, 21 de setembro de 2009
  22. 22. modularização segunda-feira, 21 de setembro de 2009
  23. 23. DRY segunda-feira, 21 de setembro de 2009
  24. 24. Convention over Configuration segunda-feira, 21 de setembro de 2009
  25. 25. KISS segunda-feira, 21 de setembro de 2009
  26. 26. segunda-feira, 21 de setembro de 2009
  27. 27. script/console segunda-feira, 21 de setembro de 2009
  28. 28. Model segunda-feira, 21 de setembro de 2009
  29. 29. Model segunda-feira, 21 de setembro de 2009
  30. 30. Model segunda-feira, 21 de setembro de 2009
  31. 31. 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
  32. 32. Model id: integer name: string x = Product.new price: float category_id: integer stock: integer created_at: datetime updated_at: datetime segunda-feira, 21 de setembro de 2009
  33. 33. Model id: integer name: string x = Product.new price: float x.name = "Pão Jacó" category_id: integer stock: integer created_at: datetime updated_at: datetime segunda-feira, 21 de setembro de 2009
  34. 34. Model id: integer name: string x = Product.new price: float x.name = "Pão Jacó" category_id: integer x.stock = "100 stock: integer created_at: datetime updated_at: datetime segunda-feira, 21 de setembro de 2009
  35. 35. Model id: integer name: string x = Product.new price: float x.name = "Pão Jacó" category_id: integer x.stock = "100 stock: integer x.price = 0.15 created_at: datetime updated_at: datetime segunda-feira, 21 de setembro de 2009
  36. 36. Model id: integer name: string x = Product.new price: float x.name = "Pão Jacó" category_id: integer x.stock = "100 stock: integer x.price = 0.15 created_at: datetime x.save updated_at: datetime segunda-feira, 21 de setembro de 2009
  37. 37. Model segunda-feira, 21 de setembro de 2009
  38. 38. Model INSERT INTO `products` COLUMNS (`name`, `price`, `stock`) VALUES ("Pão Jaco", 0.15, 100); segunda-feira, 21 de setembro de 2009
  39. 39. Model segunda-feira, 21 de setembro de 2009
  40. 40. Model Product.first segunda-feira, 21 de setembro de 2009
  41. 41. Model Product.first Product.find_all_by_category_id(10) segunda-feira, 21 de setembro de 2009
  42. 42. Model Product.first Product.find_all_by_category_id(10) Product.find_or_create_by_name("Margarina") segunda-feira, 21 de setembro de 2009
  43. 43. 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
  44. 44. 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
  45. 45. validations segunda-feira, 21 de setembro de 2009
  46. 46. associations segunda-feira, 21 de setembro de 2009
  47. 47. instance methods segunda-feira, 21 de setembro de 2009
  48. 48. Model class Product < ActiveRecord::Base end segunda-feira, 21 de setembro de 2009
  49. 49. Model class Product < ActiveRecord::Base end segunda-feira, 21 de setembro de 2009
  50. 50. Model class Product < ActiveRecord::Base belongs_to :category end segunda-feira, 21 de setembro de 2009
  51. 51. Model class Product < ActiveRecord::Base belongs_to :category validates_presence_of :name end segunda-feira, 21 de setembro de 2009
  52. 52. Model class Product < ActiveRecord::Base belongs_to :category validates_presence_of :name validates_numericality_of :stock end segunda-feira, 21 de setembro de 2009
  53. 53. Model class Product < ActiveRecord::Base belongs_to :category validates_presence_of :name validates_numericality_of :stock def consume! stock -= 1 save end end segunda-feira, 21 de setembro de 2009
  54. 54. segunda-feira, 21 de setembro de 2009
  55. 55. p = Product.new(:stock => "xxxxx") segunda-feira, 21 de setembro de 2009
  56. 56. p = Product.new(:stock => "xxxxx") p.save segunda-feira, 21 de setembro de 2009
  57. 57. p = Product.new(:stock => "xxxxx") p.save #=> false segunda-feira, 21 de setembro de 2009
  58. 58. p = Product.first p.category p.category.name = "Mudei o nome" p.category.save segunda-feira, 21 de setembro de 2009
  59. 59. has_many segunda-feira, 21 de setembro de 2009
  60. 60. class Category < ActiveRecord::Base has_many :products end segunda-feira, 21 de setembro de 2009
  61. 61. cat.products cat.products.new cat.products.first segunda-feira, 21 de setembro de 2009
  62. 62. named scope segunda-feira, 21 de setembro de 2009
  63. 63. class Product < ActiveRecord::Base named_scope :low_stock, :conditions => ['stock <= 10'] end segunda-feira, 21 de setembro de 2009
  64. 64. segunda-feira, 21 de setembro de 2009
  65. 65. Product.low_stock #=> [.....] segunda-feira, 21 de setembro de 2009
  66. 66. Product.low_stock #=> [.....] category.products.low_stock #=> [...] segunda-feira, 21 de setembro de 2009
  67. 67. SQL? segunda-feira, 21 de setembro de 2009
  68. 68. migrations segunda-feira, 21 de setembro de 2009
  69. 69. controle de versão segunda-feira, 21 de setembro de 2009
  70. 70. do banco de dados! segunda-feira, 21 de setembro de 2009
  71. 71. sem SQL! segunda-feira, 21 de setembro de 2009
  72. 72. segunda-feira, 21 de setembro de 2009
  73. 73. class AddQuantityToCartProduct < ActiveRecord::Migration segunda-feira, 21 de setembro de 2009
  74. 74. class AddQuantityToCartProduct < ActiveRecord::Migration def self.up add_column :cart_products, :quantity, :integer end segunda-feira, 21 de setembro de 2009
  75. 75. class AddQuantityToCartProduct < ActiveRecord::Migration def self.up add_column :cart_products, :quantity, :integer end def self.down drop_column :cart_products, :quantity end end segunda-feira, 21 de setembro de 2009
  76. 76. com SQL! segunda-feira, 21 de setembro de 2009
  77. 77. > 90% experiência pessoal segunda-feira, 21 de setembro de 2009
  78. 78. ActionController segunda-feira, 21 de setembro de 2009
  79. 79. session segunda-feira, 21 de setembro de 2009
  80. 80. render segunda-feira, 21 de setembro de 2009
  81. 81. filters segunda-feira, 21 de setembro de 2009
  82. 82. class ApplicationController < ActionController::Base before_filter :check_login def check_login render :text => "acesso negado!" end end segunda-feira, 21 de setembro de 2009
  83. 83. flash segunda-feira, 21 de setembro de 2009
  84. 84. flash[:notice] = "Você logou no sistema" segunda-feira, 21 de setembro de 2009
  85. 85. cookies segunda-feira, 21 de setembro de 2009
  86. 86. respond_to segunda-feira, 21 de setembro de 2009
  87. 87. ActionView segunda-feira, 21 de setembro de 2009
  88. 88. erb segunda-feira, 21 de setembro de 2009
  89. 89. haml segunda-feira, 21 de setembro de 2009
  90. 90. erb segunda-feira, 21 de setembro de 2009
  91. 91. form_tag form_for segunda-feira, 21 de setembro de 2009
  92. 92. <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
  93. 93. Tempo para falar mal de certas “soluções” segunda-feira, 21 de setembro de 2009
  94. 94. Fim do tempo para falar mal de certas “soluções” segunda-feira, 21 de setembro de 2009
  95. 95. Comunidade segunda-feira, 21 de setembro de 2009
  96. 96. RailsConf http://railsconf.com segunda-feira, 21 de setembro de 2009
  97. 97. segunda-feira, 21 de setembro de 2009
  98. 98. segunda-feira, 21 de setembro de 2009
  99. 99. segunda-feira, 21 de setembro de 2009
  100. 100. segunda-feira, 21 de setembro de 2009
  101. 101. segunda-feira, 21 de setembro de 2009
  102. 102. Rails Summit Latin America http://railssummit.com.br segunda-feira, 21 de setembro de 2009
  103. 103. 13 e 14 de outubro São Paulo/SP segunda-feira, 21 de setembro de 2009
  104. 104. Aldo França segunda-feira, 21 de setembro de 2009
  105. 105. Great Blogs ‘n People segunda-feira, 21 de setembro de 2009
  106. 106. Akita on Rails http://akitaonrails.com segunda-feira, 21 de setembro de 2009
  107. 107. Carlos Brando http://nomedojogo.com segunda-feira, 21 de setembro de 2009
  108. 108. Ozéias Sant’ana http://railsbox.org segunda-feira, 21 de setembro de 2009
  109. 109. Bruno Miranda http://brunomiranda.com segunda-feira, 21 de setembro de 2009
  110. 110. Ruby Onda http://rubyonda.com segunda-feira, 21 de setembro de 2009
  111. 111. Nando Vieira http://simplesideias.com.br segunda-feira, 21 de setembro de 2009
  112. 112. PeepCode http://peepcode.com segunda-feira, 21 de setembro de 2009
  113. 113. RailsCasts http://railscasts.com segunda-feira, 21 de setembro de 2009
  114. 114. http://slideshare.net/danteregis segunda-feira, 21 de setembro de 2009
  115. 115. dante@danteregis.com segunda-feira, 21 de setembro de 2009

×