getna: gerador de código rubyonrails apartir de banco de dados

53
Gerador de Código RubyOnRails a Partir de Banco de Dados Luiz Arão Araújo Carvalho Thereza Patrícia Pereira Padilha Bacharelado em Ciência da Computação Universidade Federal do Tocantins UFT

Upload: maximusmano

Post on 19-Jan-2015

1.625 views

Category:

Technology


0 download

DESCRIPTION

Minha proposta era fazer um projeto Open Source de um Gerador Rails que apartir de um Banco de dados gera-se toda a estrutura inicial de um Projeto Rails

TRANSCRIPT

Page 1: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Gerador de Código RubyOnRails a

Partir de Banco de Dados

Luiz Arão Araújo CarvalhoThereza Patrícia Pereira Padilha

Bacharelado em Ciência da Computação Universidade Federal do Tocantins

UFT

Page 2: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Contextualizando... GEtna. Vantagens Objetivos Alcançados GEtna e RubyOnRails Exemplo Prático Imagens Conclusão

RoteiroRoteiro

Page 3: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Contextualizando...Contextualizando...

Campo de atuação Ações repetitivas Benefícios

Page 4: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Feito em Ruby. Aumento de Velocidade de

Desenvolvimento. Diminuição de tarefas

repetitivas.

O Que é GEtna?O Que é GEtna?

Page 5: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Gerador Etna

Por que o nome?Por que o nome?

Page 6: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Criação de Arquivos Funcionalidades Atribuídas Convenções

O Que ele faz?O Que ele faz?

Page 7: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Construção de Códigos Formas Única ou Etapas Entrada e Saídas

O que é um gerador de código?

O que é um gerador de código?

Page 8: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna é Open Source. Licensa MIT GitHubo Feito em RubyOnRailso GITo Ruby e RubyOnRails: OnGIT

Eu poderei usar?Eu poderei usar?

Page 9: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Templates ORM Classes do Ruby

Como ele faz?Como ele faz?

Page 10: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Caso 1 100 tabelas Pressa do cliente em ver algo Equipe pequena

Caso 2 Mudança de aplicação RubyOnRails Reutilização da Base de dados

Por que usar?Por que usar?

Page 11: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Outros GeradoresOutros Geradores

MagicModelsGera ModelosGera Validações

ScaffoldModelos, Controles, VisualizaçõesRotas, Migrações e TestesCada Entidade é Criada por Fase.

Page 12: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtnaGEtna

GEtnaModelos com validações e

relacionamentos, Controladores e Visualizações

Rotas, Testes e migrações com definições de limite, valores padrões

Customização por CSSE Internacionalização por rótulos

Page 13: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Objetivos AlcançadosObjetivos Alcançados

Geração comprovada para o bancos de dados Mysql.

Definido Repositório (GIT) e a lisensa(MIT).

Gerados: Controllers, Models e Views para todas as tabelas.

Estilos para Geração

Page 14: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna e RubyOnRailsGEtna e RubyOnRails

DRY - Don’t Repeat Yourself Duck Typing Convention Over Configuration ORM - Object-Relational Mapping Utilização de Plugins

Page 15: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Exemplo Prático– Banco de Dados

Exemplo Prático– Banco de Dados

usuarios

id: integer, not null

nome: varchar(60), not null

situacao: bool, not null

cpf: integer, not null

grupos

id: integer , not null

nome: varchar(60), not null

descricao: text

grupo_usuarios

grupo_id: integer , not null

usuario_id: integer, not null

Page 16: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ClassesGEtna– Classes

Usuario

id: integer

nome: string

situacao: boolean

cpf: integer

Grupo

id: integer

nome: string

descricao: text

GrupoUsuario

grupo_id: integer

usuario_id: integer

Page 17: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ClassesGEtna– Classes

Usuario

id: integer

nome: string

situacao: boolean

cpf: integer

Usuario.find(1)Usuario.find(:all)Usuario.new()(...)

u = Usuario.find(1)u.nome = ‘fulano’u.save

