- SRP: Uma classe deve ter apenas uma responsabilidade
- OCP: Aberto para extensão, fechado para modificação
- LSP: Subtipos devem ser substituíveis sem erros
- ISP: Interfaces específicas e coesas
- DIP: Dependência de abstrações, não de implementações
Checklist:
- Refatorar código para seguir SRP e OCP
- Revisar heranças para respeitar LSP
- Dividir interfaces (ISP)
- Implementar DIP com injeção de dependência
- DRY: Eliminar duplicação
- KISS: Manter a simplicidade
- YAGNI: Não implementar o que não é necessário
- Refatoração contínua
Checklist:
- Identificar e remover duplicações
- Refatorar funções longas
- Garantir simplicidade (KISS)
- Evitar funcionalidades desnecessárias (YAGNI)
- ASP.NET Core Web API
- Worker Service
- AWS Lambda
Checklist:
- Implementar Worker Service para tarefas em segundo plano
- Construir Lambda com .NET e otimizar cold start
- Unitários e Integração (xUnit, Moq, Testcontainers)
- Performance com k6
Checklist:
- Criar testes de integração com Testcontainers
- Configurar testes de performance com k6
- Definir thresholds de latência e erro
- Docker: boas práticas de dockerização
- Orquestração: ECS, Fargate, Kubernetes
Checklist:
- Criar imagem .NET com multi-stage builds
- Publicar em ECS com Fargate
- Explorar Kubernetes (opcional)
- Terraform e CloudFormation
- Reprodutibilidade e ambientes efêmeros
Checklist:
- Criar infraestrutura com Terraform
- Testar ambientes efêmeros
- Comparar CloudFormation x Terraform
- Brokers: Kafka, RabbitMQ, SQS
- Idempotência e DLQ
Checklist:
- Implementar DLQ no SQS
- Garantir idempotência no consumo de mensagens
- Auto Scaling, Load Balancer, Disaster Recovery
Checklist:
- Configurar ECS Service Auto Scaling
- Usar Application Load Balancer
- Definir estratégia de disaster recovery
- Golden Signals: Latência, Tráfego, Erros, Saturação
- RED: Rate, Errors, Duration
- Ferramentas: CloudWatch, X-Ray
Checklist:
- Configurar métricas no CloudWatch
- Criar alarmes automáticos
- Integrar tracing com AWS X-Ray
- Requisições lentas: tracing + profiling
- Problemas de banco: deadlocks, queries lentas
- Gargalos de CPU/memória: PerfView, dotnet-counters, dotnet-dump
Checklist:
- Usar PerfView para profiling
- Analisar queries lentas com EXPLAIN
- Detectar memory leaks com dotnet-dump
- Logging estruturado (TraceId, SpanId)
- ECS Exec para depuração em produção
Checklist:
- Configurar logging estruturado em JSON
- Incluir correlação de requisições
- Praticar debugging com ECS Exec