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

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

Embed Size (px)

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

Citation preview

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?

??? ?