jump to navigation

Reinventar a Roda 09/03/2009

Posted by fredericobenevides in Desenvolvimento.
trackback

Desde que eu mudei para Brasília, trabalhei com vários tipos de aplicações. Algumas, ou quem sabe maioria destas aplicações, eu vi o que a maioria é acostumado de ver, funcional por fora, mas internamente, horrível de se trabalhar.

Algumas destas aplicações o que eu nunca consegui entender, é como o pessoal reinventa a roda! E como REINVENTAM! Se fossem boas, tudo bem, mas a maioria não é. Pra ser sincero, não lembro de um destes se teve UM que valeu a pena, mas não vou chegar a ser tão crítico.

Eu nunca gostei disso, pois atrapalham muito o desenvolvimento. Estas implementações geralmente não existem testes, e o pior, na solução existente poderia estar trabalhando no meu negócio e não nos problemas da estrutura de um framework.

Para se ter uma idéia, um dos frameworks mvc que trabalhei, nele encontrava mais outro mvc, o struts. O negócio era uma bomba, que futuramente eles implantaram o struts para algumas partes do sistema. Infelizmente, legado é legado e logo muito da bomba ainda continuava lá, tanto que ele chegou a ter um problema que após uma certa quantidade de usuários, permitia que alguns usuários acessavam com perfil de outros usuários. Imagina o problema disso…

Já vi também criarem sistemas para controle de bugs, sendo que, existem muitos sistemas bons e livres tais como trac e bugzilla. Agora se pudessem parar pra analisar o tempo e o dinheiro que gastou com analistas e desenvolvedores para implementar este software, sairia mais barato pagando licença do Jira. E uma pequena observação, sairia mais barato e teria um sistema bem melhor.

Outra, trabalho com uma aplicação que até inventaram a camada de persistência, e o pior, os que desenvolveram achavam que o design era ótimo. Até já teve uns bugs que por exemplo, se fosse buscar uma pessoa pelo id, o que retornava era apenas um o objeto pessoa com o seu atributo ID sem o restante das informações do usuário. Pois é, era mais fácil fazer new Pessoa(id)…

Nesse tempo, o que eu cheguei a perceber, ou pelo menos parece com o pensamento de certos tipos de desenvolvedores: “Eu sou um bom desenvolvedor e sei fazer a minha própria aplicação, não preciso de soluções existentes”. Claro que eu não sei o que passou na mente de cada um para reinventar a roda, mas será que já perguntaram para si mesmo: “O que a minha aplicação terá o que as outras não tem?”, ou quem sabe pensar: “Vale a pena o tempo que vou gastar para desenvolver do que estudar um outro framework?”.

Lembre-se, reinventar a roda nem sempre é o caminho para uma solução, e sim, apenas o começo de alguns problemas.

Comentários»

1. André Faria Gomes - 09/03/2009

Isso realmente acontece muito, é sempre importante trazer para a equipe, padrões de projetos (design patterns), ensinando-os como e quando utilizá-los para que evitar essa “reinvenção de rodas”, assim como também é importante apresentar a todos boas práticas de programaçao em geral, anti-patterns e code smells também podem ser muito úteis para evitar que cometamos erros comuns.
Já vi dois extremos aqueles que querem sempre reinventar tudo: “Faço do meu jeito mesmo”, e aqueles que querem aplicar patterns em tudo, até mesmo quando poderiam fazer somente um “if” aplicam um pattern Strategy ou coisa semelhante. Ambos são ruins. É preciso equilibrar e fazer aquilo que for mais eficiente. Ótimo Post. Parabéns. Abraço.

2. Rafael Benevides - 09/03/2009

Odeio quando reinventam a roda! Isto me remete a perolas como estas: http://www.jroller.com/rafaelbenevides/entry/tutorial_como_assassinar_o_simpledateformat

3. fredericobenevides - 09/03/2009

Ae gente obrigado pelos comentários.

André, realmente concordo sobre trazer pra equipe design patterns, o problema é quando ninguém traz, e a equipe não vai atrás. Até tava pensando mais pra frente escrever um tópico sobre design patterns que é um pouco disso que você escreveu. Mas vamos ver…

Rafael este exemplo mostra como pessoas que não conhecem direito a API acabam reiventando roda, infelizmente são esses tipo de coisas que a gente vê no dia a dia.

Valeu!


Deixe um comentário