Ist es eine schlechte Praxis, zwei sehr unterschiedliche Dateien mit demselben allgemeinen Zweck denselben Namen zu geben?


18

Ist es eine schlechte Praxis, zwei sehr unterschiedliche Dateien mit demselben allgemeinen Zweck denselben Namen zu geben und sie in verschiedene Verzeichnisse zu unterteilen?

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

Ich möchte meine Dateinamen kurz halten, und beide Dateien haben denselben allgemeinen Zweck, ohne identisch zu sein. Ich bin mir nicht sicher, ob dies in einer professionellen Programmierumgebung als schlechte Praxis angesehen wird. Ich würde gerne wissen, was die beste Vorgehensweise in dieser Situation ist.

Alternativ könnte ich auf Kosten der kurzen Länge des Namens Folgendes verwenden:

<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
Längere Namen! :)
Marko

2
statsgen.js,settingsgen.js
Kroltan

1
TROCKEN! (dh kürzere Namen)
Paul Draper

1
Clean Code (dh längere aussagekräftige Namen)
Songo

Antworten:


36

Berücksichtigen Sie das Kosten-Nutzen-Verhältnis Ihrer beiden Optionen:

  1. Würde die Wiederverwendung desselben Namens zu Verwirrung oder Namenskonflikten führen? Wahrscheinlich nicht, da sie sich in verschiedenen Ordnern befinden. Der Name "player_stats / generator.js" entspricht "player_stats_generator.js". Wenn Sie jedoch in Zukunft einen Grund sehen, Ihre js-Dateien in einem einzigen Verzeichnis zusammenzuführen (Bereitstellung? Keine Ahnung), sollte dies ein guter Indikator sein, um eindeutige Namen zu vergeben.

  2. Würde die Verwendung der längeren Namen viel unnötiges Tippen erfordern? Wahrscheinlich nicht. Viele JS IDEs vervollständigen nicht nur automatisch die Dateinamen im Projekt, es ist auch ein Teil des Codes, der wahrscheinlich nur - höchstens - einmal pro Datei geschrieben wird. Der Code, der häufig eingegeben wird, sind die Klassen und Funktionen in den js-Dateien, und diese stehen (hoffentlich) nicht in Konflikt.

  3. Welche Informationen erhalten Sie beim Debuggen über einen Fehler? Wenn der häufigste Fehlerbericht "Fehler in Zeile 34 von <filename.js>" lautet , sollten Sie in Betracht ziehen, ihnen eindeutige Namen zu geben, da Fehler nur in generator.js empfangen werden und der Versuch, anhand des Kontexts zu bestimmen, welcher Generator es war, problematisch sein kann.


5
Beim Debuggen von js wird normalerweise der gesamte Dateipfad gedruckt.
Bergi

1
@Bergi Das hängt vom Browser (und der Version), der IDE (falls vorhanden), dem Fehlerprotokollierungs-Framework usw. ab.
Avner Shahar-Kashtan

22

Wenn in Ihrer IDE Dateinamen in Registerkarten angezeigt werden und Sie für jede Datei denselben Namen verwenden, erhalten Sie praktisch Registerkarten, die alle denselben Namen aufweisen. Das kann sehr nervig sein. Ein Projekt, das ich betreut habe, hat dieses Problem und es ist sehr schwierig, 15 Registerkarten zu öffnen, von denen die Hälfte denselben Dateinamen hat.

Also ... benutze aussagekräftigere Namen.


1
Die meisten modernen Texteditoren zeigen den Pfad auf der Registerkarte an, wenn Dateien denselben Namen haben.
kmiyashiro

Natürlich ist es manchmal erforderlich, dass mehrere Dateien denselben Namen haben (z. B. auf vielen Servern index.html). Ich ärgere mich über Programme, die es schwierig machen, den einer bestimmten Datei zugeordneten Pfad zu bestimmen.
Supercat

1
@kmiyashiro - wahrscheinlich, aber wenn Sie viele Dateien geöffnet haben, können die Registerkarten so weit verkleinert werden, dass meist nur die Dateinamen angezeigt werden. Dann müssen Sie immer mit der Maus über die einzelnen Registerkarten fahren und warten, bis der "Tooltip" den vollständigen Pfad / die Datei anzeigt. Wenn Sie nur wenige Dateien geöffnet haben und nur den seltenen Fall eines doppelten Namens, ist dies wahrscheinlich akzeptabel. Aber mit vielen Dateien kann es sehr ärgerlich sein.
Kevin Fegan