Page 18: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Relacionamento de Classes

GEtna– Relacionamento de Classes

Usuario

Possui Muitos : Grupos

Atravez de: GrupoUsuarios

Grupo

Possui Muitos: Usuarios

Atravez de: GrupoUsuarios

GrupoUsuario

Pertence a Usuario

Pertence a Grupo

Page 19: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Relacionamento de Classes

GEtna– Relacionamento de Classes

Usuario

Possui Muitos : Grupos

Atravez de: GrupoUsuarios

Grupo

Possui Muitos: Usuarios

Atravez de: GrupoUsuarios

u = Usuario.find(1)

u.gruposg1 => nome=‘grupo1’, descricao=“1º grupo”(...)

u.grupos = [g1,g2,g3,g4]

Page 20: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ValidaçõesGEtna– Validações

usuarios

id: integer, not null

nome: varchar(60), not null

situacao: bool, not null, default: false

cpf: integer(11) not null

Presença ID, NOME, SITUACAO,CPF

Tipo CPF: Numerico

Tamanho CPF: MAX(11)

Tamanho NOME:MAX(60)

Page 21: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Exemplo de Validações

GEtna– Exemplo de Validações

Presença ID, NOME, SITUACAO,CPF

Tipo CPF: Numerico

Tamanho CPF: MAX(11)

Tamanho NOME:MAX(60)

u = Usuario.new()u.nome = ‘’u.save=> “O campo nome nãopode ser vazio”

Page 22: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Views - CRUDGEtna– Views - CRUD

Create, Retrieve, Update e Delete

C

R

U

D

Page 23: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Views - EstiloGEtna– Views - Estilo

Page 24: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ViewsGEtna– Views

usuarios

id: integer

nome: varchar(60)

situacao: bool

Nome : Text Field

Situacao : CheckBox

FulanoNome

Situacao

Cadastro de Usuarios

Novo

Page 25: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Views - HelpersGEtna– Views - Helpers

Page 26: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 27: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 28: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 29: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 30: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 31: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 32: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 33: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

ERRO!

Page 34: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 35: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 36: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 37: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– ControllersGEtna– Controllers

Page 38: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– RotasGEtna– Rotas

Page 39: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna– Rotas - RESTfulGEtna– Rotas - RESTful

GET /usuarios - INDEX GET /usuarios/1 - SHOW GET /usuarios/new - NEW GET /usuarios/1/edit - EDIT POST /usuarios - CREATE PUT /usuarios/1 - UPDATE DELETE /usuarios/1 - DESTROY

Page 40: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - MigraçõesGEtna - Migrações

CreateUsuariosup

create_table usuarios nome : stringstatus : booleantimestamps

downdrop_table usuarios

Page 41: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - TestesGEtna - Testes

Page 42: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna – Por Linha de CódigoGEtna – Por Linha de Código

Page 43: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna – IDE - NetbeansGEtna – IDE - Netbeans

Page 44: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - ArquivosGEtna - Arquivos

Page 45: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - IndexGEtna - Index

Page 46: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - NewGEtna - New

Page 47: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - ShowGEtna - Show

Page 48: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - EditGEtna - Edit

Page 49: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - MaxOnRailsGEtna - MaxOnRails

http://www.maxonrails.wordpress.com/tag/getna

Page 50: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - GitHubGEtna - GitHub

http://github.com/LuizCarvalho/GEtna

Page 51: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - ConclusãoGEtna - Conclusão

Geradores Código Livre ORM Ruby RubyOnRails

Page 52: Getna: Gerador de Código RubyOnRails apartir de banco de dados

GEtna - ReferênciasGEtna - Referências

HERRINGTON, J. Code generation in action. Manning, Greenwich, CT, EUA, 2003.

THOMAS, Dave; HANSSON, David Heinemeier. Desenvolvimento Web Ágil Com Rails. 2. ed. Bookman: Porto Alegre, 2008. 680p.

Page 53: Getna: Gerador de Código RubyOnRails apartir de banco de dados

Script/generate GEtna Duvidas?

??? ?