ROADMAP DE ESTUDOS – ARQUITETURA DE SOFTWARE
| Temas | Curto Prazo | Médio Prazo | Longo Prazo |
|---|---|---|---|
| Fundamentos de Arquitetura de Software | Compreender o papel da arquitetura no ciclo de desenvolvimento | Aplicar princípios arquiteturais em projetos próprios | Tomar decisões arquiteturais baseadas em requisitos de negócio |
| Diferença entre arquitetura, design e implementação | Documentar arquiteturas utilizando C4 Model | Elaborar Architecture Decision Records (ADR) | |
| Estudar atributos de qualidade (escalabilidade, disponibilidade, segurança e manutenibilidade) | Avaliar trade-offs arquiteturais em estudos de caso | Realizar revisões arquiteturais completas | |
| Padrões Arquiteturais | Compreender Arquitetura em Camadas (Layered Architecture) | Implementar Clean Architecture em projeto real | Projetar sistemas complexos utilizando múltiplos padrões arquiteturais |
| Estudar MVC e arquitetura monolítica | Aplicar Hexagonal Architecture (Ports and Adapters) | Escolher arquiteturas adequadas conforme contexto do negócio | |
| Conhecer conceitos de Domain-Driven Design (DDD) | Implementar bounded contexts e agregados | Liderar modelagem estratégica baseada em DDD | |
| Arquitetura para Sistemas Distribuídos | Entender APIs REST e comunicação HTTP | Desenvolver microsserviços básicos | Projetar ecossistemas distribuídos escaláveis |
| Estudar mensageria (RabbitMQ, Kafka) | Implementar comunicação assíncrona entre serviços | Aplicar Event-Driven Architecture em produção | |
| Aprender conceitos de consistência, disponibilidade e particionamento | Implementar Saga Pattern e Circuit Breaker | Resolver problemas de resiliência e tolerância a falhas em larga escala | |
| Banco de Dados e Persistência | Revisar modelagem relacional e normalização | Projetar bancos para alta performance | Definir estratégias de persistência para arquiteturas complexas |
| Aprender índices e otimização de consultas | Estudar bancos NoSQL (MongoDB, Redis) | Implementar estratégias de cache distribuído | |
| Compreender transações e ACID | Aplicar CQRS em projetos práticos | Implementar Event Sourcing quando apropriado | |
| Cloud e Infraestrutura | Aprender fundamentos de computação em nuvem | Implantar aplicações utilizando Docker e Kubernetes | Projetar arquiteturas cloud-native |
| Conhecer serviços básicos da AWS | Utilizar serviços gerenciados da nuvem | Definir estratégias multi-cloud ou híbridas | |
| Estudar Infraestrutura como Código (Terraform) | Automatizar ambientes de desenvolvimento e produção | Projetar plataformas altamente disponíveis |