Refatorando código procedural para OO
Muitas vezes nossas soluções resolvem o problema, mas não da forma que era necessária dado o horizonte de evolução daquele contexto. Como fazer para refatorar tais soluções? Este curso é sobre isso.

Maurício Aniche
Staff Engineer @ Uber
Conteúdo do curso
1 módulos • 27 aulas
Bem vindo ao curso!
Clonando o repositório
O problema do cálculo de descontos: Qual o problema?
O problema do cálculo de descontos: Por que este código é problemático?
O problema do cálculo de descontos: Quebrando o código em pequenas classes
O problema do cálculo de descontos: Abstraindo as regras de desconto
O problema do cálculo de descontos: Command or Query separation
O problema do cálculo de descontos: Encapsulamento e imutabilidade
O problema do cálculo de descontos: Dados e comportamento juntos
O problema do cálculo de descontos: Finalizando
O problemam do cáculo de imposto: Introdução
O problemam do cáculo de imposto: Movendo as estratégias para outras classes
O problemam do cáculo de imposto: Evitando repetição de código
O problemam do cáculo de imposto: Usando enums para conectar a estratégia (e o pq não funciona em cenários mais complicados)
O problemam do cáculo de imposto: Trazendo informações do banco e resumo final
O problema da geração de notas fiscais: Introdução ao desafio
O problema da geração de notas fiscais: O padrão Observer
O problema da geração de notas fiscais: Event-based architectures
O problema da geração de notas fiscais:
O problema do processador de pagamentos: Introdução ao problema
O problema do processador de pagamentos: Information hiding
O problema do processador de pagamentos: Resumo
O problema do quebra-cabeça: Introdução ao problema
O problema do quebra-cabeça: Separação de responsabilidades
O problema do quebra-cabeça: Flexibilizando o código
O problema do quebra-cabeça: Resumo
Finalizando o curso: Resumo
O que você vai aprender
Conteúdo técnico e prático para você dominar os conceitos de escalabilidade
Seu instrutor

Maurício Aniche
Staff Engineer @ Uber
Dedica-se a tornar engenheiros de software mais produtivos por meio de plataformas e ferramentas para desenvolvedores. Atualmente é Tech Lead (hands-on) na Adyen, liderando o time de Testing Enablement, responsável por fornecer aos engenheiros as ferramentas e estratégias de teste adequadas. Anteriormente, foi professor assistente de engenharia de software na Delft University of Technology, na Holanda. Sua pesquisa sempre teve foco em qualidade de software. Seus esforços no ensino de testes de software lhe renderam o prêmio de Professor de Ciência da Computação do Ano de 2021 e o TU Delft Education Fellowship, uma prestigiada distinção concedida a docentes inovadores. É autor de 'Effective Software Testing: A Developer's Guide' (2022) e 'Simple Object-Oriented Design' (2024), ambos publicados pela Manning, além de 'Test-Driven Development: Teste e Design no Mundo Real' (2014) e 'Orientação a Objetos e SOLID para Ninjas' (2015), publicados pela Casa do Código.


