Devo desenvolver um framework próprio?

Olá pessoal,

Nas últimas semanas tivemos uma discussão na comunidade PHP-MG sobre o uso ou não de frameworks pessoais voltados para a web e vejo que esta é uma questão que está sempre em pauta. Vou comentar um pouco sobre este assunto, que as vezes é um pouco polêmico 🙂

Primeiramente, qual é a definição de um framework? Um framework em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos, provendo uma funcionalidade genérica, são componentes prontos para uso, eles aumentam a produtividade do desenvolvedor, visto que os componentes podem ser re-aproveitados, não havendo a necessidade de desenvolver novamente todas as funcionalidades a cada novo projeto. Está tudo ali pronto, testado e documentado, é so pegar e usar.

dicas-desenvolvimento-software-funcional-qualidade

Devo desenvolver um framework pessoal?

Se você usa/mantêm um framework pessoal ou está pensando em desenvolver seu proprio framework, deve dar atenção aos fatores abaixo.

Reflexões a serem feitas antes de se construir um framework pessoal

  • Construir um framework é complexo, não é algo simples, demanda tempo e equipe, pense nisto.
  • Re-uso não vem sozinho: deve ser planejado.
  • Benefícios são realizados em longo prazo, em vista disto, quem pode pensar em longo prazo quando se está competindo com os avanços da linguagem e das inovações da internet? Poucas empresas

Se você trabalha com um framework pessoal, analise as seguintes perguntas:

  • Possuo uma documentação atualizada de todos os componentes? Todos os meus componentes são testados?
  • Se eu algum dia trabalhar em equipe, os outros desenvolvedores terão condições de desenvolver o projeto em tempo hábil baseado na documentação existente?
  • Trabalho em melhorias, correção de bugs, desenvolvimento de novos componentes, acompanhando as inovações da internet/mercado?

É fundamental analisar todas as questões acima, antes de usar ou começar a desenvolver um framework pessoal.

Gostaria de deixar claro que não sou contra o desenvolvimento de um framework pessoal, acho válido para questões de estudo ou quando você tem uma equipe por trás que o mantêm ativo e atualizado, pois quando nao há uma equipe envolvida, a tendência do mesmo é ficar obsoleto e cair em desuso.

Em 2007 quando estava formando na graduação eu desenvolvi um framework baseado em MVC, o mesmo me gerava todos os controllers, views e DAOs baseados na estrutura do meu banco de dados. Era uma maravilha, bastava informar a pasta do projeto e o nome do banco que ele criava todos os arquivos, super produtivo. Mas como a vida é uma caixinha de surpresas, passei a receber alguns pedidos de clientes para implementar novas funcionalidades nos projetos, adicionar urls amigavéis, utilizar webservices, multiplos layouts, integrações de login com ldap, etc.

Foi apartir daí que vi que não conseguiria conciliar o meu tempo, eu não teria condições de parar para implementar todas aquelas funcionalidades ao meu framework, bem como desenvolver meus projetos em andamento, e todo mundo aqui sabe que tempo é dinheiro 🙂 .

Foi neste momento que parei tudo e resolvi me dedicar ao estudo de um framework open source, no caso escolhi o Zend Framework, até mesmo por ser mantido por uma empresa de respeito que é a ZEND. Minha surpresa foi grande, tudo que eu havia desenvolvido em meu framework o ZF já fazia com facilidade e qualidade, tudo que eu precisava estava lá pronto e de forma extremamente simples para o uso, sem contar na variedade de outros componentes que estavam la prontos para quando eu precisasse e acrescentariam qualidade aos meus projetos. Não pensei duas vezes, migrei todos meus projetos para o ZF e exclui meu framework, e lhes digo com toda sinceridade,  não me arrependo um segundo de ter feito esta escolha, quem desenvolve em um framework open source entende bem o que estou falando.

Vantagens de se utilizar um framework Open – Source

  • Documentação ampla e bem organizada disponível em diversas linguas
  • Muitos deles possuem tutoriais em vídeo, exemplos de uso, wiki
  • Comunidade Ativa e Colaborativa, Fóruns (Você não estará sozinho para a solução de um problema, ou dúvida de uso, terá sempre algo ou alguém ali (online) para ter dar uma mãozinha)

Existem vários frameworks disponíveis para as diversas linguagens de programação, é importante optar por um que atenda a suas necessidades, a seu método e estilo de trabalho.

Um abraço a todos. Deixem suas opiniões e observações abaixo!

Euller Cristian

Mais artigos deste autor »

Formado em Sistemas de Informação pela UNIPAC Bom Despacho. Amante da tecnologia, desenvolve atualmente nas linguagens (PHP + Zend Framework).

Estudando Exjts , Desenvolvimento Wordpress, Django + Python.


2 Comentários

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!