getna: gerador de código rubyonrails apartir de banco de dados
Post on 19-Jan-2015
1.625 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
Contextualizando... GEtna. Vantagens Objetivos Alcançados GEtna e RubyOnRails Exemplo Prático Imagens Conclusão
RoteiroRoteiro
Contextualizando...Contextualizando...
Campo de atuação Ações repetitivas Benefícios
Feito em Ruby. Aumento de Velocidade de
Desenvolvimento. Diminuição de tarefas
repetitivas.
O Que é GEtna?O Que é GEtna?
Gerador Etna
Por que o nome?Por que o nome?
Criação de Arquivos Funcionalidades Atribuídas Convenções
O Que ele faz?O Que ele faz?
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?
GEtna é Open Source. Licensa MIT GitHubo Feito em RubyOnRailso GITo Ruby e RubyOnRails: OnGIT
Eu poderei usar?Eu poderei usar?
Templates ORM Classes do Ruby
Como ele faz?Como ele faz?
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?
Outros GeradoresOutros Geradores
MagicModelsGera ModelosGera Validações
ScaffoldModelos, Controles, VisualizaçõesRotas, Migrações e TestesCada Entidade é Criada por Fase.
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
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
GEtna e RubyOnRailsGEtna e RubyOnRails
DRY - Don’t Repeat Yourself Duck Typing Convention Over Configuration ORM - Object-Relational Mapping Utilização de Plugins
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
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
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
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
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]
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)
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”
GEtna– Views - CRUDGEtna– Views - CRUD
Create, Retrieve, Update e Delete
C
R
U
D
GEtna– Views - EstiloGEtna– Views - Estilo
GEtna– ViewsGEtna– Views
usuarios
id: integer
nome: varchar(60)
situacao: bool
Nome : Text Field
Situacao : CheckBox
FulanoNome
Situacao
Cadastro de Usuarios
Novo
GEtna– Views - HelpersGEtna– Views - Helpers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
ERRO!
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– ControllersGEtna– Controllers
GEtna– RotasGEtna– Rotas
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
GEtna - MigraçõesGEtna - Migrações
CreateUsuariosup
create_table usuarios nome : stringstatus : booleantimestamps
downdrop_table usuarios
GEtna - TestesGEtna - Testes
GEtna – Por Linha de CódigoGEtna – Por Linha de Código
GEtna – IDE - NetbeansGEtna – IDE - Netbeans
GEtna - ArquivosGEtna - Arquivos
GEtna - IndexGEtna - Index
GEtna - NewGEtna - New
GEtna - ShowGEtna - Show
GEtna - EditGEtna - Edit
GEtna - MaxOnRailsGEtna - MaxOnRails
http://www.maxonrails.wordpress.com/tag/getna
GEtna - GitHubGEtna - GitHub
http://github.com/LuizCarvalho/GEtna
GEtna - ConclusãoGEtna - Conclusão
Geradores Código Livre ORM Ruby RubyOnRails
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.
Script/generate GEtna Duvidas?
??? ?
top related