Olá Pessoal. Estou com uma dúvida bem iniciante… rs
Estou precisando de uma força.
Tenho um sistema bem grande, que estou migrando do Clipper para Java. Estou tentando usar o o MVC + DAO, mas surgiu uma dúvida.
Na view estou utilizando o EXTJS da Sencha, até ai tudo bem…
A dúvida é: como minha parte de controller e DAO são muito grandes, eu posso separa-las em vários arquivos? tipo UsuarioAddContoller, Usuario ListarController,
UsuarioDAOListar, UsuarioDAOGravar, UsuarioDAOTrocaPlano
Posso fazer dessa forma? pois se fizer em um arquivo só… ficará muito grande.
O que é muito grande pra você? Eu acredito que a classe tem que ter o tamanho que tem que ter.
Um DAO geralmente faz as operações CRUD, e talvez algumas a mais.
nel
leosjcti:
Olá Pessoal. Estou com uma dúvida bem iniciante… rs
Estou precisando de uma força.
Tenho um sistema bem grande, que estou migrando do Clipper para Java. Estou tentando usar o o MVC + DAO, mas surgiu uma dúvida.
Na view estou utilizando o EXTJS da Sencha, até ai tudo bem…
A dúvida é: como minha parte de controller e DAO são muito grandes, eu posso separa-las em vários arquivos? tipo UsuarioAddContoller, Usuario ListarController,
UsuarioDAOListar, UsuarioDAOGravar, UsuarioDAOTrocaPlano
Posso fazer dessa forma? pois se fizer em um arquivo só… ficará muito grande.
Valeu pessoal
O que é MVC + DAO ? Não vou nem entrar em detalhes, mas a ideia do MVC é dividir o desenvolvimento em camadas. O DAO é a camada responsável pela interação com as informações do banco. Tendo isso em mente e respondendo sua outra questão, muito grande quanto ? 300 linhas ? Tenho classes que passam das 1000 (mil) fácil. Acho interessante um DAO por informação, se estamos falando de usuário, então tem UserDAO e nele todos os métodos que precisa referentes ao usuário, listar, criar, editar, remover…
leosjcti
Digamos que passaria de 3000 linhas, pois todo SQL eu utilizaria essa DAO, e como o sistema tem várias consultas antes de gravar a classe DAO ficará muito grande mesmo. Minha duvida é em relação a organização do codigo, pois ficará dificil dar manutenção depois
nel
Acha 3000 linhas muito grande ? Sei.
Se tu dividir em métodos bem descritos, código edentado e documentado, pode ter certeza que a manutenção será simples. O DAO só para usuário teria 3000 linhas ?
Um DAO por “entidade” eu sou totalmente a favor, no máximo outro DAO visando relacionamento entre tabelas, por exemplo, mas jamais, um DAO que faça tudo.
Rodrigo_Sasaki
Concordo, eu acho que esse seu DAO pode estar fazendo coisas demais. A idéia de um DAO por entidade é uma boa para o que você quer.
leosjcti
Valeu pelas respostas…
Ficará grande porque eu costumo criar varias consultas para não ficar muito pesado o select na tabela inteira. Essa tabela tem mais de 70 campos. ( nao foi eu que criou)
Então eu teria vários metodos como esses: getPlano, getEndereco, getTitular, estou certo?
Me desculpe a dúvida nivel iniciante, mas é que uma coisa é vc estudar a teoria, outra é implantar na vida real. rs
Valeu pessoal
nel
leosjcti:
Valeu pelas respostas…
Ficará grande porque eu costumo criar varias consultas para não ficar muito pesado o select na tabela inteira. Essa tabela tem mais de 70 campos. ( nao foi eu que criou)
Então eu teria vários metodos como esses: getPlano, getEndereco, getTitular, estou certo?
Me desculpe a dúvida nivel iniciante, mas é que uma coisa é vc estudar a teoria, outra é implantar na vida real. rs
Valeu pessoal
Tá, mas calma. Tu consegue usar isso tudo separadamente ou tu busca o Plano, depois o Endereço, depois o Titular e ai junta tudo e usa ?
Veja, eu ja trabalhei com tabelas grandes (assim não) e só tive um campo que precisei remover porque era um blob, onde era armazenado bytes. Esse campo eu só buscar no select em casos especiais e só trazia um registro.
Tu precisa analisar tua necessidade. Tu vai criar um objeto com os 70 campos ou consegue “quebrar” isso ? Entende onde quero chegar ?
E em termos de select, prefiro deixar a cargo do banco do que juntar “pedaços” em código posteriormente.
leosjcti
Separado mesmo… alguns campos da view fazem requisições a essas informações, um combo busca os planos, outro campo busca endereço, outro o titular
tudo via eventos disparados pela view ao controller que por sua vez chama o DAO para pegar essas informações.
Em relação a tabela, vou dar uma estudada pra ver se tem como quebra-la em outras e dminui-la, pois esta muito grande mesmo.
Valeu brother…
rmendes08
leosjcti:
Separado mesmo… alguns campos da view fazem requisições a essas informações, um combo busca os planos, outro campo busca endereço, outro o titular
tudo via eventos disparados pela view ao controller que por sua vez chama o DAO para pegar essas informações.
Em relação a tabela, vou dar uma estudada pra ver se tem como quebra-la em outras e dminui-la, pois esta muito grande mesmo.
Valeu brother…
Se você tem a oportunidade de remodelar as tabelas do banco, não perca tempo e faça-o agora! Com certeza, uma tabela com mais de 70 campos deve ter muita redundância, aplique a normalização de dados, separando cada entidade e você vai ver que a própria aplicação ficará mais simples: