0
Ruby On Rails                               na prática                            Lukas AlexandreSaturday, January 19, 13
O que é?                           Framework;                           Open Source;                           Full stack;...
Overview                           Ruby é uma linguagem de programação;                           Rails é um framework que...
Filosofia do Rails                           Convention Over Configuration;                           Don’t Repeat Yourself ...
Arquitetura do Rails                           Aplicações Rails usam Model-View-Controller                           (MVC)...
E o Ruby?                           É uma linguagem interpretada;                           É extremamente orientada a obj...
RSS Reader - Criando                           gem install rails                           rails new rss_reader           ...
Estrutura de diretórios                       /app                           /controllers                           /helpe...
Estrutura de diretórios                       /config         /log                       /db            /public            ...
Modos de execução                           Desenvolvimento (development)                           Teste (test)          ...
Welcome Aboard - E agora?                       No terminal:                              rails generate scaffold feed nam...
Res...what?? Restful!                           Index - Listagem dos recursos                           Show - Detalhes do...
Verbalizando a Web                               (http verbs)                           Get                           Post...
Rotas...hã?                           http://localhost:3000/feeds/hello_world                           http://localhost:3...
Armazenando os dados                       config/database.yml                       development:                          ...
Models, o que são e para                        onde vão?                       class Feed < ActiveRecord::Base           ...
Migrations                           Ficam em db/migrations;                           Versionamento do banco;            ...
Como se parecem:                       class CreateFeeds < ActiveRecord::Migration                         def change     ...
E as Views?!                       app/views/feeds/index.html.erb                       <% @feeds.each do |feed| %>       ...
Convention over Configuration                           O model de Feed “automagicamente” procura                          ...
Feed sem nome??                             Validações nele!                       validates_presence_of                  ...
E como ficaria?                       class Feed < ActiveRecord::Base                         attr_accessible :name        ...
E os itens do feed?                       rails generate scaffold feed_item                       feed:references title:st...
Associations...a rede social                            dos models                           has_one                      ...
E no nosso caso?                       class FeedItem < ActiveRecord::Base                         belongs_to :feed       ...
Mostrando itens por feed                       app/views/feeds/show.html.erb                       <section>              ...
Mergulhando no                                ActiveRecord                           Querys SQL complexas;                ...
Porque Rails?                           Resolve 90% dos problemas;                           Foco no negócio;             ...
Porque Ruby?                           Intuitiva;                           POUCO verbosa;                           Extre...
Ferramentas de trabalho                           Sublime Text 2 / VIM;                           Total Terminal;         ...
Contato                           pessoal: lukasalexandre@me.com                           profissional: lukas@codelogic.me...
Perguntas?Saturday, January 19, 13
Obrigado!Saturday, January 19, 13
Referências                           guides.rubyonrails.org                           Agile Web Development with RailsSat...
Upcoming SlideShare
Loading in...5
×

Introdução Ruby On Rails

