Curso de Ruby e Ruby on Rails

  • View
    1.628

  • Download
    1

Embed Size (px)

DESCRIPTION

Resumo do curso de Ruby e Ruby on Rails que já ministrei em 2009. NOTA: alguns emails e links podem não mais existir :(

Text of Curso de Ruby e Ruby on Rails

  • 1.Ruby-on-Rails Mrio Srgio Coelho Marroquim @mariomarroquim

2. Sobre o curso

  • Curso prtico para formar profissionais para o mercado que possam fazer a diferena e produzirresultados reais
  • Foco na maior demanda do mercado:aplicaes comerciais

3. Sobre as aulas

  • Cada aula se dividir em 3 partes
    • Explicao do assunto
    • Perguntas e respostas
    • Atividades prticas

4. Ruby?

  • Surgiu em 1995
  • Criada por Yukihiro Matsumoto, Matz
  • Linguagem de programao TOTALMENTE orientada a objetos
  • Linguagem de script interpretada
  • Muito utilizada em scripts para as mais diversas finalidades

5. Ruby?

  • Possui sintaxe absurdamente simples
  • totalmente extensvel
  • suficientemente rpido
  • Possui um sistema centralizado para distribuio de bibliotecas ( gems ), oRuby Gems
  • Comunidade grande
  • Muita documentao disponvel

6. Linguagem de programao?

  • Uma linguagem de programao
    • Um conjunto deinstrues de alto nvelque o computador vai ter de executar
    • Uma linguagem mais humana que deve ser convertida em uma linguagem de mquina (linguagem de baixo nvel) para ser executada pelo computador

7. Como o Ruby funciona?

  • O computador no entende o cdigo-fonte escrito com linguagens de alto nvel
  • O computador precisa interpret-lo e transform-lo em algo que possa ser executado pelo seu processador
  • Esse processo envolveinterpretaodo cdigo-fonte

8. Como o Ruby funciona?

  • Para cada SO existe um interpretador Ruby especfico, capaz de interpretar o cdigo-fonte ( .rb ) e executar a aplicao
  • Ruby, portanto, independente de SO
  • Ruby possui interpretadores para Windows, Linux, MacOS, OS/2, etc

9. Orientao a objetos?

  • Atualmente os programas so muito complexos
  • No d para escrever todo o cdigo-fonte em um s arquivo
  • No d para espalhar o cdigo-fonte entre vrios arquivos de forma desorganizada e repetitiva a cada projeto

10. Orientao a objetos?

  • muito mais fcil trabalhar com objetos da vida real para dar instrues ao computador
  • Tudo pode ser convertido em objetos
  • Classes representam um modelo (especificao) para criao de objetos
  • Uma classe define um tipo de objeto

11. Orientao a objetos?

  • Um objeto chamado cachorro que vem da classe animal diferente de um objeto gol voyage criado a partir da classe carro
  • O cdigo-fonte fica distribudo em classes diferentes
  • Cada classe rene atributos e funcionalidades (mtodos) especficas

12. Orientao a objetos?

  • Classes possuem atributos (estado) e funcionalidades (comportamento)
  • Objetos da mesma classe podem se comportar de maneira diferente caso o valor de seus atributos seja diferente
  • um padro para organizar todo o cdigo-fonte em arquivos separados de modo que todos possam entender

13. Orientao a objetos? Especificao de uma Conta ATRIBUTOS + COMPORTAMENTO Nome:Mrio Saldo:R$ 1.500,00 Nome:Paulo Saldo:R$ 500,00 Nome:Sara Saldo:R$ 5.200,00 14. Orientao a objetos?

  • Objetos ajudam a escrever as instrues para o computador de maneira mais humana e simples
  • Classes representambibliotecasmuito teis pois encapsulam atributos e comportamentos especficos que podem ser usados por qualquer um!

15. Orientao a objetos? 16. Orientao a objetos?

  • Checklist
    • Classes
    • Objetos
    • Atributos (estado)
    • Mtodos (comportamento)
    • Mensagens e parmetros
    • Encapsulamentoediviso de interesses

17. Ferramentas especiais

  • ruby interpretador
  • irb terminal interativo
  • ri utilitrio para ver documentao
  • S isso mesmo

18. Regras bsicas

  • Criao de um objeto
    • objeto = Tipo.new
  • Atribuio de valores
    • variavel = valor
  • Ruby case sensitive

19. Regras bsicas

  • Nomes de classes seguem o camel case
    • A nimal,E specialidade M edica
  • Variveis e mtodos seguem outra forma
    • animal, gol_sedan, especialidade_medica
  • Blocos de cdigo comeam e terminam com { e } ou do ... end

20. Tipos mais comuns

  • Fixnum - 1, 456, -9856
  • Float - 944.44, 12343,3543454
  • Boolean true ou false
  • Date representa uma data
  • String representa um texto qualquer (..)

21. Mos na massa!

  • Checklist
    • Hello word!
    • Utilizao de variveis
    • Interpolao de strings
    • Operaes matemticas
    • Constantes
    • Ranges
    • Arrays
    • Smbolos
    • Hashes
    • Procs/lambda

22. Mos na massa!

  • Checklist
    • If, else, unless
    • Mtodos
    • Classes
    • Mdulos
    • Tratamento de erros
    • Modelagem bsica

23. Rails?

  • Criado em julho de 2004 por David Heinemeier Hansson, DHH
  • Framework fullstack para desenvolvimento web utilizando Ruby
  • Atua em todas as camadas (MVC) de uma aplicao web
  • Implementa a filosofia DRY
  • Utiliza Convention over Configuration

24. Rails?

  • Possui suporte completo a diversas tecnologias desde Ajax at Web Services
  • Possui uma comunidade grande e uma enorme quantidade de plugins para todo o tipo de coisa
  • Facilita muito o desenvolvimento de aplicaes web reduzindo a quantidade de configuraes e dependncias necessrias para se iniciar um projeto

25. Fullstack?

  • Rails um pacote completo...

RUBY + RAILS + APACHE JAVA + HIBERNATE/JPA + SPRING/STRUTS + TOMCAT + APACHE 26. Web?

  • Modelo bsico de funcionamento de uma aplicao web

CLIENTE (navegador, celular, etc) SERVIDOR Requisio (request) Resposta (response) 27. MVC?

  • Apenas um padro para dividir as partes (camadas) de uma aplicao
  • Model Toda a lgica de negcios e interao com as bases de dados
  • Controller Redireciona o usurio de acordo com o que ele quer, controla acesso a determinados lugares, etc
  • View camada de viso (CSS, HTML, Javascript, flash, etc)

28. MVC?

  • Modelo mais elaborado de funcionamento de uma aplicao web

CLIENTE (navegador, celular, etc) Requisio (request) Resposta (response) C M v 29. MVC?

  • MVC by Rails
    • Mantenha o model gordo
    • Mantenha a view estpida
    • Seque os controllers

30. Rails?

  • O Rails tem um mdulo para cada necessidade
  • Active Record comunicao com os SGBDs
  • Action Pack
    • Action View gerao de views
    • Action Controller controle de fluxo
  • Action Mailer suporte completo a emails
  • Active Support coisinhas legais
  • Action WebServices WSDL, SOAP,REST

31. Mos na massa!

  • Checklist (Active Record)
    • Migrations
    • Models
    • Relacionamentos entre models
    • Validaes
    • Operaes CRUD
    • Finders dinmicos
    • TDD (Test-Driven Development)

32. Mos na massa!

  • Checklist (Action Pack)
    • Gerao de controllers
    • Criao de views
    • Utilizao de templates
    • Sesso, autenticao e autorizao
    • Ajax!!!
    • Plugins legais

33. Fim do comeo...

  • Ainda h muito o que aprender!
  • http://guias.rubyonrails.pro.br/
  • http://railscasts.com/
  • http://peepcode.com/
  • http://www.rubyinside.com.br/
  • http://www.akitaonrails.com/