Transcript
Page 1: Curso de Ruby e Ruby on Rails

Ruby-on-RailsMário Sérgio Coelho Marroquim

@mariomarroquim

Page 2: Curso de Ruby e Ruby on Rails

Sobre o curso

• Curso prático para formar profissionais para o mercado que possam fazer a diferença e produzir resultados reais

• Foco na maior demanda do mercado: aplicações comerciais

Page 3: Curso de Ruby e Ruby on Rails

Sobre as aulas

• Cada aula se dividirá em 3 partes– Explicação do assunto– Perguntas e respostas– Atividades práticas

Page 4: Curso de Ruby e Ruby on Rails

Ruby?

• Surgiu em 1995

• Criada por Yukihiro Matsumoto, “Matz”

• Linguagem de programação TOTALMENTE orientada a objetos

• Linguagem de script interpretada

• Muito utilizada em scripts para as mais diversas finalidades

Page 5: Curso de Ruby e Ruby on Rails

Ruby?

• Possui sintaxe absurdamente simples

• É totalmente extensível

• É suficientemente rápido

• Possui um sistema centralizado para distribuição de bibliotecas (gems), o Ruby Gems

• Comunidade grande

• Muita documentação disponível

Page 6: Curso de Ruby e Ruby on Rails

Linguagem de programação?

• Uma linguagem de programação é– Um conjunto de instruções de alto nível que

o computador vai ter de executar– Uma linguagem mais “humana” que deve ser

convertida em uma “linguagem de máquina” (linguagem de baixo nível) para ser executada pelo computador

Page 7: Curso de Ruby e Ruby on Rails

Como o Ruby funciona?

• O computador não entende o código-fonte escrito com linguagens de alto nível

• O computador precisa interpretá-lo e transformá-lo em algo que possa ser executado pelo seu processador

• Esse processo envolve interpretação do código-fonte

Page 8: Curso de Ruby e Ruby on Rails

Como o Ruby funciona?

• Para cada SO existe um interpretador Ruby específico, capaz de interpretar o código-fonte (“.rb”) e executar a aplicação

• Ruby, portanto, é independente de SO

• Ruby possui interpretadores para Windows, Linux, MacOS, OS/2, etc

Page 9: Curso de Ruby e Ruby on Rails

Orientação a objetos?

• Atualmente os programas são muito complexos

• Não dá para escrever todo o código-fonte em um só arquivo

• Não dá para espalhar o código-fonte entre vários arquivos de forma desorganizada e repetitiva a cada projeto

Page 10: Curso de Ruby e Ruby on Rails

Orientação a objetos?

• É muito mais fácil trabalhar com objetos da vida real para dar instruções ao computador

• Tudo pode ser convertido em objetos

• Classes representam um modelo (especificação) para criação de objetos

• Uma classe define um tipo de objeto

Page 11: Curso de Ruby e Ruby on Rails

Orientação a objetos?

• Um objeto chamado “cachorro” que vem da classe “animal” é diferente de um objeto “gol voyage” criado a partir da classe “carro”

• O código-fonte fica distribuído em classes diferentes

• Cada classe reúne atributos e funcionalidades (métodos) específicas

Page 12: Curso de Ruby e Ruby on Rails

Orientação 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 padrão para organizar todo o código-fonte em arquivos separados de modo que todos possam entender

Page 13: Curso de Ruby e Ruby on Rails

Orientação a objetos?

Especificação deuma Conta

ATRIBUTOS+

COMPORTAMENTO

Nome: MárioSaldo: R$ 1.500,00

Nome: PauloSaldo: R$ 500,00

Nome: SaraSaldo: R$ 5.200,00

Page 14: Curso de Ruby e Ruby on Rails

Orientação a objetos?

• Objetos ajudam a escrever as instruções para o computador de maneira mais humana e simples

• Classes representam bibliotecas muito úteis pois encapsulam atributos e comportamentos específicos que podem ser usados por qualquer um!

Page 15: Curso de Ruby e Ruby on Rails

Orientação a objetos?

