← Voltar ao início

🤖 Clean Architecture e Separação em Camadas

📚 Roteiro de Estudos

Semana 1 e 2: Fundamentos de Clean Architecture e Separação em Camadas

  • Objetivos:
    • Entender fundamentos da arquitetura limpa (Clean Architecture)
    • Compreender separação clara entre apresentação, domínio e infraestrutura.

Semana 3: Princípios SOLID

  • Objetivos:
    • Começar aprimorando qualidade e legibilidade do código com SOLID, especialmente SRP e DIP.

Semana 4: Injeção de Dependências (Dependency Injection)

  • Objetivos:
    • Entender conceito fundamental de DI e começar a aplicá-lo sem necessariamente usar frameworks.

Semana 5: Domain-Driven Design Básico (DDD)

  • Objetivos:
    • Entender conceitos básicos: Entidade, Value Object, Agregados, Serviços de Domínio.

Semana 6: Design Patterns

  • Objetivos:
    • Identificar e aprender principais padrões: Factory, Strategy, Adapter.

📌 Bibliografia recomendada

  • Clean Architecture
    • Livro: "Arquitetura Limpa" (Robert C. Martin)
  • SOLID
    • Livro: "Código Limpo" (Clean Code) - Robert C. Martin
    • Livro: "Clean Architecture" - Robert C. Martin (aborda SOLID junto com arquitetura)
  • Injeção de Dependência
    • Livro: "Dependency Injection Principles, Practices, and Patterns" - Mark Seemann, Steven van Deursen (avançado mas excelente)
    • Artigos médium sugeridos acima já são suficientes
  • Domain-Driven Design (DDD): básico
    • Livro curto: "DDD Distilled" - Vaughn Vernon (aborda conceitos essenciais)
    • Livro original completo é recomendado futuramente: "Domain-Driven Design" - Eric Evans (apenas se aprofundar muito depois)
  • Design Patterns
    • Livro clássico com exemplos interessantes para referência futura: "Head First Design Patterns" – Freeman & Freeman
    • Livro Original Gang of Four (GoF) (mais conceitual e avançado)

🔖 Dicas adicionais

  • Use um repositório GitHub ou GitLab para praticar cada conceito isoladamente em mini-projetos.
  • Revise semanalmente; uma revisão constante ajuda na consolidação.
  • Não apenas siga tutoriais, mas tente relacionar conceitos diretamente com códigos e sistemas reais que você já trabalha ou já criou.