Objetivo: Aprender a comunicar decisões arquiteturais para outras equipes e consolidar o conhecimento.
Tópicos:
Diagramas Arquiteturais: Introdução simplificada ao Modelo C4 (Contexto e Contêineres) ou UML (Componentes e Implantação).
ADRs (Architecture Decision Records): Como e por que documentar as escolhas de tecnologia.
Apresentação de Projetos: Defesa das escolhas arquiteturais.
Prática/Projeto Final: Os alunos devem desenhar a arquitetura completa de um sistema (como uma plataforma EAD corporativa ou um sistema de gestão educacional), justificando as escolhas de frameworks, padrões, banco de dados e modelo de implantação.
Objetivo: Garantir que a arquitetura escolhida suporte o crescimento e seja segura.
Tópicos:
Atributos de Qualidade (NFRs - Requisitos Não Funcionais): Desempenho, escalabilidade, disponibilidade e manutenibilidade.
Segurança na Arquitetura: Padrões de autenticação em sistemas distribuídos (Tokens JWT e OAuth).
Estratégias de Escalabilidade: Escalonamento Vertical (mais hardware) vs. Horizontal (mais instâncias).
Prática: Exercício de "Troubleshooting Arquitetural", onde os alunos recebem o desenho de uma arquitetura com falhas de gargalo de performance e precisam propor soluções.
Objetivo: Introduzir conceitos de sistemas distribuídos e o uso de infraestrutura como serviço.
Tópicos:
Transição para Microsserviços: Quando quebrar o monólito? Desafios de comunicação e dados distribuídos.
Computação em Nuvem e Serverless: Reduzindo a dependência de servidores físicos.
BaaS (Backend as a Service): Acelerando o desenvolvimento com infraestrutura gerenciada.
Prática: Estudo de caso integrando uma aplicação frontend (como React) consumindo serviços em nuvem (como a arquitetura do Firebase para autenticação e banco de dados em tempo real).
Objetivo: Compreender o desacoplamento de sistemas e a comunicação moderna na web.
Tópicos:
Evolução do Cliente-Servidor: Quando o frontend se separa do backend.
Arquitetura REST e RESTful: Princípios, recursos e statelessness.
Verbos HTTP e Status Codes: A gramática da comunicação entre sistemas (GET, POST, PUT, DELETE).
Formatos de Troca de Dados: JSON e XML.
Prática: Desenhar os endpoints de uma API para um sistema escolar (ex: rotas para turmas, alunos e notas) e simular chamadas usando ferramentas como Postman ou Insomnia.
Objetivo: Diferenciar código de arquitetura e dominar o padrão clássico mais utilizado na web.
Tópicos:
O que é Arquitetura de Software: Diferença entre Design Patterns (nível de código) e Arquitetura (nível de sistema).
Arquiteturas em Camadas (Layered Architecture): Separação de responsabilidades (Apresentação, Regócio, Persistência).
O Padrão MVC (Model-View-Controller): Como ele funciona na prática.
Monólitos: Vantagens e desvantagens de ter toda a aplicação em um único bloco.
Prática: Analisar a estrutura de pastas e o fluxo de dados em um framework MVC tradicional (ferramentas baseadas em PHP, como CakePHP, são excelentes exemplos para ilustrar essa separação visualmente).
Carga Horária Total: 40 Horas
Duração: 5 Semanas (8 horas por semana)
Ementa Sugerida: Introdução a padrões de arquitetura de software, arquiteturas monolíticas vs. distribuídas, padrão MVC, desenvolvimento orientado a serviços, APIs RESTful, noções de arquitetura em nuvem e Serverless, e documentação de arquitetura.
Objetivo: Diferenciar código de arquitetura e dominar o padrão clássico mais utilizado na web.
Tópicos:
O que é Arquitetura de Software: Diferença entre Design Patterns (nível de código) e Arquitetura (nível de sistema).
Arquiteturas em Camadas (Layered Architecture): Separação de responsabilidades (Apresentação, Regócio, Persistência).
O Padrão MVC (Model-View-Controller): Como ele funciona na prática.
Monólitos: Vantagens e desvantagens de ter toda a aplicação em um único bloco.
Prática: Analisar a estrutura de pastas e o fluxo de dados em um framework MVC tradicional (ferramentas baseadas em PHP, como CakePHP, são excelentes exemplos para ilustrar essa separação visualmente).
Objetivo: Compreender o desacoplamento de sistemas e a comunicação moderna na web.
Tópicos:
Evolução do Cliente-Servidor: Quando o frontend se separa do backend.
Arquitetura REST e RESTful: Princípios, recursos e statelessness.
Verbos HTTP e Status Codes: A gramática da comunicação entre sistemas (GET, POST, PUT, DELETE).
Formatos de Troca de Dados: JSON e XML.
Prática: Desenhar os endpoints de uma API para um sistema escolar (ex: rotas para turmas, alunos e notas) e simular chamadas usando ferramentas como Postman ou Insomnia.
Objetivo: Introduzir conceitos de sistemas distribuídos e o uso de infraestrutura como serviço.
Tópicos:
Transição para Microsserviços: Quando quebrar o monólito? Desafios de comunicação e dados distribuídos.
Computação em Nuvem e Serverless: Reduzindo a dependência de servidores físicos.
BaaS (Backend as a Service): Acelerando o desenvolvimento com infraestrutura gerenciada.
Prática: Estudo de caso integrando uma aplicação frontend (como React) consumindo serviços em nuvem (como a arquitetura do Firebase para autenticação e banco de dados em tempo real).
Objetivo: Garantir que a arquitetura escolhida suporte o crescimento e seja segura.
Tópicos:
Atributos de Qualidade (NFRs - Requisitos Não Funcionais): Desempenho, escalabilidade, disponibilidade e manutenibilidade.
Segurança na Arquitetura: Padrões de autenticação em sistemas distribuídos (Tokens JWT e OAuth).
Estratégias de Escalabilidade: Escalonamento Vertical (mais hardware) vs. Horizontal (mais instâncias).
Prática: Exercício de "Troubleshooting Arquitetural", onde os alunos recebem o desenho de uma arquitetura com falhas de gargalo de performance e precisam propor soluções.
Objetivo: Aprender a comunicar decisões arquiteturais para outras equipes e consolidar o conhecimento.
Tópicos:
Diagramas Arquiteturais: Introdução simplificada ao Modelo C4 (Contexto e Contêineres) ou UML (Componentes e Implantação).
ADRs (Architecture Decision Records): Como e por que documentar as escolhas de tecnologia.
Apresentação de Projetos: Defesa das escolhas arquiteturais.
Prática/Projeto Final: Os alunos devem desenhar a arquitetura completa de um sistema (como uma plataforma EAD corporativa ou um sistema de gestão educacional), justificando as escolhas de frameworks, padrões, banco de dados e modelo de implantação.
Atividade Descrição Peso
Estudo de Caso (MVC x API) Análise comparativa escrita identificando qual arquitetura
é melhor para dois cenários distintos propostos. 20%
Desenho de API (REST) Entrega da documentação de endpoints (rotas, verbos, payloads)
para um módulo de sistema. 30%
Projeto Final (Design de Arquitetura) Criação e defesa de um diagrama de arquitetura (Modelo C4 ou UML)
para resolver um problema de negócio real, acompanhado de um ADR. 50%