Frameworks
Frameworks em Engenharia de Software para Concursos
Frameworks são estruturas pré-definidas que oferecem funcionalidades genéricas para acelerar o desenvolvimento de software, seguindo boas práticas e padrões de projeto.
Principais Características
- Reutilização de código: Evita retrabalho com componentes prontos
- Inversão de controle: Fluxo controlado pelo framework (Hollywood Principle)
- Extensibilidade: Permite customização via herança ou composição
- Padronização: Define arquitetura e convenções para o projeto
Tipos de Frameworks
- Horizontal (infraestrutura): Aplicável a diversos domínios (ex: Spring, .NET)
- Vertical (específico): Focado em domínio particular (ex: Django para web)
Vantagens
- Redução de tempo de desenvolvimento
- Maior confiabilidade (componentes testados)
- Facilita manutenção
- Documentação e comunidade robustas
Desvantagens
- Curva de aprendizagem
- Possível overhead para projetos simples
- Dependência do framework
Exemplos Relevantes
- Web: Angular, React, Vue.js
- Backend: Spring Boot, Express, Django
- Testes: JUnit, Selenium, Jest
- ORM: Hibernate, Entity Framework