É uma prática ruim atribuir o mesmo nome a dois arquivos muito diferentes com o mesmo objetivo geral?

18

É uma má prática atribuir dois arquivos muito diferentes com o mesmo objetivo geral ao mesmo nome, separando-os em diretórios diferentes?

<script src="client_scripts/app/player_stats/generator.js"></script>
<script src="client_scripts/app/coach_settings/generator.js"></script>

Eu gostaria de manter os nomes dos meus arquivos curtos e os dois arquivos têm o mesmo objetivo geral sem serem idênticos. Não tenho certeza se isso seria considerado uma prática ruim em um ambiente de programação profissional. Eu gostaria de saber qual é a melhor prática nessa situação.

Como alternativa, às custas do tamanho curto do nome, eu poderia usar:

<script src="client_scripts/app/player_stats/player_stats_generator.js"></script>
<script src="client_scripts/app/coach_settings/coach_settings_generator.js"></script>
CuriousWebDeveloper
fonte
7
Nomes mais longos! :)
Marko
2
statsgen.js,settingsgen.js
Kroltan
1
SECO! (ou seja, nomes mais curtos)
Paul Draper
1
Código Limpo (ou seja, nomes mais significativos)
Songo 21/07

Respostas:

36

Considere a relação custo / benefício de suas duas opções:

  1. Reutilizar o mesmo nome causaria confusão ou conflitos de nome? Provavelmente não, pois estão em pastas diferentes. O nome "player_stats / generator.js" é equivalente a "player_stats_generator.js". No entanto, se você vir, no futuro, um motivo para mesclar seus arquivos js em um único diretório (implantação? Não sei), esse deve ser um bom indicador para fornecer nomes exclusivos.

  2. O uso de nomes mais longos envolveria muita digitação estranha? Provavelmente não. Muitos IDs de JS não completam automaticamente nomes de arquivos no projeto para você, mas também é um pedaço de código que provavelmente é escrito apenas - no máximo - uma vez por arquivo. O código que é muito digitado são as classes e funções dentro dos arquivos js, e essas (espero) não conflitam.

  3. Ao depurar, que tipo de informação você obtém sobre um erro? Se o relatório de erro mais comum for "Erro na linha 34 de <filename.js>", considere fornecer nomes exclusivos, pois receber erros apenas em generator.js e depois tentar adivinhar, através do contexto, qual gerador ele pode ser um aborrecimento.

Avner Shahar-Kashtan
fonte
5
A depuração js geralmente imprime o caminho completo do arquivo.
Bergi
1
@ Bergi Isso depende do navegador (e versão), do IDE (se houver), da estrutura de registro de erros e assim por diante.
Avner Shahar-Kashtan
22

Como uma questão prática, se o seu IDE mostrar nomes de arquivos em guias, se você usar o mesmo nome para cada arquivo, você terminará com guias que mostram o mesmo nome. Isso pode ser muito chato. Um projeto que assumi a manutenção tem esse problema, e é muito difícil ter 15 guias abertas, metade delas com o mesmo nome de arquivo.

Então ... use nomes mais descritivos.

GrandmasterB
fonte
1
A maioria dos editores de texto modernos mostrará o caminho na guia se os arquivos tiverem o mesmo nome.
kmiyashiro
Obviamente, às vezes é necessário que vários arquivos tenham o mesmo nome [por exemplo, em muitos servidores index.html]. Fico aborrecido com os programas que dificultam a determinação do caminho associado a um arquivo específico.
Supercat
1
@kmiyashiro - provavelmente sim, mas se você tiver muitos arquivos abertos, as guias podem ser reduzidas em tamanho (largura) até o ponto em que você geralmente vê apenas os nomes dos arquivos. Então você sempre deve passar o mouse sobre cada guia e aguardar a "dica" para exibir o caminho / arquivo completo. Se você tiver apenas alguns arquivos abertos e apenas o caso raro de um nome duplicado, provavelmente é aceitável. Mas com muitos arquivos, pode ser muito irritante.
precisa
1
Se você tiver tantas abas abertas, todas com o mesmo nome, eu mudaria para o arquivo usando um comando key em vez de tentar encontrá-lo em um mar de abas, mesmo com nomes exclusivos.
kmiyashiro
1
Usar nomes mais descritivos pode ser um pouco chato ... quando você some_super_long_descriptor_that_needs_more_description.jspode diferenciá-lo desome_super_long_descriptor_that_needs_more_cowbell.js
corsiKa
12

Há um fator decisivo claro aqui: DRY (não se repita).

Todo nome de arquivo não precisa ser diferente; é para isso que servem os caminhos . Você pode imaginar quantos arquivos diferentes de sistema ou programa estão no seu computador? E se cada um deles tivesse que ter um nome único? Em algum momento, estamos apenas tornando o nome do arquivo uma cópia do caminho.

Se a melhor descrição de um arquivo Javascript no contexto de client_scripts > app > player_statsrealmente é generator, seu caminho deve ser client_scripts/app/player_stats/generator.js.

Esta pergunta está em programmers.stackexchange.com/questions/ 250481 . Também há serverfault.com/questions/ 250481 . 250481é uma coisa no contexto das perguntas dos programadores e outra no contexto das perguntas de falha do servidor.

Caminhos (ou URLs) são bons porque são identificadores aninhados. Vamos usá-los dessa maneira :)

Paul Draper
fonte
7

Sempre use nomes descritivos sobre nomes abreviados, a menos que seja algo como uma constante matemática ou variável de loop, onde as convenções da linguagem em questão favorecem nomes abreviados. Por exemplo, se você chamar uma variável "pi" e tiver algum valor precisamente preciso de pi, o nome será bom e entenderá o ponto. Por outro lado, se você possui um gerador que gera termos da série Taylor para Pi e os adiciona para aproximar o pi, convém chamá-lo de algo como "taylorPiGenerator ou similar.

Agora, bons nomes economizam tempo de refatoração mais tarde ou erros maciços ainda piores mais tarde.

Os livros Código Limpo e Código Completo entram em detalhes consideráveis ​​como os porquês e os motivos da boa nomeação, mas não são de modo algum as únicas fontes.

Engenheiro Mundial
fonte
Essa resposta parece se aplicar bem a esse exemplo em particular, mas não aborda a questão geral.
21415 Paul Draper
3

Depende da tecnologia com a qual você está trabalhando. Os nomes devem identificar itens e os caminhos, o contexto. Concordo que a boa nomeação é importante, mas ei, caminhos também são nomes. Mas, do ponto de vista prático, se você estiver usando algo como Javascript , provavelmente é melhor manter nomes mais precisos para os itens finais. Se você estiver trabalhando com ferramentas que levem isso em consideração, como o Python , a maneira recomendada seria usar o mesmo nome com caminho diferente (módulo, espaço para nome). Se você der uma olhada em Java, você também encontrará classes com o mesmo nome e pacotes diferentes. Pode-se dar um passo adiante e dizer que os métodos são nomeados ações no contexto da classe, e temos métodos nomeados iguais em diferentes classes, que podem ser nomeados iguais, mas colocados em pacotes diferentes. O Zen do Python diz:

Os espaços para nome são uma ótima idéia - vamos fazer mais!

Mas o javascript tem peculiaridades e vantagens, então eu recomendo que você escolha nomes diferentes (mesmo que os arquivos estejam em caminhos diferentes). Além disso, você pode procurar o padrão do módulo em javascript, que pode ajudá-lo a escrever um código mais limpo:

    var playerStatsGenerator = player_stats.Generator();
    var coachSettingsGenerator = coach_settings.Generator();

Você pode comer o seu bolo e comê-lo também.

edin-m
fonte