Olá!
Vamos imaginar uma história de ficção-científica … Num reino muito distante, sem prazos apertados e com uma receita infinita,
seu gerente de projetos decide que você deverá projetar e implementar um framework de persistência objeto-relacional que será
utilizado como padrão em todas as aplicações adiante. Sem saber da existência de outros frameworks com o mesmo propósito
você levanta os requisitos, features, etc… e define todo um esquema para o mapeamento objeto relacional, utilizando XML, annotations, etc.
Também define um gerenciador que desacopla as entidades e a tarefa de executar a persistência, e com isso também você consegue
um indepedência de fornecedor de banco… define também um mecanismo para integração com o container, para transações e utilização
de outros recursos do mesmo… OK …mas se você analisar os frameworks existentes você conclui que eles provavelmente contém todos
(e possivelmente muito mais) recursos que o seu próprio framework. Além disso, eles já passaram por revisões e testes, isto é, provavelmente
estão estáveis e são bem conhecidos, isto é, possivelmente existe uma quantidade significativa de profissionais que conhecem tais frameworks,
contudo, o seu framework proprietário não. Agora imagine o tempo de projeto, implementação e testes para implementar um framework completo
baseado em JPA? Seria realmente mesmo necessário fazer isso? Porque? A menos que o seu framework de persistência (e de forma geral, o seu
framework proprietário) possua um conjunto de features realmente distintas e superiores a de outros frameworks, não vejo um motivo forte o
suficiente para isso. Essa é a idéia geral de orientação a objetos, reutilização de código, de componentes e de frameworks… evitar de “reescrever
a roda” toda a vez… utilizar o genérico adicionando-se comportamento específico. Então creio que não construímos frameworks ao nosso “bel prazer”
devido a questões de orçamento, tempo, complexidade, padronização e qualidade.
[ ]'s