Refatoração na Pintura

Uma das técnicas mais usadas no desenvolvimento de software é a refatoração. Ela consiste em executar uma série de pequenos passos que visam deixar o código mais claro, mais bonito, mais elegante. Normalmente o resultado de uma refatoração é um projeto mais simples e de fácil manutenção. Muitas vezes a refatoração leva a criação de abstrações e generalizações no código.

Um exemplo simples: vamos supor que estejamos programando a classe de dados Pessoa. Essa classe contém atributos como nome, peso, idade, idioma que fala. Num segundo momento eu percebo que preciso inserir gatos no meu sistema. Então crio a classe Gato com os atributos nome, peso, sexo e cor do pelo. Em seguida percebo que criei uma ambigüidade. Ambas as classes Gato e Pessoa possuem atributos em comum. Através de uma refatoração, crio a classe Animal com os atributos em comum (nome, peso, sexo) e faço com que as classes Gato e Pessoa “herdem” as propriedades de animais.

A idéia de extrair abstrações é a de identificar a essência do sistema e descrever com elementos simples suas características mais internas. Para chegar na essência é preciso muita experiência e suor. É preciso programar muito bem e saber usar de forma maestral a linguagem e as ferramentas a disposição. É uma arte.

Observe como são feitas refatorações na pintura de Pablo Picasso na figura. Inicialmente o pintor desenha um touro completo e normal, que pode ser reconhecido por qualquer criança de 5 anos. A cada novo estágio do desenho (são 11 gravuras no total), as partes irrelevantes vão sendo retiradas, porém a idéia central do touro permanece. O processo de desconstrução do gênio dura 6 semanas. Mesmo com com pouquíssimos traços, o último desenho consegue representar claramente o touro. São os traços essenciais do animal.

Todo bom programador, criador de software, deve saber reconhecer os aspectos essenciais de um sistema. As técnicas ajudam na execução, mas a genialidade está no pensamento intuitivo e na capacidade artística de identificar e extrair da a essência.

1 Comment Refatoração na Pintura

  1. Pingback: PLoP – A conferência de padrões - AgileAndArt

Leave a Reply

Your email address will not be published. Required fields are marked *