Refatoração

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.

27 aulas
Maurício Aniche

Maurício Aniche

Staff Engineer @ Uber

Conteúdo do curso

1 módulos • 27 aulas

Bem vindo ao curso!

01:21

Clonando o repositório

01:47

O problema do cálculo de descontos: Qual o problema?

02:39

O problema do cálculo de descontos: Por que este código é problemático?

06:06

O problema do cálculo de descontos: Quebrando o código em pequenas classes

12:00

O problema do cálculo de descontos: Abstraindo as regras de desconto

20:18

O problema do cálculo de descontos: Command or Query separation

04:28

O problema do cálculo de descontos: Encapsulamento e imutabilidade

05:33

O problema do cálculo de descontos: Dados e comportamento juntos

11:48

O problema do cálculo de descontos: Finalizando

01:47

O problemam do cáculo de imposto: Introdução

02:04

O problemam do cáculo de imposto: Movendo as estratégias para outras classes

07:14

O problemam do cáculo de imposto: Evitando repetição de código

07:32

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)

08:20

O problemam do cáculo de imposto: Trazendo informações do banco e resumo final

13:44

O problema da geração de notas fiscais: Introdução ao desafio

01:24

O problema da geração de notas fiscais: O padrão Observer

13:20

O problema da geração de notas fiscais: Event-based architectures

06:33

O problema da geração de notas fiscais:

02:12

O problema do processador de pagamentos: Introdução ao problema

02:02

O problema do processador de pagamentos: Information hiding

06:56

O problema do processador de pagamentos: Resumo

03:37

O problema do quebra-cabeça: Introdução ao problema

01:30

O problema do quebra-cabeça: Separação de responsabilidades

06:33

O problema do quebra-cabeça: Flexibilizando o código

03:01

O problema do quebra-cabeça: Resumo

02:25

Finalizando o curso: Resumo

09:23

O que você vai aprender

Conteúdo técnico e prático para você dominar os conceitos de escalabilidade

Identificar código procedural que precisa de refatoração
Quebrar código em pequenas classes coesas
Abstrair regras de negócio com Strategy Pattern
Command/Query Separation
Encapsulamento e imutabilidade
Observer Pattern e arquiteturas baseadas em eventos
Information Hiding
Separação de responsabilidades

Seu instrutor

Maurício Aniche

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.

Domine Engenharia de IA e Desenvolvimento de Software de Alta Qualidade

Rafael
Alberto
Daniel
COMEÇAR AGORA