Conceitos para estudar em Programação
1. Fundamentos de código limpo
- Nomeação clara de variáveis, funções e módulos.
- Funções pequenas, com responsabilidade única.
- Redução de duplicação e simplificação de fluxos condicionais.
2. Testes e qualidade
- Testes unitários, integração e ponta a ponta.
- Pirâmide de testes e estratégia por risco.
- Property-based testing para validação de regras gerais.
3. Modelagem e arquitetura
- Separação em camadas (domínio, aplicação, infraestrutura).
- DDD estratégico (Bounded Context e Context Mapping).
- Padrões de integração (eventos, filas, API síncrona).
4. Robustez e segurança
- Programação defensiva e validação de entradas.
- "Parse, don’t validate" para garantir tipos corretos cedo.
- Tratamento de erros com contexto e observabilidade.
- Concorrência vs paralelismo.
- I/O bound e CPU bound.
- Profiling para identificar gargalos antes de otimizar.
6. Prática recomendada
- Escolher um tema por semana.
- Implementar um mini projeto por tema.
- Registrar aprendizados e trade-offs na própria nota.