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.

Minicurso Ruby on Rails Dextra

1,437 views

Published on

Minicurso de Ruby on Rails oferecido pela Dextra Sistemas.

Published in: Technology
  • Be the first to comment

Minicurso Ruby on Rails Dextra

  1. 1. Soluções de Software Sistemas e aplicações sob medida para as necessidades do seu negócio. Ruby On Rails
  2. 2. A Dextra <ul><li>Fundada em 1995, sede no Polo de Tecnologia de Campinas
  3. 3. Unidades em São Paulo e Campo Grande/MS
  4. 4. Profissionais altamente qualificados, formados em universidades e centros de pesquisa de primeira linha
  5. 5. Foco em soluções de software sob medida
  6. 6. Reconhecida no mercado pela complexidade e resultados dos projetos executados
  7. 7. Certificada MPS.BR, em processo CMMi 2
  8. 8. Eleita em 2010 como a 34 a Melhor Empresa de TI para Trabalhar – pesquisa “Great Place To Work” </li></ul>
  9. 9. Alguns clientes
  10. 10. Quem sou eu? <ul><li>Fernando Ultremare
  11. 11. Gerente de Projetos
  12. 12. Desenvolvedor
  13. 13. Interassado em métodos ágeis, ambientes colaborativos, pragmáticos e criativos: desenvolvimento web, ... </li></ul>
  14. 14. Ruby - Iniciando <ul><li>Yukihiro Matsumoto (Matz), 1994
  15. 15. Orientada a Objetos
  16. 16. Perl, Python e SmallTalk
  17. 17. Interpretada
  18. 18. Tipagem dinâmica e forte
  19. 19. Disponível para diversas plataformas, como Microsoft Windows, Linux, Solaris e Mac OS X. </li></ul>
  20. 20. <ul>Variáveis </ul><ul><li>Todas as variáveis são objetos
  21. 21. Tipagem dinâmica
  22. 22. Tipagem forte </li></ul>
  23. 23. Escopo das variáveis <ul><li>Variáveis locais </li><ul><li>Definidas dentro de um método
  24. 24. Visível apenas dentro do método
  25. 25. Devem começar com letras minúsculas ou com “_” </li></ul><li>Variáveis globais </li><ul><li>Pode se acessada em qualquer parte do programa
  26. 26. Devem começar com $ </li></ul></ul>
  27. 27. Escopo das variáveis <ul><li>Variáveis de classe </li><ul><li>Representam informações da classe
  28. 28. Devem começar com @@ </li></ul><li>Variáveis de instância </li><ul><li>Implementam os atributos de uma classe
  29. 29. Representam o estado do objeto específico
  30. 30. Devem começar @ </li></ul></ul>
  31. 31. Tipos básicos <ul><li>Todos os tipos são classes, não existe tipo primitivo.
  32. 32. Números </li><ul><li>Inteiro (Fixnum e Bignum)
  33. 33. Ponto flutuante (Float) </li></ul></ul>
  34. 34. Tipos básicos <ul><li>Booleanos (true / false)
  35. 35. Strings </li><ul><li>Qualquer caractere ou conjunto de caracteres
  36. 36. Delimitado por: “ ” ou ' '
  37. 37. Alguns métodos </li><ul><li>+
  38. 38. capitalize
  39. 39. length
  40. 40. downcase
  41. 41. upcase
  42. 42. strip
  43. 43. split </li></ul></ul></ul>
  44. 44. Constantes <ul><li>Começam com letra maiúscula
  45. 45. Podem ter o valor alterado </li></ul>
  46. 46. Arrays <ul><li>Criadas a partir da classe Array
  47. 47. Pode armazenar qualquer tipo de objeto </li><ul><li>['a', 1, [1.2.3], 'teste', true,] </li></ul><li>Instanciação </li><ul><li>var = Array.new
  48. 48. var = [] </li></ul></ul>
  49. 49. Arrays <ul><li>Alguns métodos </li><ul><li>push
  50. 50. <<
  51. 51. pop
  52. 52. select
  53. 53. sort
  54. 54. reverse
  55. 55. insert(index, value) </li></ul></ul>
  56. 56. Hashes <ul><li>Dicionários
  57. 57. {chave => valor, chave => valor}
  58. 58. Métodos </li><ul><li>index(value)
  59. 59. values
  60. 60. keys
  61. 61. has_key?(key)
  62. 62. delete(key)
  63. 63. clear </li></ul></ul>
  64. 64. <ul>Ranges </ul><ul><li>Intervalo sequencial
  65. 65. Pode ser criado de duas maneiras: </li><ul><li>Com 2 pontos -> inclui o último número informado
  66. 66. Com 3 pontos -> exclui o último número informado
  67. 67. Obs.: o método “to_a” converte o range em array </li></ul></ul>
  68. 68. <ul>Blocos de código </ul><ul><li>Trechos de código que são passados como parâmetros para métodos
  69. 69. Delimitadores </li><ul><li>{}
  70. 70. do – end </li></ul></ul>
  71. 71. Símbolos <ul><li>Muito usado
  72. 72. Identificadores
  73. 73. Único em memória
  74. 74. Usam ':' na construção
  75. 75. Exemplo: </li><ul><li>Hash
  76. 76. {:key => value, :key => value} </li></ul></ul>
  77. 77. Operadores <ul><li>Aritméticos </li><ul><li>+, -, /, *
  78. 78. ** (potência) e % (resto da divisão inteira) </li></ul><li>Lógicos </li><ul><li>&& “E” (and)
  79. 79. | | “Ou” (or) lógico </li></ul><li>Igualdade </li><ul><li>==
  80. 80. != </li></ul></ul>
  81. 81. Estruturas de controle <ul><li>Condicionais </li><ul><li>if </li></ul></ul>
  82. 82. Estruturas de controle <ul><li>unless </li><ul><li>Negação do if
  83. 83. “a menos que”
  84. 84. Pode ser escrito em uma linha </li></ul></ul>
  85. 85. Estruturas de controle <ul><li>case </li></ul>
  86. 86. Estruturas de controle <ul><li>Loops </li><ul><li>4 maneiras de iteragir </li><ul><li>break sai do loop completamente
  87. 87. next vai para a próxima iteração
  88. 88. return sai do loop e do método
  89. 89. redo reinicia o loop </li></ul><li>while </li></ul></ul>
  90. 90. Estruturas de controle <ul><li>for
  91. 91. Utiliza coleções para fazer loop </li></ul>
  92. 92. Estruturas de controle <ul><li>until
  93. 93. “faça até que”
  94. 94. begin
  95. 95. Pode ser combinado com while e until </li></ul>
  96. 96. Estruturas de controle <ul><ul><li>loop
  97. 97. “Isso mesmo, um loop chamado loop”
  98. 98. Na verdade, loop é um método definido na Kernel do ruby </li></ul></ul>
  99. 99. Definição de métodos <ul><li>def, end
  100. 100. Sempre retorna o resultado da última expressão
  101. 101. Não precisa definir o tipo de retorno
  102. 102. Pode ter parâmetro com valor padrão
  103. 103. Pode retornar mais de um valor
  104. 104. Exemplos: </li></ul>
  105. 105. Definição de métodos <ul><li>Método que dado um número retorna os números pares até ele </li></ul><ul><li>Método que dado um número retorna os numeros pares e ímpares até ele </li></ul>
  106. 106. Classes <ul><li>Definição </li></ul><ul><li>Instanciação e chamada de métodos </li></ul>
  107. 107. Diversas coisas <ul><li># comentário </li><ul><li>puts “teste” if a ==1 #só imprime se a for igual a um </li></ul><li>Interpolação #{} </li><ul><li>time = “Palmeiras”
  108. 108. puts “O #{time} é o melhor!” </li></ul><li>puts imprime na tela
  109. 109. gets pega o valor digitado
  110. 110. a = gets </li></ul>
  111. 111. Ruby On Rails – O que é? <ul><li>Framework para desenvolvimento de sistemas Web
  112. 112. Criado em 2003 por David Heinemeier Hansson
  113. 113. Lançado em julho de 2004
  114. 114. Desenvolvido com a linguagem Ruby </li></ul>
  115. 115. Características <ul><li>Orientado a objetos
  116. 116. MVC(Model, View, Controller)
  117. 117. DRY(Don't repeat yourself)
  118. 118. Code generator
  119. 119. Convenção sobre configuração </li></ul>
  120. 120. Vantagens <ul><li>Open source
  121. 121. Simples
  122. 122. Baixa curva de aprendizagem
  123. 123. Produtivo
  124. 124. Comunidade ativa </li></ul>
  125. 125. Componentes <ul><li>Action Pack </li><ul><li>Action Controller
  126. 126. Action Dispatch
  127. 127. Action View </li></ul><li>Action Mailer
  128. 128. Active Model
  129. 129. Active Record
  130. 130. Active Resource
  131. 131. Active Support
  132. 132. Railties </li></ul>
  133. 133. Rest
  134. 134. Comandos <ul><li>generate
  135. 135. console
  136. 136. server
  137. 137. dbconsole
  138. 138. new </li></ul>
  139. 139. Criando uma aplicação <ul><li>Comando </li><ul><li>“rails new My_app” </li></ul><li>Configuração de banco de dados </li><ul><li>Arquivo “config/database.yml” </li></ul><li>Criação do banco </li><ul><li>“rake db:create” </li></ul><li>Criação das tabelas </li><ul><li>“rake db:migrate” </li></ul></ul>
  140. 140. Estrutura da aplicação
  141. 141. Scaffold <ul><li>Cria toda a estrutura de um recurso </li><ul><li>CRUD
  142. 142. MVC
  143. 143. Testes
  144. 144. Estrutura da tabela </li></ul><li>Comando </li><ul><li>“rails generate scaffold Foto titulo:string descricao:text” </li></ul></ul>
  145. 145. Associações <ul><li>belongs_to </li></ul>
  146. 146. Associações <ul><li>has_one </li></ul>
  147. 147. Associações <ul><li>has_many </li></ul>
  148. 148. Associações <ul><li>has_many :through </li></ul>
  149. 149. Associações <ul><li>has_one :through </li></ul>
  150. 150. Associações <ul><li>has_and_belongs_to_many </li></ul>
  151. 151. Validações <ul><ul><li>validates_acceptance_of
  152. 152. validates_associated
  153. 153. validates_confirmation_of
  154. 154. validates_exclusion_of
  155. 155. validates_format_of
  156. 156. validates_inclusion_of
  157. 157. validates_length_of
  158. 158. validates_numericality_of
  159. 159. validates_presence_of
  160. 160. validates_uniqueness_of
  161. 161. validates_with
  162. 162. validates_each </li></ul></ul>
  163. 163. Mão na massa
  164. 164. Referências <ul><li>http://www.eustaquiorangel.com/downloads/tutorialruby.pdf
  165. 165. Rails guides </li><ul><li>http://guides.rubyonrails.org/
  166. 166. http://guias.rubyonrails.pro.br/ </li></ul><li>Got Api </li><ul><li>http://www.gotapi.com/rubyrails </li></ul></ul>
  167. 167. Dextra Sistemas www.dextra.com.br [email_address] Twitter: @dextrasistemas @dextracursos Facebook: www.facebook.com/dextrasis Dúvidas?

×