Oficial

516 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
516
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Oficial

  1. 1. Mini-Curso de RubyOnRails Régis Eduardo Weizenmann Gregol [email_address]
  2. 2. “ Um desenvolvedor não é um político, não é um religioso. Fazer afirmações com desconhecimento de causa é um atestado de ignorância” Fábio Akita. Repensando a Web com Rails (2006). 
  3. 3. Ruby != Rails
  4. 5. A Linguagem Criada pelo japonês Yukihiro Matsumoto ou “Matz” em 1995; Dinâmica e interpretada; Influenciada por Perl, Lips e SmallTalk; Em Ruby, tudo é objeto; Todas as classes extend de Object;
  5. 6. A Linguagem Métodos retornam valor: puts “Hello World” => nil Operação é método: eql, exists, extend
  6. 7. Características <ul><li>Tipos básicos: </li></ul><ul><ul><li>Numeric; </li></ul></ul><ul><ul><li>String; </li></ul></ul><ul><ul><li>Symbol; </li></ul></ul><ul><ul><li>Array; </li></ul></ul><ul><ul><li>Hash; </li></ul></ul>
  7. 8. Variáveis <ul><li>Locais: </li></ul><ul><ul><li>variavel = 1 </li></ul></ul><ul><li>Instanciadas: </li></ul><ul><ul><li>@variavel = “Ruby” </li></ul></ul><ul><li>Classe: </li></ul><ul><ul><li>@@classe = Classe (static do Java) </li></ul></ul><ul><li>Globais: </li></ul><ul><ul><li>$variavel = 900 </li></ul></ul>
  8. 9. Comparando <ul><li>public double soma(double a, double b){ </li></ul><ul><ul><li>return a+b; </li></ul></ul><ul><li>} </li></ul><ul><li>def soma a,b </li></ul><ul><ul><li>a+b </li></ul></ul><ul><li>end </li></ul>
  9. 10. Instalando o Ruby Windows: http://rubyforge.org/projects/rubyinstaller Linux: sudo apt-get install ruby-full Mac OS: sudo gem update --system
  10. 11. Instalando o Rails Windows: gem install rails Linux: sudo gem install rails Observação: gem install rails –v=3 sudo gem install rails –v=2.2.2
  11. 12. Instalando Banco de Dados Windows SQlite3: http://www.sqlite.org/download.html C:system32 dll MySQL: http://dev.mysql.com/downloads/ Linux: sudo apt-get install mysql-server
  12. 13. O framework Surgiu em 2004, criado por Dave Thomas DRY que significa Don't Repeat Yourself Scaffold (CRUD)
  13. 14. O framework Arquitetura M-V-C
  14. 15. O framework Ou meta-framework Composto por: ActiveSupport ActiveRecord ActionPack ActionMailer ActiveResource
  15. 16. ActiveSupport Framework que contém coleções de diversas classes; Extensões de bibliotecas consideradas úteis para uma aplicação em Ruby On Rails
  16. 17. ActiveRecord Considerado um framework que contém uma camada de mapeamento objeto-relacional, entre a aplicação e o banco de dados
  17. 18. ActionPack Framework HTML, XML, Javascripts, e controle de regras de negócio
  18. 19. ActionMailer Framework de recebimento de emails, capaz de realizar diversas operações apenas com chamadas de entregas de correspondência
  19. 20. ActiveResource <ul><li>RESTful; </li></ul><ul><ul><li>Em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE. </li></ul></ul>
  20. 21. Servidores e Banco de Dados WEBrick Mongrel Sqlite3 MySQL Oracle PostgreSQL
  21. 22. Scripts About: Informação sobre versão e componentes Console: Console com o ambiente da aplicação Dbconsole: Console padrão do banco de dados Destroy: Remove código gerado
  22. 23. Generate: Gera o código de uma aplicação Plugin: Instalar/Desinstalar plugins Runner: Automatizar tarefas da aplicação Server Inicia o servidor de aplicação Scripts
  23. 24. Boas Práticas
  24. 25. Boas Práticas Convenções Modelos gordos Controllers magros Nomes de classes em inglês: Ex: Cliente = Customer; Tabelas são classes no plural: Ex: Classe “Customer” Tabela “customers” Chave primária é por convenção: Ex: nome_class_id = customers_id
  25. 26. Criando um Projeto rails new Projeto_Meditec –d mysql rails new 'nome do projeto' –d (de database) banco de dados
  26. 27. Estrutura Projeto
  27. 28. Estrutura Projeto app: Onde fica os Controllers, Telas e Modelos config: configurações da aplicação, banco, etc db: guarda as migrações, esquemas e arquivos do banco doc: documentação lib : arquivos de biblioteca log: os logs do servidor rails public: arquivos externos (css, js, imagens)
  28. 29. Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto script: scripts do rails (rails g, rails s) test: arquivos de teste unitário, funcional tmp: arquivos temporários do servidor, informações de sessão, cache, migrações, esquemas e arquivos do banco vendor: onde vai os plugins para a app Gemfile : diretório onde é requerida as gems
  29. 30. Gerando um Controller rails generate controller Customer index new show edit create update destroy
  30. 31. Gerando um Modelo rails generate model Customer
  31. 32. Gerando um Scaffold rails generate scaffold Customer name:string rg:string cpf:string
  32. 33. Relacionamentos has_many (muitos pra um) Ex: has_many :contacts belongs_to (um pra muitos) ou (pertence à) Ex: belongs_to :customers has_and_belongs_to_many (muitos p/ muitos) Ex: has_and_belongs_to_many :products Ex: has_and_belongs_to_many :characteristics has_one (um p/ um) Ex: has_one :contacts Ex: belongs_to :customers
  33. 34. Migrations Executadas em sequencial; Desenvolvedor é responsável; 2 tarefas sempre: Realizar alteração, ex: add_column(:customers, :email, :string); Desfazer alteração, ex: remove_column(:email);
  34. 35. Rake Rake db:create Comando para criar a base de dados Rake db:migrate Comando para migrar a base de dados Rake db:destroy Comando para destruir a base de dados
  35. 36. Partials <%= render :partial => &quot;contacts&quot; %>
  36. 37. Form_Helpers Abaixo, uma lista dos FormHelpers disponíveis: check_box fields_for file_field form_for hidden_field label password_field radio_button text_area text_field E uma lista dos FormTagHelpers: check_box_tag field_set_tag file_field_tag form_tag hidden_field_tag image_submit_tag password_field_tag radio_button_tag select_tag submit_tag text_area_tag text_
  37. 38. Link_to :method => :delete :method => :put Métodos HTTP: :confirm => “Tem certeza?”
  38. 39. Select
  39. 40. Datas <%= f.date_select :data_de_nascimento %> <%= f.date_select :data_de_nascimento, :start_year => 1970 %>
  40. 41. Validações validates_presence_of validates_uniqueness_of validates_format_of :email, :with => /^[wd]+$/ :on => :create, :message => &quot;e-mail inválido&quot;
  41. 42. Mensagens de Erro
  42. 43. Form e Form_Builder <% form_for(@customer) do |f| %> { blocos de código; } <% end %> <% f.fields_for :contacts do |builder| %> { blocos de código; } <% end %>
  43. 44. Recomendações Akita on Rails Carlos Brando => Nome do Jogo Google Groups => rails-br flails.serviceweb.com
  44. 45. Curiosidades
  45. 46. Agradecimentos Régis Eduardo Weizenmann Gregol [email_address] https://sites.google.com/site/regiseduardogregol/ http://www.r2rails.com.br/

×