Pesquisar

quinta-feira, 14 de junho de 2007

Definir responsabilidades em orientação a objetos é tão importante quanto os relacionamentos.

Hoje , a pedido de um amigo, fui revisar (refatorar, manter,revisar...) códigos de uma "pequena parte" de um sistema de RH - bem básico feito dentro da própria empresa. Chegando lá fui informado que eu deveria olhar somente a "classe" chamada PessoaFisica.java, e que ele nela e somente nela que o problema estava. Me tranquilizaram, disseram que era para eu ficar calmo porque o sistema havia sido construído sobre OO e que tinha toda a "documentação".

Quando abri esta classe no Eclipse, tive uma tremenda surpressa, a classe tinha 6415 linhas de códigos. Assustado perguntei posso ver o "erro" acontecendo, bem descobri como consertar tal erro, porém aquela minha manutenção corretiva deveria ser feita em todas as partes da classe que tivessem um comportamente parecido, quer dizer consertei um problema e arrumei uns novos problemas.

Posso estar errado mas não tenho coragem de chamar aquilo de classe no máximo de um grande modulo de software, e nem aceitar tanta responsabilidade (mesmo que baseado somente no número de linhas de código) numa única classe. Aquele é um dos casos em que a Refatoração é mais (ou talvez) complicada do que um construção de uma classe nova.

Nenhum comentário: