Orientação a Objetos: Refinando seu Processo de Tomada de Decisão
Vamos buscar refinar nossos processos mentais para identificar oportunidades de uso de abstrações dentro do sistema.

Alberto Souza
Software e Education Engineer
Conteúdo do curso
1 módulos • 27 aulas
O que vamos treinar neste módulo?
Algumas heurísticas que já são bem padrões
Instruções para que você consiga realizar os desafios para cada conceito (NÃO PULE)
Heurística #1 Coesão Básica: O que essa heurística quer dizer?
Heurística #1 Coesão Básica: Mais um exemplo
Heurística #1 Coesão Básica: Primeiro desafio
Heurística #1 Coesão Básica: Segundo desafio
Heurística #2 Quando o tipo padrão não é mais suficiente: Explicação e primeiro exemplo
Heurística #2 Quando o tipo padrão não é mais suficiente: Retorno sem a semântica suficiente
Heurística #2 Quando o tipo padrão não é mais suficiente: Primeiro desafio
Heurística #2 Quando o tipo padrão não é mais suficiente: Segundo desafio
Heurística #2 Quando o tipo padrão não é mais suficiente: Refletindo sobre o que fizemos na heurística de coesão básica
Heurística #2 Quando o tipo padrão não é mais suficiente: Relacionando as soluções com padrões existentes: Value Object e Tiny Objects
Heurística #3 Polimorfismo para postergar decisões ou expressar incertezas no código: Explicação e exemplo
Heurística #3 Polimorfismo para postergar decisões ou expressar incertezas no código: Desafio
Heurística #4 Até coleções podem ganhar suas próprias abstrações:
Heurística #4 Até coleções podem ganahr suas próprias abstrações: Desafio
Heurística #5 Identificando oportunidades de aplicação de funções aplicar template method: Explicação e exemplo
Heurística #5 Identificando oportunidades de aplicação de funções para construir templates de código: Desafio
Heurística #5 Identificando oportunidades de aplicação de funções para construir templates de código: Desafio surpresa
Heurística #6 Enums mais ricas: Explicação e exemplo
Heurística #6 Enums mais ricas: Primeiro desafio
Heurística #6 Enums mais ricas: Segundo desafio
Heurística #7 Identificação da oportunidade para inverter dependências: Explicação e exemplo
Heurística #7 Identificação da oportunidade para inverter dependências: Desafio
O CDD pode te ajudar a criar heurísticas para controlar a complexidade do código
Um pouco mais sobre acoplamento mental e self testing
O que você vai aprender
Conteúdo técnico e prático para você dominar os conceitos de escalabilidade
Seu instrutor

Alberto Souza
Software e Education Engineer
Especialista em educação como vetor de performance e qualidade de software, com foco em metodologias que aceleram o desenvolvimento de competências técnicas. Criou programas estruturados para acelerar o processo de amadurecimento de diversos times de engenharia. Sua abordagem diferenciada combina aprendizagem estruturada, prática intencional e aplicação em projetos reais. Atuou como Senior Staff Engineer no Nubank, foi Diretor de Tecnologia e Educação na Zup e sócio-fundador da Alura.

