Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rapid Prototyping with Rails            isn’t           Rapid
Rapid Prototyping with Rails            isn’t       Collaborative
Rapid Prototyping with Rails           isn’t           Easy
$ rails new protoypeapp
$ rails generate scaffold ...
Models and Controllers
Architecting =/= Prototyping
$ vi config/database.yml
$ mysql -uroot
NO
A database shouldn’t berequired to brainstorm         ideas
Don’t even get mestarted on migrations
Only RailsProgrammers can   contribute
Prototyping should be     All inclusive
$ serve create app
$ serve create app -j jquery # Works with jquery jquery-ui Prototype etc.
app/    |    +--   config.ru    +--   public/                 # Directories for static assets    |      +-- stylesheets/  ...
No ModelsNo ControllersAll views
No Routes Either
View folders    areYour Routes
All the simplicity of  circa 2004 PHP
View Helpersmake it modern
$ gem install factory_girl
$ gem install faker
$ gem install factory_girl_extensions
# views/view_helper.rbFactoryGirl.define do  factory :user do    first_name Faker::Name.first_name #=> John    last_name F...
# views/view_helper.rbclass Numeric   def of &block     Array.new(to_i).map &block   endend@users = 50.of.User.build      ...
# /config.ru     Serve is a Rack app!
$ curl get.pow.cx | sh
$ cd ~/.pow$ ln -s /path/to/myapp
http://myapp.dev/
But, wait
Alt-⌘ + ⌘Rtakes too long!
Guard
Guard$ gem install guard
Guard$ gem install guard-livereload
GuardLiveReload refreshes the  browser so you don’t        have to
GuardAvailable for Windows, Mac, Linux                on   Firefox, Chrome and Safari github.com/mockko/livereload
Guard$ guard init livereload
Guard# /Guardfileguard livereload do  watch(%r{views/.+.(erb|haml|html)})  watch(%r{views/helpers_.rb})  watch(%r{public/....
Serve projects are rack apps             so    Heroku likes them
Front-End/Designer’s    Perspective
Rails is a tool forbackend developers
Design in the Browser
Contribute more than    sliced PSDs
Command-line isbecoming expected asskill for front-end devs
Git isn’t that hard
Github & Heroku          =Great Reasons to Learn
Entreprenurs,Get your ideas done faster and cheaper
Let people who love  HTML do HTML
Let Rubyists wrestle     with Rails
Empower front-end devs          tomake the backend easier
Empower front-end devs           tomake the backend easierbe a part of the process
Thank You
One more thing...
Rails 3 is       aRack Application
Rack::Cascade[Enter Stage Left]
Rack::Cascaderun Rack::Cascade.new([  MyRailsApp::Application,  serve_polished_protoype,  serve_rough_wireframes])
Rack::Cascade   Reuse your mockupsand wireframes
This has beenRapid Prototyping FTW!!!       Emmanuel Mwangi      Senior QA Engineer           SendGrid
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!
Rapid Prototyping FTW!!!
Upcoming SlideShare
Loading in …5
×

Rapid Prototyping FTW!!!

1,237 views

Published on

Using

Published in: Technology
  • Be the first to comment

Rapid Prototyping FTW!!!

  1. 1. Rapid Prototyping with Rails isn’t Rapid
  2. 2. Rapid Prototyping with Rails isn’t Collaborative
  3. 3. Rapid Prototyping with Rails isn’t Easy
  4. 4. $ rails new protoypeapp
  5. 5. $ rails generate scaffold ...
  6. 6. Models and Controllers
  7. 7. Architecting =/= Prototyping
  8. 8. $ vi config/database.yml
  9. 9. $ mysql -uroot
  10. 10. NO
  11. 11. A database shouldn’t berequired to brainstorm ideas
  12. 12. Don’t even get mestarted on migrations
  13. 13. Only RailsProgrammers can contribute
  14. 14. Prototyping should be All inclusive
  15. 15. $ serve create app
  16. 16. $ serve create app -j jquery # Works with jquery jquery-ui Prototype etc.
  17. 17. app/ | +-- config.ru +-- public/ # Directories for static assets | +-- stylesheets/ # Compiled stylesheets | +-- images/ | `-- javascripts/ +-- sass/ # Store Sass source files here | `-- application.sass +-- tmp/ | `-- restart.txt # Needed for Passenger `-- views/ # Store your ERB, Haml, etc. here +-- _layout.html.erb # Example layout +-- hello.html.erb # Example view +-- view_helpers.rb # Example view helpers `-- stan.html # PLAIN HTML ALSO WORKS!
  18. 18. No ModelsNo ControllersAll views
  19. 19. No Routes Either
  20. 20. View folders areYour Routes
  21. 21. All the simplicity of circa 2004 PHP
  22. 22. View Helpersmake it modern
  23. 23. $ gem install factory_girl
  24. 24. $ gem install faker
  25. 25. $ gem install factory_girl_extensions
  26. 26. # views/view_helper.rbFactoryGirl.define do factory :user do first_name Faker::Name.first_name #=> John last_name Faker::Name.last_name #=> Smith endend
  27. 27. # views/view_helper.rbclass Numeric def of &block Array.new(to_i).map &block endend@users = 50.of.User.build Cheap and easy Data Model
  28. 28. # /config.ru Serve is a Rack app!
  29. 29. $ curl get.pow.cx | sh
  30. 30. $ cd ~/.pow$ ln -s /path/to/myapp
  31. 31. http://myapp.dev/
  32. 32. But, wait
  33. 33. Alt-⌘ + ⌘Rtakes too long!
  34. 34. Guard
  35. 35. Guard$ gem install guard
  36. 36. Guard$ gem install guard-livereload
  37. 37. GuardLiveReload refreshes the browser so you don’t have to
  38. 38. GuardAvailable for Windows, Mac, Linux on Firefox, Chrome and Safari github.com/mockko/livereload
  39. 39. Guard$ guard init livereload
  40. 40. Guard# /Guardfileguard livereload do watch(%r{views/.+.(erb|haml|html)}) watch(%r{views/helpers_.rb}) watch(%r{public/.+.(css|js|html)})end
  41. 41. Serve projects are rack apps so Heroku likes them
  42. 42. Front-End/Designer’s Perspective
  43. 43. Rails is a tool forbackend developers
  44. 44. Design in the Browser
  45. 45. Contribute more than sliced PSDs
  46. 46. Command-line isbecoming expected asskill for front-end devs
  47. 47. Git isn’t that hard
  48. 48. Github & Heroku =Great Reasons to Learn
  49. 49. Entreprenurs,Get your ideas done faster and cheaper
  50. 50. Let people who love HTML do HTML
  51. 51. Let Rubyists wrestle with Rails
  52. 52. Empower front-end devs tomake the backend easier
  53. 53. Empower front-end devs tomake the backend easierbe a part of the process
  54. 54. Thank You
  55. 55. One more thing...
  56. 56. Rails 3 is aRack Application
  57. 57. Rack::Cascade[Enter Stage Left]
  58. 58. Rack::Cascaderun Rack::Cascade.new([  MyRailsApp::Application,  serve_polished_protoype, serve_rough_wireframes])
  59. 59. Rack::Cascade Reuse your mockupsand wireframes
  60. 60. This has beenRapid Prototyping FTW!!! Emmanuel Mwangi Senior QA Engineer SendGrid

×