Classes *Util

Já vi muita gente espalhar classes “utilitárias” por todo o sistema. StringUtil, NumberUtil, DateUtil… Daqui a pouco vamos ter UtilUtil.

Considero esse hábito no mínimo condenável. O nome dessas classes não revela qual sua real função, tornando o código difícil de entender e manter. Esse tipo de classe costuma crescer e virar um verdadeiro saco de gatos, contendo diversos métodos que praticamente não tem nada a ver uns com os outros.

Nomes de classes (e também métodos, variáveis, etc.) deveriam ser cuidadosamente definidos. Idealmente, deveria se ter em mente o conceito de Ubiquitous Language (algo como Linguagem Onipresente) do DDD na hora de se criar os nomes das classes. Ou seja, todo o comportamento do sistema deveria estar implementado em classes cujos nomes fazem parte do domínio do problema. Nomes que têm o mesmo significado tanto para a equipe técnica quanto para clientes e usuários finais. Isso facilita a comunicação entre todos e, também, o entendimento do código e sua manutenção futura.

Minha sugestão é, então, que se evite criar classes chamadas *Util. Provavelmente existe um nome melhor, que vai expressar melhor qual a responsabilidade da classe e, consequentemente, vai deixar o código mais limpo e claro.

One Response to Classes *Util

  1. […] útil para resolver os problemas das “teias” de Utils. Porém é um recurso paliativo e não deve ser utilizado como o “padrão”. O ideal é sempre evitar classes Utils, lembrando que uma classe deve […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: