O BÁSICO da Arquitetura de Software: aprenda a SEPARAR CÓDIGO do jeito certo
Sobre este curso
Aprenda os conceitos fundamentais de arquitetura de software e por que, quando e como separar seu código para criar aplicações fáceis de manter.
Este vídeo explica os conceitos fundamentais por trás da arquitetura de software, focando no "porquê" de separar o código. O instrutor, Andre Okazaki, argumenta que arquitetura é um "jogo de limites e responsabilidades" (como acoplamento e coesão) [00:01:15] e que o objetivo principal de separar o código não é seguir um padrão cegamente [00:08:51], mas sim facilitar a manutenção, alteração e o reaproveitamento do código [00:09:39].
O que você vai aprender
- Por que separamos o código (além de "seguir padrões") [00:08:28].
- O objetivo da arquitetura: facilitar a manutenção, alteração e reutilização [00:09:39].
- Quando separar o código:
- Para facilitar o entendimento [00:12:06].
- Para reaproveitar lógica e evitar duplicação (ex: validações, conexão com banco) [00:10:59], [00:13:20].
- Análise de um exemplo de "código ruim" (uma Minimal API no .NET com toda a lógica em um único arquivo) [00:02:10], [00:04:26].
- As separações mais comuns em uma aplicação:
- Controllers: Devem apenas rotear requisições e retornar códigos HTTP [00:15:17].
- Fluxos de Negócio: (Use Cases ou Services) Representam os processos do software [00:17:02].
- Regras de Negócio: Definições e lógicas específicas do domínio (muitas vezes confundidas com fluxos) [00:18:43].
- Dados: Classes de acesso a dados (Repositórios, DBContext) [00:20:41].
- Tecnologias Externas: Clientes de e-mail, chamadas de outras APIs, etc. [00:22:18].
- Como começar um projeto: É recomendado começar simples (com tudo junto) e separar/refatorar conforme a complexidade aumenta e a necessidade de separação aparece [00:16:26], [00:29:50].
- Como lidar com padrões de arquitetura (Clean Architecture, Hexagonal) em empresas que já têm ou não um padrão definido [00:25:49], [00:26:18].
Pré-requisitos
- Conhecimento de programação.
- Os exemplos são em .NET/C# [00:02:10], mas os conceitos de arquitetura são universais e aplicáveis a qualquer linguagem [00:03:02].
Para quem é este curso
Desenvolvedores que têm dúvidas sobre como estruturar projetos, dividir o código em camadas e querem entender os conceitos fundamentais por trás das decisões de arquitetura de software [00:00:00], [00:00:40].