È una cattiva pratica assegnare a due file molto diversi con lo stesso scopo generale lo stesso nome?


18

È una cattiva pratica assegnare a due file molto diversi con lo stesso scopo generale lo stesso nome, separandoli in directory diverse?

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

Vorrei mantenere brevi i nomi dei miei file ed entrambi i file hanno lo stesso scopo generale senza essere identici. Non sono sicuro che ciò sia considerato una cattiva pratica in un ambiente di programmazione professionale. Mi piacerebbe sapere qual è la migliore pratica in questa situazione.

In alternativa, a scapito della breve lunghezza del nome, potrei usare:

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

7
Nomi più lunghi! :)
marko,

2
statsgen.js,settingsgen.js
Kroltan,

1
ASCIUTTO! (ovvero nomi più brevi)
Paul Draper,

1
Codice pulito (ovvero nomi più lunghi significativi)
Songo,

Risposte:


36

Considera il rapporto costi / benefici delle tue due opzioni:

  1. Riutilizzare lo stesso nome causerebbe confusione o conflitti di denominazione? Probabilmente no, poiché si trovano in cartelle diverse. Il nome "player_stats / generator.js" equivale a "player_stats_generator.js". Tuttavia, se vedi, in futuro, un motivo per unire i tuoi file js in una singola directory (implementazione? Non lo so), allora questo dovrebbe essere un buon indicatore per dare nomi univoci.

  2. L'uso dei nomi più lunghi comporterebbe molte battiture estranee? Probabilmente no. Non solo molti ID di JS completano automaticamente i nomi dei file nel progetto per te, ma è anche un pezzo di codice che probabilmente è scritto - al massimo - una volta per file. Il codice che viene digitato molto sono le classi e le funzioni all'interno dei file js e quelle (si spera) non sono in conflitto.

  3. Durante il debug, che tipo di informazioni ricevi su un errore? Se la segnalazione di bug più comune è "Errore nella riga 34 di <filename.js>", allora considera di dare loro nomi univoci, dal momento che ricevono errori in solo generator.js e poi provano a divinare, attraverso il contesto, quale generatore era una seccatura.


5
Il debugging js di solito stampa l'intero percorso del file.
Bergi,

1
@Bergi Dipende dal browser (e versione), dall'IDE (se presente), dal framework di registrazione degli errori e così via.
Avner Shahar-Kashtan,

22

Proprio come una questione pratica, se il tuo IDE mostra i nomi dei file nelle schede, se usi lo stesso nome per ogni file, finirai con le schede che mostrano tutti lo stesso nome. Questo può essere molto fastidioso. Un progetto che ho preso in carico ha questo problema, ed è un grande problema avere 15 schede aperte, metà delle quali con lo stesso nome file.

Quindi ... usa nomi più descrittivi.


1
La maggior parte dei moderni editor di testo mostrerà il percorso nella scheda se i file hanno lo stesso nome.
kmiyashiro,

Certo, a volte è necessario che più file abbiano lo stesso nome [ad es. Su molti server, index.html]. Mi sento infastidito dai programmi che rendono difficile determinare il percorso associato a un determinato file.
supercat,

1
@kmiyashiro - probabilmente è così, ma se hai molti file aperti, le schede potrebbero essere ridotte in dimensioni (larghezza) al punto in cui vedi solo i nomi dei file. Quindi devi sempre passare il mouse su ogni scheda e attendere che la "descrizione comando" visualizzi il percorso / file completo. Se hai solo pochi file aperti e solo il raro caso di un nome duplicato, è probabilmente accettabile. Ma con molti file, può essere molto fastidioso.
Kevin Fegan,

1
Se hai tante schede aperte tutte con lo stesso nome, passerei al file usando un comando chiave invece di cercare di trovarlo tra una marea di schede anche con nomi univoci.
kmiyashiro,

1
L'uso di nomi più descrittivi può essere piuttosto fastidioso però ... quando riesci some_super_long_descriptor_that_needs_more_description.jsa distinguerlo dasome_super_long_descriptor_that_needs_more_cowbell.js
corsiKa

12

C'è un chiaro fattore decisivo qui: DRY (non ripetere te stesso).

Ogni nome di file non deve essere diverso; ecco a cosa servono i percorsi . Riesci a immaginare quanti diversi file di sistema o di programma ci sono sul tuo computer? E se ognuno di loro dovesse avere un nome univoco? Ad un certo punto, stiamo solo trasformando il nome del file in una copia del percorso.

Se la migliore descrizione di un file Javascript nel contesto di client_scripts > app > player_statsdavvero è generator, dovrebbe essere il percorso client_scripts/app/player_stats/generator.js.

Questa domanda è su programmers.stackexchange.com/questions/ 250481 . C'è anche serverfault.com/questions/ 250481 . 250481è una cosa nel contesto delle domande dei programmatori e qualcos'altro nel contesto delle domande di errore del server.

I percorsi (o URL) sono utili perché sono identificatori nidificati. Usiamoli così :)


7

Usa sempre nomi descrittivi su nomi abbreviati, a meno che non sia qualcosa di simile a una costante matematica o una variabile a ciclo in cui le convenzioni del linguaggio in questione favoriscono nomi abbreviati. Ad esempio, se chiami una variabile "pi" e hai un valore appropriatamente preciso di pi, allora il nome è buono e ottiene il punto. D'altra parte, se si dispone di un generatore che genera i termini della serie Taylor per Pi e li somma insieme a Pi approssimativo, si desidera chiamarlo come "taylorPiGenerator o simile.

I buoni nomi ora risparmiano tempo di refactoring più tardi o, peggio ancora, errori enormi dopo.

I libri Clean Code e Code Complete entrano in considerevoli dettagli come i perché e il perché di una buona denominazione, ma non sono affatto le uniche fonti.


Questa risposta sembra applicarsi bene a questo esempio particolare, ma non affronta la domanda generale.
Paul Draper,

3

Dipende dalla tecnologia con cui stai lavorando. I nomi dovrebbero identificare gli elementi e i percorsi dovrebbero identificare il contesto. Sono d'accordo che una buona denominazione sia importante ma, ehi, anche i percorsi sono nomi. Ma dal punto di vista pratico, se stai usando qualcosa come Javascript è probabilmente meglio mantenere nomi più precisi per gli articoli finali. Se stai lavorando con strumenti che lo tengono in considerazione, come Python , il modo consigliato sarebbe usare lo stesso nome con un percorso diverso (modulo, spazio dei nomi). Se dai un'occhiata a Java, troverai anche classi con lo stesso nome e pacchetti diversi. Si potrebbe fare un ulteriore passo avanti e affermare che i metodi sono denominati azioni nel contesto della classe e che abbiamo metodi identici in classi diverse, che a loro volta possono essere nominati uguali ma inseriti in pacchetti diversi. Lo Zen di Python dice:

Gli spazi dei nomi sono una grande idea che suona il clacson: facciamo di più!

Ma JavaScript ha stranezze e vantaggi, quindi ti consiglio di scegliere nomi diversi (anche se i file si trovano in percorsi diversi). Inoltre puoi cercare il modello di modulo in javascript che potrebbe aiutarti a scrivere codice più pulito:

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

Potresti avere la tua torta e mangiarla anche tu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.