Desenvolvimento Ágil com Ruby on Rails

324 views

Published on

Nesta palestra passaremos uma breve introdução a Ruby e apresentarei como o Ruby on Rails favorece a produtividade no desenvolvimento de aplicações Web.

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

  • Be the first to like this

No Downloads
Views
Total views
324
On SlideShare
0
From Embeds
0
Number of Embeds
75
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento Ágil com Ruby on Rails

  1. 1. DesenvolvimentoÁgil com Ruby onRailssegunda-feira, 29 de abril de 13
  2. 2. http://bit.ly/agile-webdev-railssegunda-feira, 29 de abril de 13
  3. 3. segunda-feira, 29 de abril de 13
  4. 4. segunda-feira, 29 de abril de 13
  5. 5. "Programmers shouldalways be interested inlearning new languages,preferably from anunfamiliar paradigm""97Things Every Programmer Should Know"segunda-feira, 29 de abril de 13
  6. 6. segunda-feira, 29 de abril de 13
  7. 7. Ruby on Rails é umframework em Rubysegunda-feira, 29 de abril de 13
  8. 8. https://www.ruby-toolbox.com/categories/web_app_frameworksSinatra, Padrino,Merb, Espressosegunda-feira, 29 de abril de 13
  9. 9. Conhecendo um poucode Rubysegunda-feira, 29 de abril de 13
  10. 10. Ruby From OtherLanguageshttp://bit.ly/ruby-from-othersegunda-feira, 29 de abril de 13
  11. 11. Interpretado#app.rbputs “Meet2Brains”$ ruby app.rbMeet2Brainssegunda-feira, 29 de abril de 13
  12. 12. Uso de Blocosmy_list = [1,2,3,4,5]my_list.each do |item|# deal with itemendsegunda-feira, 29 de abril de 13
  13. 13. Tudo tem valorx = 10y = 11z = if x < y1else2endz # => 1segunda-feira, 29 de abril de 13
  14. 14. Tudo é objeto10.times{ |n| puts n }segunda-feira, 29 de abril de 13
  15. 15. Tudo é objeto10.times{ |n| puts n }10.class=> Fixnumsegunda-feira, 29 de abril de 13
  16. 16. Tudo é objeto10.times{ |n| puts n }10.class=> FixnumFixnum.class=> Classsegunda-feira, 29 de abril de 13
  17. 17. Tudo é objeto10.times{ |n| puts n }10.class=> FixnumFixnum.class=> ClassFixnum.ancestors=> [Fixnum, Integer, Numeric,Comparable, Object, Kernel,BasicObject]segunda-feira, 29 de abril de 13
  18. 18. # This1 + 2# Is the same as this ...1.+(2)# Which is the same as this:1.send "+", 2segunda-feira, 29 de abril de 13
  19. 19. # This1 + 2# Is the same as this ...1.+(2)# Which is the same as this:1.send "+", 2segunda-feira, 29 de abril de 13
  20. 20. Metaprogramaçãosegunda-feira, 29 de abril de 13
  21. 21. segunda-feira, 29 de abril de 13
  22. 22. class Cardef inspect“Cheap car”endendsegunda-feira, 29 de abril de 13
  23. 23. class Cardef inspect“Cheap car”endendother_car = Car.newother_car.inspect # => “Cheap car”segunda-feira, 29 de abril de 13
  24. 24. class Cardef inspect“Cheap car”endendother_car = Car.newother_car.inspect # => “Cheap car”segunda-feira, 29 de abril de 13
  25. 25. class Cardef inspect“Cheap car”endendporsche = Car.newporsche.inspect # => “Cheap car”def porsche.inspect“Expensive car”endporsche.inspect # => “Expensive car”other_car = Car.newother_car.inspect # => “Cheap car”segunda-feira, 29 de abril de 13
  26. 26. class Cardef inspect“Cheap car”endendporsche = Car.newporsche.inspect # => “Cheap car”def porsche.inspect“Expensive car”endporsche.inspect # => “Expensive car”other_car = Car.newother_car.inspect # => “Cheap car”segunda-feira, 29 de abril de 13
  27. 27. class Fixnumdef hoursself * 3600 # number of seconds/hourendalias hour hoursend# 14 hours from 00:00 January 1stTime.mktime(2006, 01, 01) + 14.hours# => Sun Jan 01 14:00:00segunda-feira, 29 de abril de 13
  28. 28. class Fixnumdef hoursself * 3600 # number of seconds/hourendalias hour hoursend# 14 hours from 00:00 January 1stTime.mktime(2006, 01, 01) + 14.hours# => Sun Jan 01 14:00:00Time.mktime(2006, 01, 01) + 14.hours# => Sun Jan 01 14:00:00segunda-feira, 29 de abril de 13
  29. 29. class Fixnumdef hoursself * 3600 # number of seconds/hourendalias hour hoursend# 14 hours from 00:00 January 1stTime.mktime(2006, 01, 01) + 14.hours# => Sun Jan 01 14:00:00Time.mktime(2006, 01, 01) + 14.hours# => Sun Jan 01 14:00:00segunda-feira, 29 de abril de 13
  30. 30. Time.now + 2.days# => 2013-05-01 12:40:57 -0300#Railssegunda-feira, 29 de abril de 13
  31. 31. Time.now + 2.days# => 2013-05-01 12:40:57 -0300#Railssegunda-feira, 29 de abril de 13
  32. 32. segunda-feira, 29 de abril de 13
  33. 33. Dica?segunda-feira, 29 de abril de 13
  34. 34. http://tryruby.orgsegunda-feira, 29 de abril de 13
  35. 35. RubyGemssegunda-feira, 29 de abril de 13
  36. 36. Software Packagesegunda-feira, 29 de abril de 13
  37. 37. AutenticaçãoPaginaçãoImagensTasksFilas...segunda-feira, 29 de abril de 13
  38. 38. segunda-feira, 29 de abril de 13
  39. 39. $ gem install railssegunda-feira, 29 de abril de 13
  40. 40. $ gem install railssegunda-feira, 29 de abril de 13
  41. 41. Ruby on Railssegunda-feira, 29 de abril de 13
  42. 42. Agilsegunda-feira, 29 de abril de 13
  43. 43. MVCsegunda-feira, 29 de abril de 13
  44. 44. Rails Philosophysegunda-feira, 29 de abril de 13
  45. 45. Don’t Repeat Yourself(DRY)segunda-feira, 29 de abril de 13
  46. 46. Layouts, Views, Partialssegunda-feira, 29 de abril de 13
  47. 47. Layouts, Views, Partials# application.html.erb<html><body><%= yield %></body></htmlsegunda-feira, 29 de abril de 13
  48. 48. Layouts, Views, Partials# application.html.erb<html><body><%= yield %></body></html# clientes/index.html.erb<h1>Clientes</h1><table>...</table>segunda-feira, 29 de abril de 13
  49. 49. HelpersFORMS, TAGS, HTML BLOCKS, SUPPORT,FORMATS, ...segunda-feira, 29 de abril de 13
  50. 50. HelpersFORMS, TAGS, HTML BLOCKS, SUPPORT,FORMATS, ...<%= form_for @article do |f| %><%= f.text_field :title %><%= f.text_area :body, size: "60x12" %><%= f.submit "Create" %><% end %>segunda-feira, 29 de abril de 13
  51. 51. Model - Scopesegunda-feira, 29 de abril de 13
  52. 52. Model - Scope@published = Post.where(published: true)segunda-feira, 29 de abril de 13
  53. 53. Model - Scope@published = Post.where(published: true)class Post < ActiveRecord::Basescope :published, where(published: true)endsegunda-feira, 29 de abril de 13
  54. 54. Model - Scope@published = Post.where(published: true)class Post < ActiveRecord::Basescope :published, where(published: true)end@published = Post.publishedsegunda-feira, 29 de abril de 13
  55. 55. Convention overConfiguration (CoC)segunda-feira, 29 de abril de 13
  56. 56. 123456789101112131415161718192021#config/routes.rbresources :posts#app/controllers/posts_controller.rbclass PostsController < ApplicationControllerdef index@posts = Post.publishedend# ...end#app/views/posts/index.html.erb<h1>Posts</h1><ul><%= render @posts %></ul>#app/views/posts/_post.html.erb<li><%= post.title %></li>segunda-feira, 29 de abril de 13
  57. 57. RESTfulsegunda-feira, 29 de abril de 13
  58. 58. resources  :photossegunda-feira, 29 de abril de 13
  59. 59. MigrationsMigrations are a convenient way for you toalter your database in a structured andorganized mannersegunda-feira, 29 de abril de 13
  60. 60. class CreateProducts < ActiveRecord::Migration  def up    create_table :products do |t|      t.string :name      t.text :description       t.timestamps    end  end   def down    drop_table :products  endendsegunda-feira, 29 de abril de 13
  61. 61. TestesTDD, BDDsegunda-feira, 29 de abril de 13
  62. 62. ExtensívelAutenticação, paginação, manipulação/upload de imagens,webservice, privilégios, pdf, csv, xml, json, filas,monitoramento, database drivers, ...segunda-feira, 29 de abril de 13
  63. 63. Quem usa?segunda-feira, 29 de abril de 13
  64. 64. www.adena.com.brsegunda-feira, 29 de abril de 13
  65. 65. http://rubyonrails.org/applicationssegunda-feira, 29 de abril de 13
  66. 66. Referênciashttp://bit.ly/ZV7NLZsegunda-feira, 29 de abril de 13
  67. 67. segunda-feira, 29 de abril de 13

×