Sem resumo de edição |
|||
| Linha 1: | Linha 1: | ||
[[Arquivo:14.png]] | |||
= Conceito = | = Conceito = | ||
*Uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade específica, por configuração durante a programação de uma aplicação.[1] | *Uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade específica, por configuração durante a programação de uma aplicação.[1] | ||
Edição das 16h02min de 22 de maio de 2017
Conceito
- Uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade específica, por configuração durante a programação de uma aplicação.[1]
- Definir exatamente o que é um framework não é uma tarefa tão fácil, muitos são os conceitos criados por profissionais da área, mas em conceitos gerais seria um conjunto de códigos abstratos e/ou genéricos, geralmente classes implmentadas em uma linguagem de programação, que são usadas para modelar e construir as partes de uma aplicação que são comuns à um domínio de problemas específicos.[2]
Características básicas
- Um framework diferentemente de uma biblioteca, tem módulos estruturados seguindo algum padrão de projeto (como o MVC por exemplo) sendo praticamente impossível construir a aplicação sem seguir os padroẽs especificados pelo framework. Exemplo: (Framework Web) É um tipo de framework designado para suportar o desenvolvimento de sites web dinâmicos, aplicações web e serviços web, e tem a implementação de módulos comuns à esse tipo de aplicação como por exemplo: acesso à banco de dados e gerenciamento de sessão.[3]
- Um tipo de arquitetura muito usado nesses frameworks é o padrão MVC (Modelo Visão Controlador), a idéia principal desse modelo é fazer a separação entre o modelo de dados, as regras de negócios e a interface do usuário.[3] Exemplos de framework web seriam: Spring (Java), Jboss Seam (Java), Jquery (JavaScript), AngularJS (JavaScript), Zend (PHP), Symfony (PHP), Django (Python), Ruby on Rails (Ruby), Etc.
Classificação
- Frameworks verticais – mais comummente chamados frameworks especialistas, são criados através da experiência obtida em projetos anteriores de um determinado contexto específico[1], geralmente tem as funçoẽs mais comuns de uma aplicação de um determinado escopo (como Web por exemplo) já implementadas (ou pelo menos parte delas) de maneira que o desenvolvedor não precisara recriar do zero toda a estrutura da aplicação uma vez que a maior parte dos sistemas de um determinado domínio tem requisítos funcionais comuns em todos eles. O desenvolvedor então só terá que personalizar os módulos de maneira que atendam aos requisítos específicos do seu sistema.
- Frameworks horizontais – Esse tipo de framework não depende do domínio da aplicação e pode ser usado para resolver problemas de diferentes domínios. Exemplos: interfaces gráficas.[1]
Benefícios
- Eficiência – Como as rotinas mais comuns de uma aplicação já terão sido implementadas, o tempo total de desenvolvimento do sistema será menor.
- Segurança – Muitas das falhas de segurança comuns à uma aplicação já terão sido tratadas pois a maioria dos frameworks são desenvolvidos por comunidades e diversas pessoas reportando erros de forma colaborativa.
- Custo – A maioria dos frameworks são gratuitos, não gerando custos maiores ao desenvolvimento.
- Documentação – A maioria possui uma vasta documentação, explicando os detalhes e funcionamento de suas ferramentas.
- Padrões de codificação – por seguir um padrão de código, além de melhorar a legibilidade do código, pode tornar a manutenção mais simples.
Desafios
- O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework.
- Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada.[2]
Referências
