Caipyra 2025

Refatoração: aperfeiçoando o design de códigos existentes
19/06/2025 , Sala Vinho Quente

Aprenda a transformar código difícil de ler em código limpo. Serão abordadas, na prática, técnicas para reescrita de código, tornando-o mais fácil de manter e melhorar o design da sua aplicação.


Existem muitos materiais sobre como escrver código e criar sistemas de qualidade, porém várias vezes não estamos criando um sistema do zero. Somos "presenteados" os famosos sistemas legados, que possuem código mau escrito, design estranho ou praticamente inexistente. Portanto, busco trazer neste tutorial técnicas de refatoração, ou seja, procedimentos para auxiliar na melhoria de código já existente.

Como diria Martin Fowler: "Qualquer tolo escreve um código que um computador possa entender. Bons programadores escrevem códigos que os seres humanos podem entender".

Refatoração é uma técnica de programação que consiste em alterar o código sem mudar nenhuma funcionalidade, com objetivo de torná-lo mais fácil de ler e manter geralmente com um propósito específico do negócio (ou seja, não por pura estética ou diversão, apesar de também poder ser usado para isto).

Neste tutorial serão explicados os conceitos muito brevemente, sendo que na maior parte será feita a refatoração (codificação) de um exemplo prático. Teremos um código que não está nas melhoras condições e serão aplicadas técnicas de refatoração que, passo a passo, tornarão o código mais fácil de entender.

Este tutorial terá como base principalmente o livro "Refatoração" escrito por Martin Fowler com contribuições de Kent Beck.


Quais conhecimentos prévios são necessários para que seja possível acompanhar bem a sua atividade?

Conhecimentos básicos em programação e orientação a objetos já é o bastante para tirar proveito deste curso. Noções de testes unitários são bem vindas, mas não obrigatório. Acredito que alguém no segundo ano da faculdade de programação (ou experiência similar) esteja capacitado para este tutorial.

O que as pessoas que participarem podem esperar aprender na sua atividade?

As pessoas podem esperar aprender técnicas que as permitirão identificar código ruim e melhorá-lo. Também pretendo passar algumas referências de outros materiais para quem desejar se aprofundar no tema.

Escolha uma ou mais áreas em que essa proposta se encaixa

Desenvolvimento Web, Testes, Arquitetura de software

Programador profissional, principalmente em Python, há mais de uma década. Atualmente é líder técnico na Xapo Bank e batalha todos os dias contra a burocracia para continuar programando.