Minicurso Ruby on Rails Dextra

1.413 visualizações

Publicada em

Minicurso de Ruby on Rails oferecido pela Dextra Sistemas.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

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?

×