minicurso ruby on rails

28
Minicurso de Ruby on Rails Igor Amorim Costa Portela www.igorportela.com GTAaaS – Grupo de Trabalho Acessibilidade como Serviç

Upload: igor-portela

Post on 28-May-2015

259 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Minicurso ruby on rails

Minicurso de Ruby on RailsIgor Amorim Costa Portela

www.igorportela.com

GTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 2: Minicurso ruby on rails

Reflexão

Desenvolvedor: Fazer afirmações com desconhecimento de causa é um atestado de

ignorância.

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 3: Minicurso ruby on rails

Ruby != Rails

FrameworkLinguagem

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 4: Minicurso ruby on rails

A Linguagem

Criador: Yukihiro Matsumoto ou “Matz”Ano: 1995Características: • Dinâmica e interpretada• Forte POO - Tudo é objeto• Todas as classes herda de Object• Operação é método: eql, exists, extend

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 5: Minicurso ruby on rails

A Linguagem

• Métodos retornam valor puts “Hello World” => nil

Tipos básicos:• Numeric• Symbol• String• Array• Hash

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 6: Minicurso ruby on rails

Variáveis

Locais: variavel = 0

Instâncias: @variavel = “Igor”

Classe: @@classe = Classe (satic do Java)

Globais: $variavel = 100

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 7: Minicurso ruby on rails

Comparação

JAVApublic double soma(double a, double b){ return a + b;}

RUBYdef soma a,b a+bend

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 8: Minicurso ruby on rails

Framework

Criador: Dave ThomasAno: 2004Características:• DRY (Don’t Repeat Yourself)• Scaffold (CRUD)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 9: Minicurso ruby on rails

Composto por

• ActiveSupport• ActiveRecord• ActionPack• ActionMailer• ActiveResource

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 10: Minicurso ruby on rails

Arquitetura

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 11: Minicurso ruby on rails

ActiveSupport

É um framework que contém um conjunto de diversas classes e extensões de bibliotecas úteis para o desenvolvimento web

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 12: Minicurso ruby on rails

ActiveRecord

Framework que contém uma camada de mapeamento objeto-relacional, entre a aplicação e o banco de dados relacional.

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 13: Minicurso ruby on rails

ActionPack

Framework HTML, XML, Javascripts e controle de regras de negócio.

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 14: Minicurso ruby on rails

ActionMailer

Framework de recebimento de emails. Realiza diversas operações apenas com chamadas de entrega de correspondência.

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 15: Minicurso ruby on rails

ActiveResource

Framework RESTful (Representational State Transfer) “ful” é de simplesmente REST!

Técnica da engenharia de software para sistemas na internet. Principais POST, GET, PUT, DELETE

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 16: Minicurso ruby on rails

Servidores e Banco de Dados

WEBRick ou Mongrel – desenvolvimento e teste

Sqlite3MySQLOraclePostgreSQL

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 17: Minicurso ruby on rails

Scripts

1) AboutInformação sobre a versão e componentes2) ConsoleConsole com o ambiente da aplicação3) DbconsoleConsole padrão do banco de dados4) DestroyRemove o código gerado

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 18: Minicurso ruby on rails

Scripts

5) GenerateGera o código de uma aplicação6) RunnerAutomatizar tarefas da aplicação7) ServerInicia o servidor de aplicação

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 19: Minicurso ruby on rails

Boas Práticas

• Controller não deve resolver tudo sozinho.• Convenções• Modelos gordos• Controllers magros• Código em Inglês• Tabelas são classes no plural• Chave primária é por convenção (table_id)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 20: Minicurso ruby on rails

Prática

Criando um projeto no “terminal”

Rails new projeto –d banco_de_dados

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 21: Minicurso ruby on rails

Estrutura do Projeto

App – abriga os controllers, helpers, views, models, css, js, images

Config – configurações da aplicação, banco, ambientes do projeto

DB – guarda as migrações, esquemas e arquivos do banco

Doc – documentaçãoLib – arquivos de biblioteca

Log – os logs dos servidores (desenvolvimento, producao, teste)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 22: Minicurso ruby on rails

Estrutura do Projeto

Script – scripts do rails (rails generate, rails s)Test – arquivos de testes funcionais, unitários,

integração.Tmp – arquivos temporários (sessão, cache,

migrações, esquemas e etc.)Gemfile – onde é requerida as gems

www.igorportela.comGTAaaS – Grup de Trabalho Acessibilidade como Serviço

Page 23: Minicurso ruby on rails

Relacionamentos

*..1 - has_many (muitos p/ um)

1..* - belongs_to (um p/ muitos)

*..* - has_and_belongs_to_many (muitos p/ muitos)

1..1 – has_one (um p/ um)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 24: Minicurso ruby on rails

Migrações

Executadas em sequência.Permite portabilidade e manutenabilidade.Básico:

add_column(:email)

remove_column(:email)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 25: Minicurso ruby on rails

Rake

rake db:createCria o banco de dados

rake db:migrate migra o banco de dados

Rake db:destroyDestrói o banco de dados

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 26: Minicurso ruby on rails

Fica a dica para pesquisa

Validations

Form_helpers

Presenters

Testes com BDD (Behavior Driven Development)

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 27: Minicurso ruby on rails

Recomendações

Google group – rails-br

Pesquise “ruby on rails” no Google!

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço

Page 28: Minicurso ruby on rails

Até a próxima!

www.igorportela.comGTAaaS – Grupo de Trabalho Acessibilidade como Serviço