Archive for the ‘OO’ Category
Quando o modelo não serve
A palavra legado não soa bem aos meus ouvidos. Lembra coisas que devem permanecer inalteradas. Bancos de dados legados, aplicações legadas. “Não mexa, isso pode parar de funcionar a qualquer momento!”, “enrole, empurre para baixo do tapete!”, “admita, você está morrendo de vontade de dar um shift+del em tudo isso e fazer do seu jeito…”
Sem sombra de dúvidas é isso que meu cérebro diz a cada vez que preciso alterar qualquer parte do sistema legado que estou cuidando atualmente: um tremendo spaguetti, onde model-view-controller se torna moew-controdel-llervi e demais permutações, tudo ao mesmo tempo. Código não documentado, C++ programado de maneira estruturada de cabo a rabo. O sistema funciona, sim senhor, e até consigo adicionar novas funcionalidades. Mas sabe qual a sensação que me dá quando finalmente coloco a coisa toda em produção? A sensação de que estou engordando um monstro que, se eu não tomar cuidado, em breve irá me engolir.
Mas o que me fez ter vontade de escrever sobre este assunto foi o que começou a acontecer hoje. algo que sei que vai perdurar até o fim do meu projeto atual.
Trata-se de uma aplicação web escrita em Java que acessa um banco de dados legado. o banco de dados da aplicação citada acima. O banco é bastante organizado e a princípio tudo parece fazer sentido na maneira com a qual ele foi construído. Mas quando tentei modelar alguns POJOs a partir das tabelas do banco, percebi que algo estava tremendamente errado. Tabelas com 45 colunas não podem estar corretas… Imagina uma classe com 45 atributos! E o pior: Não sei se vale à pena dividir as coisas… ou melhor, não vale à pena! Perceber que tudo aquilo que você gostaria de aplicar, toda aquela história sobre design, não irão funcionar desta vez, é meio desanimador…
E fico aqui pensando em uma solução. Onde fica a linha que separa um programa bem escrito e algo que cheira (e parece) gambiarra?
Sem sombra de dúvidas é isso que meu cérebro diz a cada vez que preciso alterar qualquer parte do sistema legado que estou cuidando atualmente: um tremendo spaguetti, onde model-view-controller se torna moew-controdel-llervi e demais permutações, tudo ao mesmo tempo. Código não documentado, C++ programado de maneira estruturada de cabo a rabo. O sistema funciona, sim senhor, e até consigo adicionar novas funcionalidades. Mas sabe qual a sensação que me dá quando finalmente coloco a coisa toda em produção? A sensação de que estou engordando um monstro que, se eu não tomar cuidado, em breve irá me engolir.
Mas o que me fez ter vontade de escrever sobre este assunto foi o que começou a acontecer hoje. algo que sei que vai perdurar até o fim do meu projeto atual.
Trata-se de uma aplicação web escrita em Java que acessa um banco de dados legado. o banco de dados da aplicação citada acima. O banco é bastante organizado e a princípio tudo parece fazer sentido na maneira com a qual ele foi construído. Mas quando tentei modelar alguns POJOs a partir das tabelas do banco, percebi que algo estava tremendamente errado. Tabelas com 45 colunas não podem estar corretas… Imagina uma classe com 45 atributos! E o pior: Não sei se vale à pena dividir as coisas… ou melhor, não vale à pena! Perceber que tudo aquilo que você gostaria de aplicar, toda aquela história sobre design, não irão funcionar desta vez, é meio desanimador…
E fico aqui pensando em uma solução. Onde fica a linha que separa um programa bem escrito e algo que cheira (e parece) gambiarra?