Page 16: Curso de Ruby e Ruby on Rails

Orientação a objetos?

• Checklist– Classes– Objetos– Atributos (estado)– Métodos (comportamento)– Mensagens e parâmetros– Encapsulamento e divisão de interesses

Page 17: Curso de Ruby e Ruby on Rails

Ferramentas especiais

• ruby – interpretador

• irb – terminal interativo

• ri – utilitário para ver documentação

• Só isso mesmo

Page 18: Curso de Ruby e Ruby on Rails

Regras básicas

• Criação de um objeto– objeto = Tipo.new

• Atribuição de valores– variavel = valor

• Ruby é case sensitive

Page 19: Curso de Ruby e Ruby on Rails

Regras básicas

• Nomes de classes seguem o camel case– Animal, EspecialidadeMedica

• Variáveis e métodos seguem outra forma– animal, gol_sedan, especialidade_medica

• Blocos de código começam e terminam com “{” e “}” ou “do ... end”

Page 20: Curso de Ruby e Ruby on Rails

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 (“..”)

Page 21: Curso de Ruby e Ruby on Rails

Mãos na massa!

• Checklist– Hello word!– Utilização de variáveis– Interpolação de strings– Operações matemáticas– Constantes– Ranges– Arrays– Símbolos– Hashes– Procs/lambda

Page 22: Curso de Ruby e Ruby on Rails

Mãos na massa!

• Checklist– If, else, unless– Métodos– Classes– Módulos– Tratamento de erros– Modelagem básica

Page 23: Curso de Ruby e Ruby on Rails

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 aplicação web

• Implementa a filosofia DRY

• Utiliza Convention over Configuration

Page 24: Curso de Ruby e Ruby on Rails

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 aplicações web reduzindo a quantidade de configurações e dependências necessárias para se iniciar um projeto

Page 25: Curso de Ruby e Ruby on Rails

Fullstack?

• Rails é um pacote completo...

RUBY+

RAILS+

APACHE

JAVA+

HIBERNATE/JPA+

SPRING/STRUTS+

TOMCAT+

APACHE

Page 26: Curso de Ruby e Ruby on Rails

Web?

• Modelo básico de funcionamento de uma aplicação web

CLIENTE(navegador, celular, etc)

SERVIDOR

Requisição(request)

Resposta(response)

Page 27: Curso de Ruby e Ruby on Rails

MVC?

• Apenas um padrão para dividir as partes (camadas) de uma aplicação

• Model – Toda a lógica de negócios e interação com as bases de dados

• Controller – Redireciona o usuário de acordo com o que ele quer, controla acesso a determinados “lugares”, etc

• View – camada de visão (CSS, HTML, Javascript, flash, etc)

Page 28: Curso de Ruby e Ruby on Rails

MVC?

• Modelo mais elaborado de funcionamento de uma aplicação web

CLIENTE(navegador, celular, etc)

Requisição(request)

Resposta(response)

C M

v

Page 29: Curso de Ruby e Ruby on Rails

MVC?

• MVC by Rails– Mantenha o model “gordo”– Mantenha a view estúpida– “Seque” os controllers

Page 30: Curso de Ruby e Ruby on Rails

Rails?

• O Rails tem um módulo para cada necessidade• Active Record – comunicação com os SGBDs• Action Pack

– Action View – geração de views– Action Controller – controle de fluxo

• Action Mailer – suporte completo a emails• Active Support – coisinhas legais• Action WebServices – WSDL, SOAP, REST

Page 31: Curso de Ruby e Ruby on Rails

Mãos na massa!

• Checklist (Active Record)– Migrations– Models– Relacionamentos entre models– Validações– Operações CRUD– Finders dinâmicos– TDD (Test-Driven Development)

Page 32: Curso de Ruby e Ruby on Rails

Mãos na massa!

• Checklist (Action Pack)– Geração de controllers– Criação de views– Utilização de templates– Sessão, autenticação e autorização– Ajax!!!– Plugins legais

Page 33: Curso de Ruby e Ruby on Rails

Fim do começo...

• 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/