Princípio da responsabilidade única:granularidade do motivo da mudança
-
09-06-2019 - |
Pergunta
Ao aplicar o Princípio da Responsabilidade Única e observar o motivo da mudança de uma classe, como você determina se esse motivo da mudança é muito granular ou não granular o suficiente?
Solução
Não sei se há uma boa resposta para isso além de "aplicar seu julgamento, com base em sua experiência". Não, não, obtenha ajuda, o que eu acho que é o que você está fazendo aqui;)
Sério, porém, se você descobrir que está criando um zilhão de classes para fazer o que parece ser um trabalho simples, provavelmente você está sendo muito granular.Se todas as suas aulas parecem colossais, provavelmente você está sendo muito grosseiro.Por favor, perdoe-me se isso é uma afirmação do óbvio.
Acho que este é um daqueles casos confusos e sem regras rígidas que nos mostram por que precisamos de programadores humanos.Apenas tente algo, buscando equilíbrio, e refatore se achar que está indo longe demais em uma direção ou outra.E lembre-se: se vale a pena fazer, vale a pena fazer mal.
Outras dicas
- Eu não ficaria muito preocupado com a granularidade inicialmente.Inicialmente, irei apenas com a separação de preocupações em um nível mais amplo.O ponto básico é que devemos evitar o excesso de engenharia aqui.Mas apenas o suficiente.Eu concordo com Lucas aqui, que este primeiro passo melhorará com a experiência.
- À medida que os requisitos mudam, à medida que começo a sentir os 'cheiros', à medida que minha compreensão do problema melhora, eu refatoraria o design, fatorando as preocupações separadas à medida que se tornassem óbvias.Basicamente, a separação de interesses também deve ser evolutiva, assim como o design geral.