Desenvolvimento Ágil com Ruby on Rails segunda-feira, 29 de abril de 13
http://bit.ly/agile-webdev-rails segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
"Programmers should always be interested in learning new languages, preferably from an unfamiliar paradigm" "97Things Every Programmer Should Know" segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
Ruby on Rails é um framework em Ruby segunda-feira, 29 de abril de 13
https://www.ruby-toolbox.com/categories/web_app_frameworks Sinatra, Padrino, Merb, Espresso segunda-feira, 29 de abril de 13
Conhecendo um pouco de Ruby segunda-feira, 29 de abril de 13
Ruby From Other Languages http://bit.ly/ruby-from-other segunda-feira, 29 de abril de 13
Interpretado #app.rb puts “Meet2Brains” $ ruby app.rb Meet2Brains segunda-feira, 29 de abril de 13
Uso de Blocos my_list = [1,2,3,4,5] my_list.each do |item| # deal with item end segunda-feira, 29 de abril de 13
Tudo tem valor x = 10 y = 11 z = if x < y 1 else 2 end z # => 1 segunda-feira, 29 de abril de 13
Tudo é objeto 10.times{ |n| puts n } segunda-feira, 29 de abril de 13
Tudo é objeto 10.times{ |n| puts n } 10.class => Fixnum segunda-feira, 29 de abril de 13
Tudo é objeto 10.times{ |n| puts n } 10.class => Fixnum Fixnum.class => Class segunda-feira, 29 de abril de 13
Tudo é objeto 10.times{ |n| puts n } 10.class => Fixnum Fixnum.class => Class Fixnum.ancestors => [Fixnum, Integer, Numeric, Comparable, Object, Kernel, BasicObject] segunda-feira, 29 de abril de 13
# This 1 + 2 # Is the same as this ... 1.+(2) # Which is the same as this: 1.send "+", 2 segunda-feira, 29 de abril de 13
# This 1 + 2 # Is the same as this ... 1.+(2) # Which is the same as this: 1.send "+", 2 segunda-feira, 29 de abril de 13
Metaprogramação segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
class Car def inspect “Cheap car” end end segunda-feira, 29 de abril de 13
class Car def inspect “Cheap car” end end other_car = Car.new other_car.inspect # => “Cheap car” segunda-feira, 29 de abril de 13
class Car def inspect “Cheap car” end end other_car = Car.new other_car.inspect # => “Cheap car” segunda-feira, 29 de abril de 13
class Car def inspect “Cheap car” end end porsche = Car.new porsche.inspect # => “Cheap car” def porsche.inspect “Expensive car” end porsche.inspect # => “Expensive car” other_car = Car.new other_car.inspect # => “Cheap car” segunda-feira, 29 de abril de 13
class Car def inspect “Cheap car” end end porsche = Car.new porsche.inspect # => “Cheap car” def porsche.inspect “Expensive car” end porsche.inspect # => “Expensive car” other_car = Car.new other_car.inspect # => “Cheap car” segunda-feira, 29 de abril de 13
class Fixnum def hours self * 3600 # number of seconds/hour end alias hour hours end # 14 hours from 00:00 January 1st Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00 segunda-feira, 29 de abril de 13
class Fixnum def hours self * 3600 # number of seconds/hour end alias hour hours end # 14 hours from 00:00 January 1st Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00 Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00 segunda-feira, 29 de abril de 13
class Fixnum def hours self * 3600 # number of seconds/hour end alias hour hours end # 14 hours from 00:00 January 1st Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00 Time.mktime(2006, 01, 01) + 14.hours # => Sun Jan 01 14:00:00 segunda-feira, 29 de abril de 13
Time.now + 2.days # => 2013-05-01 12:40:57 -0300 #Rails segunda-feira, 29 de abril de 13
Time.now + 2.days # => 2013-05-01 12:40:57 -0300 #Rails segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
Dica? segunda-feira, 29 de abril de 13
http://tryruby.org segunda-feira, 29 de abril de 13
RubyGems segunda-feira, 29 de abril de 13
Software Package segunda-feira, 29 de abril de 13
Autenticação Paginação Imagens Tasks Filas... segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13
$ gem install rails segunda-feira, 29 de abril de 13
$ gem install rails segunda-feira, 29 de abril de 13
Ruby on Rails segunda-feira, 29 de abril de 13
Agil segunda-feira, 29 de abril de 13
MVC segunda-feira, 29 de abril de 13
Rails Philosophy segunda-feira, 29 de abril de 13
Don’t Repeat Yourself (DRY) segunda-feira, 29 de abril de 13
Layouts, Views, Partials segunda-feira, 29 de abril de 13
Layouts, Views, Partials # application.html.erb <html> <body> <%= yield %> </body> </html segunda-feira, 29 de abril de 13
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
Helpers FORMS, TAGS, HTML BLOCKS, SUPPORT, FORMATS, ... segunda-feira, 29 de abril de 13
Helpers FORMS, 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
Model - Scope segunda-feira, 29 de abril de 13
Model - Scope @published = Post.where(published: true) segunda-feira, 29 de abril de 13
Model - Scope @published = Post.where(published: true) class Post < ActiveRecord::Base scope :published, where(published: true) end segunda-feira, 29 de abril de 13
Model - Scope @published = Post.where(published: true) class Post < ActiveRecord::Base scope :published, where(published: true) end @published = Post.published segunda-feira, 29 de abril de 13
Convention over Configuration (CoC) segunda-feira, 29 de abril de 13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #config/routes.rb resources :posts #app/controllers/posts_controller.rb class PostsController < ApplicationController def index @posts = Post.published end # ... 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
RESTful segunda-feira, 29 de abril de 13
resources  :photos segunda-feira, 29 de abril de 13
Migrations Migrations are a convenient way for you to alter your database in a structured and organized manner segunda-feira, 29 de abril de 13
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   end end segunda-feira, 29 de abril de 13
Testes TDD, BDD segunda-feira, 29 de abril de 13
Extensível Autenticaçã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
Quem usa? segunda-feira, 29 de abril de 13
www.adena.com.br segunda-feira, 29 de abril de 13
http://rubyonrails.org/applications segunda-feira, 29 de abril de 13
Referências http://bit.ly/ZV7NLZ segunda-feira, 29 de abril de 13
segunda-feira, 29 de abril de 13

Desenvolvimento Ágil com Ruby on Rails