Definição De Framework
Em desenvolvimento de software, framework, é um termo utilizado para determinar estruturas com bases comuns em seus alicerces. É constituído por uma infinidade de bibliotecas de classes, próprios e de terceiros, cuja única intenção seja simplificar a codificação de um projeto. É agregado por metodologias, arquiteturas e designs, que se destacam na reusabilidade de código e fluxo de controle desta aplicação, tornando-o genérico a fim de acelerar um processo de construção de um software.
O Futuro Da Programação Está Em Suas Mãos
Frameworks sempre foram sinônimos de merchandising de grandes empresas para promover soluções ao mundo do desenvolvimento, hoje, é mais associada a comunidades que promovem projetos desenvolvidos em software livre, uma vez que qualquer pessoa pode contribuir para com seu crescimento. Ninguém quer se passar como vilão. Foi nessa ideologia que a Adobe tornou seu popular framework RIA em open-source, o Flex. A Microsoft, mais experiente com o fracasso do clássico ASP e seus componentes na maioria pagos, criou o CodePlex, uma comunidade que divulga soluções abertas para servir de apoio aos desenvolvedores que utilizam seu framework Dotnet.
Todo framework surge com base de complementar uma necessidade existente no desenvolvimento. O reprocesso é uma tarefa lastimável, e que é superada com a utilização de frameworks. Você com certeza não foi e nem será o único a se deparar com atividades massantes, e por sinal, impossíveis de se realizar a primeira vista. Mas que sim, isso já fora observado por outras centenas de desenvolvedores e uma solução para ela definida e que com certeza fará parte de um pacote de atualização de um novo release para algum framework. É o que chamamos de interesses coletivos. Sem frameworks, as estimativas de projetos seriam mais longas e com maior facilidade de encontrar bugs em rotinas de programações, já que seria trabalho de poucas pessoas.
Figura 1 – A união que faz a diferença.
Benefícios E Malefícios De Um Framework.
Está mais do que claro que frameworks são precisos. Mas sabemos realmente tudo que ele pode nos oferecer?
Benefícios:
- Reutilização de códigos
- Forçar o uso de boas práticas
- Arquitetura da aplicação em MVC
- Helpers que auxiliam na programação
- Redução no tempo de desenvolvimento
- Suporte da comunidade que o desenvolveu
Malefícios:
- Custo de migração com risco altíssimo
- Difícil customização do núcleo do framework
- Escassez de profissionais especialistas no mercado
- Muitas vezes a documentação é relativamente fraca
- O investimento em treinamentos deve ser constante
- Sem apoio, o framework é facilmente descontinuado
Como observado, é importante que os arquitetos de software analisem cada variável envolvida e adote o melhor framework ao projeto. Muitas vezes se escolhe um framework potencial para suprir simples tarefas, tais como os projetos a curto prazo, e isso torna o desenvolvimento do projeto um tanto burocrático a nível de metodologias, configurações e codificações que podem ocasionar numa maior demanda.
O fator mais preocupante aqui listado é o risco na migração de um projeto. O tiro pode sair pela culatra caso alguma destas variáveis sejam ignoradas. Adotar um novo framework significa gastos em treinamentos com equipe, refatoramento de código, e principalmente na remodelagem da estrutura que já funcionava e que agora deverá ser revista e testada novamente. Planejar a longo prazo será essencial.
Figura 2 – Checklist de definição de um framework.
A luz no fim do túnel.
Em geral, frameworks já possuem em sua arquitetura base, estruturas de controle da aplicação, esquemas de autenticação e permissão de usuários, processos de controle de threads, otimização para cacheamento de páginas, mapeamento e modelagem do banco de dados, template engines para separação do código da programação e da HTML, e enfim, uma infinidade de recursos que são utilizados no dia-a-dia.
Por fim, frameworks são os grandes responsáveis pelas engenhocas vistas na última década na internet. Sem eles, não seria possível haver tantos serviços bem distribuídos, estruturados, com alta performance e escabilidade. São responsáveis também por oferecer coletâneas de API‘s já integradas com seu núcleo nativo que visam ampliar os horizontes de programadores aficionados. The life continues my old friend!
Figura 3 – Programadores realizados.
Por onde começar?
Escolha um framewok que tenha como base, alguma linguagem de programação que você já seja familiarizado, caso contrário serão dois trabalhos para você. Analise as vantagens e desvantagens deste framework, acredite, nenhum será perfeito.
Procure opiniões a respeito de quem mantém este projeto, se tem recebido boas constribuições da comunidade, cases de sucesso através do seu uso, tudo que lhe permita confiar neste framework. Invista tempo, apenas no que lhe oferecer retorno.
Na página oficial de cada framework, além de ler toda a documentação, procure por artigos, webcasts e tutoriais em gerais de como realizar tarefas do cotidiano. É a melhor maneira de habitualmente migrar suas atividades.
Segue uma lista de frameworks mais populares para desenvolvimento web:
PHP:
ASP:
Flash:
Ruby:
Java:
Phyton:
Referências Bibliográficas.
What Is A Framework.
http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx
Software Framework.
http://en.wikipedia.org/wiki/Software_framework
Web application framework.
http://docforge.com/wiki/Web_application_framework
Why Use a Framework.
http://corfield.org/blog/index.cfm/do/blog.entry/entry/Why_Use_a_Framework
Why you should be using a framework.
http://www.joshsharp.com.au/blog/view/why_you_should_be_using_a_framework
Why you should use a Web Application framework.
http://web2.0entrepreneur.com/7/why-you-should-use-a-web-application-framework.html