jump to navigation

2EJB || !2EJB 17/05/2006

Por: Bruno Mentges de Carvalho , trackback

Uma empresa gringa prestou serviço para a empresa onde trabalho para fazer o front-end de uma grande aplicação, onde os usuários iriam fazer diversas configurações de maneira "amigável". Era mais um projeto web, e iria conectar-se ao sistemão para prover serviços de maneira rápida e simplificada.

Essa empresa terceirizada tinha desenvolvido um software que gerava código (EJBs) dinamicamente, o que proporcionaria rapidez no desenvolvimento. Então eles projetaram o sistema (será que projetaram?) para utilizar EJBs em uma arquitetura que lembra SOA (Service Oriented Architecture), porém sem o Service Locator, uma bagunça.

Hoje, acredito que 2 anos depois, estamos reestruturando a aplicação que além de ser totalmente buguenta e muito instável ainda tem mais de 250 EJBs sem necessidade. Eu não sou do tipo que odeia EJB, eles têm as suas funções, mas com certeza não é o martelo de ouro, e nem todos os problemas são pregos ! Ah, e nao tem nenhum teste automatizado ! NENHUM ! Como esse software sobreviveu ?

Apelidamos a aplicação carinhosamente de NullPointerException Hell, já que em TODAS as classes geradas automaticamente tem NPEs a vontade. Nenhum input é validado !

Ex, só pra ilustrar como estão as coisas:

public bla.bla.Output execute (bla.bla.Input input, bla.bla.Output output)
{
    Collection col = input.getSomeCollection();
    Iterator it = col.iterator();
    while(it.hasNext())
    {
        Object someObject = it.next();
        if (someObject.lenght() > 3)
        {
            …
        }
    …
    }
}

Quantos NPEs voces podem achar aí ? É isso que dá gerar código "automaticamente" …

Começamos por tirar todos os entity beans e transformá-los em DAOs + Hibernate. E os session beans serão aos poucos trocados por, acreditem, POJOs !

Há luz no fim do túnel !

Posts Relacionados: