Não tenho certeza se isso é uma característica do TOC ou não, mas acho que às vezes fico completamente bloqueado, incapaz de continuar o que estou fazendo ao nomear uma classe (ou função, espaço de nome etc) que acredito que deve ser usada fora de um determinado projeto. Uma API, por exemplo. Ou uma biblioteca de classes utilitárias.
Se o nome não estiver exatamente correto (na minha cabeça), simplesmente não posso continuar ... fico preso tentando encontrar o nome certo. Eu tentei escrever pequenos aplicativos que o usariam para ver como são os nomes, mas isso não parece ajudar ...
Eu sei que isso não deveria importar, e é contra qualquer mentalidade de programação presumir que você seria perfeito primeiro ... Eu me sinto impotente com isso ...
Todas as dicas / idéias serão muito apreciadas ...
Respostas:
Na minha opinião, o problema que você tem não é apenas encontrar uma maneira melhor de criar bons nomes, mas lidar com a compulsão de fazê-lo. Se eu for honesto, reconheço uma característica semelhante em mim. Afinal, os nomes são importantes e eu gosto de um bom nome para os conceitos em que estou trabalhando. No entanto, nem sempre são a coisa mais importante.
Aqui estão alguns dos métodos que eu uso para superar esse tipo de coisa:
fonte
primeiramente
Faça a si mesmo a pergunta "qual é o objetivo único desta classe?". Sem aderir ao Princípio da responsabilidade única, nomear classes e métodos se torna muito difícil. Se você não conseguir responder a essa pergunta, talvez precise repensar o que deseja que a classe faça e considere separar as preocupações. Isso facilitará o nome
Em segundo lugar
Você tem um padrão de como você nomeia suas aulas? Talvez tente examinar alguns padrões de nomenclatura comuns, por exemplo, o padrão, que fica muito mais fácil de seguir depois de abordar o SRP acima. Sua classe analisa XML? Experimente o XMLParser. Ele analisa XML, cria modelos de domínio para representar a entrada, os mantém no banco de dados e depois publica uma mensagem de sucesso no Twitter? Tente refatorar.
Em terceiro lugar
Entendo de onde você é e já passou por uma situação semelhante. Talvez tente aprimorar sua classe com algumas funcionalidades, com um nome temporário para começar. Com qualquer bom IDE ou assistente de refatoração, renomear a classe deve ser uma ação com um clique, para que o nome da sua classe inicialmente não precise ser permanente! Isso ajudará você a superar seu bloco de TOC e dará tempo ao seu subconsciente para processá-lo um pouco mais.
Finalmente e um pouco fora do tópico
Tive um momento decisivo em algum trabalho que realizava no outro dia, implementando um sistema não crítico, e passava um bom tempo brincando com diferentes nomes de classes, etc ... Nomeie suas interfaces de acordo com a funcionalidade, nomeie classes de acordo com sua implementação específica ... Por exemplo, você pode ser tentado a ter IXMLParser e XMLParser, mas o que acontece quando sua entrada é alterada para JSON? Experimente IInputParser, dessa forma, você pode criar classes concretas XMLParser e JSONParser, que implementam o IInputParser de maneiras diferentes.
fonte
Para mim, geralmente é um sinal de que o design não está claro em minha mente, por isso invento um nome e dou um tempo (digamos 2 minutos) para encontrar um melhor; no final desse período, tenho que use o que eu criei primeiro. Barney, Wilma e Fred são os favoritos para começar. Eu faço coisas como "BarniesInputParser" Os nomes são tão ruins que eu tenho que criar um melhor ou alterá-los mais tarde. Eles também são tão ruins que são únicos, tornando a refatoração trivial e segura, e qualquer pessoa que olhe o código incompleto pode ver instantaneamente que ele está incompleto.
O importante é que, enquanto você não está adicionando funcionalidade, não está fornecendo ao seu cérebro nenhuma informação nova para definir o nome (e esclarecer o design). Tudo o que você está fazendo é regurgitar a mesma entrada de maneiras diferentes.
Ou vá fazer um café. Antes de chegar à máquina, você a terá ...
fonte
Eu recebi isso de um amigo por algum tempo. Escreva o que seu processo deve fazer. Apenas uma breve narrativa. Depois pegue os substantivos e transforme-os em classes, os verbos em métodos e os advérbios em propriedades.
fonte