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

Post on 19-Jan-2015

1.625 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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