Aula 06 – Arquitetura de Software
🎯 Objetivos de Aprendizagem
- Entender o conceito de Arquitetura de Software.
- Conhecer padrões arquiteturais comuns (Monólito, Microserviços).
- Entender a separação Frontend vs. Backend.
📚 Conteúdo
1. O que é Arquitetura?
Se a modelagem (Aula 05) é a planta baixa da casa, a Arquitetura é a estrutura e engenharia por trás. Define a organização fundamental do sistema e as decisões difíceis de mudar.
Decisão Estratégica
Arquitetura de software é o conjunto de decisões técnicas significativas sobre a estrutura de um sistema e seus componentes.
2. Monólito vs. Microserviços
A) Monólito (Tudo em um só lugar)
O sistema inteiro é construído como uma única unidade.
Vantagens
- Mais simples de desenvolver inicialmente.
- Testes e deploys mais diretos.
- Ideal para times pequenos.
B) Microserviços (Dividir para conquistar)
O sistema é composto por pequenos serviços independentes que se comunicam via rede (APIs).
Atenção
Embora escalável, microserviços introduzem uma complexidade enorme de rede e gerenciamento (ex: Docker, Kubernetes).
3. Padrão Multicamadas (Layered)
A forma mais clássica de organizar o código internamente:
- Apresentação (UI): Interface com o usuário.
- Negócio (BLL): Onde as regras "mandam".
- Dados (DAL): Acesso ao banco de dados.
graph TD
A["Frontend (UI)"] -- "API Call" --> B["Backend (Lógica)"]
B -- "Query" --> C["Banco de Dados"]
4. Simulação de Arquitetura (TermynalJS)
📝 Exercícios Progressivos
- [Básico] O que é Arquitetura de Software?
- [Básico] Diferencie Frontend de Backend.
- [Intermediário] Cite uma vantagem e uma desvantagem de usar Microserviços.
- [Intermediário] Por que dizemos que decisões arquiteturais são "caras"?
- [Desafio] Uma startup quer lançar um MVP (Produto Mínimo Viável) em 2 meses com um time de 3 pessoas. Você recomendaria Monólito ou Microserviços? Justifique.
🚀 Mini-Projeto 06: Planejando a Estrutura
Desenhe (ou descreva) quais seriam as "camadas" de um sistema de Login. O que aconteceria na camada de Interface, na camada de Lógica e na camada de Banco de Dados?
📅 Atividades
- [ ] Ver Slides da Aula
- [ ] Fazer Quiz
- [ ] Praticar Exercícios
- [ ] Realizar Projeto