416

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
416
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Introdução Ruby On Rails"

  1. 1. Ruby On Rails na prática Lukas AlexandreSaturday, January 19, 13
  2. 2. O que é? Framework; Open Source; Full stack; Focado em Apps com base de dados; MVC - Model / View / Controller;Saturday, January 19, 13
  3. 3. Overview Ruby é uma linguagem de programação; Rails é um framework que provê infraestrutura web; Rails é escrito em Ruby;Saturday, January 19, 13
  4. 4. Filosofia do Rails Convention Over Configuration; Don’t Repeat Yourself - DRY; Rails tem opiniões fortes;Saturday, January 19, 13
  5. 5. Arquitetura do Rails Aplicações Rails usam Model-View-Controller (MVC); Model - ActiveRecord; View - ActionView; Controller - ActionController;Saturday, January 19, 13
  6. 6. E o Ruby? É uma linguagem interpretada; É extremamente orientada a objetos; TUDO é um objeto; Vem de Perl, Smalltalk e Lisp;Saturday, January 19, 13
  7. 7. RSS Reader - Criando gem install rails rails new rss_reader cd rss_reader rails server http://localhost:3000 Welcome Aboard!!!Saturday, January 19, 13
  8. 8. Estrutura de diretórios /app /controllers /helpers /models /views/nome_do_controllerSaturday, January 19, 13
  9. 9. Estrutura de diretórios /config /log /db /public /doc /test /lib /tmpSaturday, January 19, 13
  10. 10. Modos de execução Desenvolvimento (development) Teste (test) Produção (production)Saturday, January 19, 13
  11. 11. Welcome Aboard - E agora? No terminal: rails generate scaffold feed name:string rake db:migrate rm public/index.html routes.rb root :to => feeds#indexSaturday, January 19, 13
  12. 12. Res...what?? Restful! Index - Listagem dos recursos Show - Detalhes do recurso New - Preenchendo um novo recurso Create - Criando um novo recurso Edit - Preenchendo os dados de um recurso existente Update - Atualizando um recurso Destroy - Removendo um recursoSaturday, January 19, 13
  13. 13. Verbalizando a Web (http verbs) Get Post Put DeleteSaturday, January 19, 13
  14. 14. Rotas...hã? http://localhost:3000/feeds/hello_world http://localhost:3000 - endereco e porta do servidor feeds - nome do controlador hello_world - nome da ação (método no controller)Saturday, January 19, 13
  15. 15. Armazenando os dados config/database.yml development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000Saturday, January 19, 13
  16. 16. Models, o que são e para onde vão? class Feed < ActiveRecord::Base attr_accessible :name end Negociar; Representar;Saturday, January 19, 13
  17. 17. Migrations Ficam em db/migrations; Versionamento do banco; Devem ser criadas a cada alteração da estrutura de dados; Esqueleto do banco (schema.rb); Reversíveis;Saturday, January 19, 13
  18. 18. Como se parecem: class CreateFeeds < ActiveRecord::Migration def change create_table :feeds do |t| t.string :name t.timestamps end end endSaturday, January 19, 13
  19. 19. E as Views?! app/views/feeds/index.html.erb <% @feeds.each do |feed| %> <tr> <td><%= feed.name %></td> <td><%= link_to Show, feed %></td> <td><%= link_to Edit, edit_feed_path(feed) %></td> <td><%= link_to Destroy, feed, method: :delete, data: { confirm: Are you sure? } %></td> </tr> <% end %>Saturday, January 19, 13
  20. 20. Convention over Configuration O model de Feed “automagicamente” procura por uma tabela em seu plural; O controller “automagicamente” acha e renderiza as views corretas usando seu nome e ação executada (views/feeds/index.html);Saturday, January 19, 13
  21. 21. Feed sem nome?? Validações nele! validates_presence_of validates_length_of validates_acceptance_of validates_uniqueness_of validates_format_of validates_numericality_of validates_inclusion_in validates_exclusion_of Entre outros...Saturday, January 19, 13
  22. 22. E como ficaria? class Feed < ActiveRecord::Base attr_accessible :name validates_presence_of :name endSaturday, January 19, 13
  23. 23. E os itens do feed? rails generate scaffold feed_item feed:references title:string content:text rake db:migrateSaturday, January 19, 13
  24. 24. Associations...a rede social dos models has_one belongs_to has_many has_and_belongs_to_many has_many :model1, :through => :model2 has_one :model1, :through => :model2Saturday, January 19, 13
  25. 25. E no nosso caso? class FeedItem < ActiveRecord::Base belongs_to :feed attr_accessible :content, :title end class Feed < ActiveRecord::Base has_many :feed_items ... endSaturday, January 19, 13
  26. 26. Mostrando itens por feed app/views/feeds/show.html.erb <section> <% @feed.feed_items.each do |feed_item| %> <article> <header> <h1><%= feed_item.title %></h1> </header> <p> <%= feed_item.content %> </p> </article> <% end -%> </section>Saturday, January 19, 13
  27. 27. Mergulhando no ActiveRecord Querys SQL complexas; Join Left Join Agrupando; Ordenando;Saturday, January 19, 13
  28. 28. Porque Rails? Resolve 90% dos problemas; Foco no negócio; Ecossistema gigantesco; Comunidade receptiva; Ready to go;Saturday, January 19, 13
  29. 29. Porque Ruby? Intuitiva; POUCO verbosa; Extremamente dinâmica; Gostosa de escrever;Saturday, January 19, 13
  30. 30. Ferramentas de trabalho Sublime Text 2 / VIM; Total Terminal; Patterns (Regex); Kindle (armado até os dentes!);Saturday, January 19, 13
  31. 31. Contato pessoal: lukasalexandre@me.com profissional: lukas@codelogic.me http://github.com/lukasalexandreSaturday, January 19, 13
  32. 32. Perguntas?Saturday, January 19, 13
  33. 33. Obrigado!Saturday, January 19, 13
  34. 34. Referências guides.rubyonrails.org Agile Web Development with RailsSaturday, January 19, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×