Objetivos
Objetivo desse curso é oferecer aos participantes conhecimentos teórico e práticos relacionados a elaboração de arquitetura de software baseados em camadas [layered], que promova flexibilidade, reutilização e sustentabilidade ao projeto.
O foco desse curso é agrupar e promover a base de conhecimentos necessários que antecedem os estudos de arquiteturas modernas e avançados como DDD, Hexagonal, Onion, Clear Archictecture e Microservices.
O curso aborda tópicos fundamentais de arquitetura de software e implementa um estudo de caso 100% prático em Java com banco de dados relacional e GUI, aplicando e provando os conceitos ministrados.
Conteúdo Programático:
Introdução a Arquitetura de Software
Metáfora com princípios e valores de arquitetura.
Definição de arquitetura de software.
Separação de preocupações - [SOC].
Arquitetura baseado em camadas - [LAYERED].
Camadas básicas de uma solução.
Acoplamento.
Coesão.
Projeto por Contratos - [DbC].
Isolamento de Erros.
Documentação arquitetural.
Estudo de Caso
Implementação de um estudo de caso aplicando e fazendo a prova na prática de todos os conceitos ministrados no curso.
Explicação e uso prático de vários design patterns.
Simulação de alterações do arquitetura.
Dicas finais.
Leituras complementares.