1
Wenn so viele Registerkarten mit demselben Namen geöffnet sind, würde ich mit einem Tastaturbefehl zur Datei wechseln, anstatt zu versuchen, sie in einem Meer von Registerkarten zu finden, selbst wenn sie eindeutige Namen haben.
kmiyashiro

1
Die Verwendung some_super_long_descriptor_that_needs_more_description.jssome_super_long_descriptor_that_needs_more_cowbell.js
aussagekräftigerer

12

Hier gibt es einen klaren entscheidenden Faktor: TROCKEN (Wiederholen Sie sich nicht).

Jeder Dateiname muss nicht unterschiedlich sein. Dafür sind Pfade da . Können Sie sich vorstellen, wie viele verschiedene System- oder Programmdateien sich auf Ihrem Computer befinden? Was wäre, wenn jeder von ihnen einen eindeutigen Namen haben müsste? Irgendwann machen wir aus dem Dateinamen einfach eine Kopie des Pfads.

Wenn die beste Beschreibung einer Javascript-Datei im Kontext von client_scripts > app > player_statswirklich ist generator, sollte es Pfad sein client_scripts/app/player_stats/generator.js.

Diese Frage ist bei programmers.stackexchange.com/questions/ 250481 . Es gibt auch serverfault.com/questions/ 250481 . 250481Dies ist eine Sache im Zusammenhang mit Fragen von Programmierern und eine andere im Zusammenhang mit Fragen zu Serverfehlern.

Pfade (oder URLs) sind nett, weil sie verschachtelte Bezeichner sind. Lass sie uns so benutzen :)


7

Verwenden Sie immer beschreibende Namen anstelle von Kurznamen, es sei denn, es handelt sich um eine mathematische Konstante oder eine Schleifenvariable, bei der die Konventionen der betreffenden Sprache Kurznamen bevorzugen. Wenn Sie beispielsweise eine Variable "pi" aufrufen und einen angemessen genauen Wert für pi angeben, ist der Name gut und bringt den Punkt auf den Punkt. Wenn Sie andererseits einen Generator haben, der Terme der Taylor-Reihe für Pi generiert und sie zu einem ungefähren Pi addiert, möchten Sie ihn so etwas wie "taylorPiGenerator" oder ähnliches nennen.

Gute Namen sparen später Refactor-Zeit oder noch schlimmer massive Fehler später.

Die Bücher " Clean Code" und " Code Complete" gehen sehr detailliert ein, da sie das Warum und Warum einer guten Benennung sind, aber sie sind keineswegs die einzigen Quellen.


Diese Antwort scheint gut auf dieses Beispiel zuzutreffen, geht aber nicht auf die allgemeine Frage ein.
Paul Draper

3

Es hängt von der Technologie ab, mit der Sie arbeiten. Namen sollten Elemente identifizieren und Pfade sollten den Kontext identifizieren. Ich stimme zu, dass eine gute Benennung wichtig ist, aber hey, Pfade sind auch Namen. Aus praktischer Sicht ist es jedoch wahrscheinlich besser , wenn Sie so etwas wie Javascript verwenden , genauere Namen für die Endelemente beizubehalten. Wenn Sie mit Tools wie Python , empfiehlt es sich, denselben Namen mit einem anderen Pfad (Modul, Namespace) zu verwenden. Wenn Sie sich Java anschauen arbeiten, die dies berücksichtigen, finden Sie auch Klassen mit demselben Namen und verschiedenen Paketen. Man könnte noch einen Schritt weiter gehen und sagen, Methoden sind benannte Aktionen im Kontext der Klasse, und wir haben Methoden, die in verschiedenen Klassen gleich benannt sind. Das Zen von Python sagt:

Namespaces sind eine großartige Idee - machen wir mehr davon!

Aber Javascript hat Macken und Vergünstigungen, so würde ich empfehlen, dass Sie mit verschiedenen Namen gehen (auch wenn sich Dateien in verschiedenen Pfaden befinden). Sie können auch nach Modulmustern in Javascript suchen, die Ihnen helfen könnten, saubereren Code zu schreiben:

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

Sie könnten Ihren Kuchen haben und ihn auch essen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.