Czy złą praktyką jest nadawanie dwóm bardzo różnym plikom tego samego ogólnego przeznaczenia tej samej nazwy?


18

Czy złą praktyką jest nadawanie dwóm bardzo różnym plikom tego samego ogólnego przeznaczenia tej samej nazwy, dzieląc je na różne katalogi?

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

Chciałbym, aby moje nazwy plików były krótkie, a oba pliki mają ten sam ogólny cel, ale nie są identyczne. Nie jestem pewien, czy byłoby to uważane za złą praktykę w profesjonalnym środowisku programistycznym. Chciałbym wiedzieć, jaka jest najlepsza praktyka w tej sytuacji.

Alternatywnie, kosztem krótkiej długości nazwy, mógłbym użyć:

<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
Dłuższe imiona! :)
marko

2
statsgen.js,settingsgen.js
Kroltan

1
SUCHY! (tj. krótsze nazwiska)
Paul Draper,

1
Clean Code (tj. Dłuższe znaczące nazwy)
Songo

Odpowiedzi:


36

Rozważ stosunek kosztów do korzyści swoich dwóch opcji:

  1. Czy ponowne użycie tej samej nazwy spowodowałoby zamieszanie lub konflikty nazw? Prawdopodobnie nie, ponieważ znajdują się w różnych folderach. Nazwa „player_stats / generator.js” jest równoważna z „player_stats_generator.js”. Jeśli jednak zobaczysz w przyszłości powód scalenia plików js w jeden katalog (wdrożenie? Nie wiem), to powinien to być dobry wskaźnik do nadawania unikalnych nazw.

  2. Czy używanie dłuższych nazw wiązałoby się z dodatkowym pisaniem? Prawdopodobnie nie. W projekcie jest nie tylko wiele autouzupełnianych nazw plików JS IDE w projekcie, ale także fragment kodu, który prawdopodobnie jest zapisywany - co najwyżej - raz na plik. Często wpisywanym kodem są klasy i funkcje w plikach js, które (mam nadzieję) nie powodują konfliktu.

  3. Jakie informacje o błędzie otrzymujesz podczas debugowania? Jeśli najczęstszym raportem o błędzie jest „Błąd w wierszu 34 <filename.js>”, zastanów się nad nadaniem im unikalnych nazw, ponieważ otrzymywanie błędów tylko w generatorze.js, a następnie próba wyodrębnienia przez kontekst, który to generator może być kłopotliwy.


5
Debugowanie js zwykle drukuje całą ścieżkę pliku.
Bergi,

1
@Bergi To zależy od przeglądarki (i wersji), IDE (jeśli istnieje), struktury rejestrowania błędów i tak dalej.
Avner Shahar-Kashtan

22

Praktycznie rzecz biorąc, jeśli IDE wyświetla nazwy plików na kartach, jeśli użyjesz tej samej nazwy dla każdego pliku, skończysz na kartach, które wszystkie mają tę samą nazwę. To może być bardzo denerwujące. W jednym projekcie, który przejąłem, utrzymywałem ten problem, a otwieranie 15 kart o tej samej nazwie jest dużym problemem.

Więc ... używaj bardziej opisowych nazw.


1
Większość nowoczesnych edytorów tekstu pokazuje ścieżkę na zakładce, jeśli pliki mają tę samą nazwę.
kmiyashiro

Oczywiście czasami konieczne jest, aby wiele plików miało tę samą nazwę [np. Na wielu serwerach index.html]. Jestem zirytowany programami, które utrudniają określenie ścieżki powiązanej z określonym plikiem.
supercat

1
@kmiyashiro - prawdopodobnie tak, ale jeśli masz wiele otwartych plików, zakładki można zmniejszyć (szerokość) do punktu, w którym najczęściej widzisz tylko nazwy plików. Następnie musisz zawsze najechać kursorem myszy na każdą kartę i poczekać, aż „podpowiedź” wyświetli pełną ścieżkę / plik. Jeśli masz tylko kilka otwartych plików i tylko rzadki przypadek zduplikowanej nazwy, prawdopodobnie jest to dopuszczalne. Ale przy wielu plikach może to być bardzo denerwujące.
Kevin Fegan

1
Jeśli masz tak wiele otwartych kart o tej samej nazwie, przeszedłbym do pliku za pomocą klawisza, zamiast próbować znaleźć go w morzu kart nawet z unikalnymi nazwami.
kmiyashiro,

1
Używanie bardziej opisowych nazw może być raczej denerwujące ... kiedy możesz some_super_long_descriptor_that_needs_more_description.jsje odróżnićsome_super_long_descriptor_that_needs_more_cowbell.js
corsiKa

12

Jest tu wyraźny czynnik decydujący: SUCHO (nie powtarzaj się).

Każda nazwa pliku nie musi być inna; po to są ścieżki . Czy potrafisz sobie wyobrazić, ile różnych plików systemowych lub programów znajduje się na twoim komputerze? Co jeśli każdy z nich musiałby mieć unikalną nazwę? W pewnym momencie po prostu tworzymy nazwę pliku jako kopię ścieżki.

Jeśli najlepszym opisem pliku JavaScript w kontekście client_scripts > app > player_statsnaprawdę jest generator, jego ścieżka powinna być client_scripts/app/player_stats/generator.js.

To pytanie znajduje się na stronie programmers.stackexchange.com/questions/ 250481 . Istnieje również serverfault.com/questions/ 250481 . 250481to jedno w kontekście pytań programistów i coś innego w kontekście pytań o awarię serwera.

Ścieżki (lub adresy URL) są ładne, ponieważ są zagnieżdżonymi identyfikatorami. Wykorzystajmy je w ten sposób :)


7

Zawsze używaj nazw opisowych zamiast krótkich nazw, chyba że jest to coś w rodzaju stałej matematycznej lub zmiennej pętli, w których konwencje danego języka faworyzują krótkie nazwy. Na przykład, jeśli wywołujesz zmienną „pi” i masz pewną odpowiednio dokładną wartość pi, to nazwa jest dobra i ma sens. Z drugiej strony, jeśli masz generator, który generuje warunki serii Taylora dla Pi i dodaje je razem do przybliżonego pi, chcesz to nazwać „taylorPiGenerator lub podobny.

Dobre nazwy oszczędzają teraz czas refaktora później lub jeszcze gorzej ogromne błędy później.

Książki „ Czysty kod i kompletny kod” są szczegółowo opisane jako powód i cel dobrego nazywania, ale w żadnym wypadku nie są to jedyne źródła.


Ta odpowiedź wydaje się dobrze pasować do tego konkretnego przykładu, ale nie odnosi się do ogólnego pytania.
Paul Draper,

3

To zależy od technologii, z którą pracujesz. Nazwy powinny identyfikować elementy, a ścieżki powinny identyfikować kontekst. Zgadzam się, że dobre nazywanie jest ważne, ale hej, ścieżki też są nazwami. Ale z praktycznego punktu widzenia, jeśli używasz czegoś takiego jak JavaScript , prawdopodobnie lepiej zachować bardziej precyzyjne nazwy dla elementów końcowych. Jeśli pracujesz z narzędziami, które to uwzględniają, takimi jak Python , zalecanym sposobem byłoby użycie tej samej nazwy z inną ścieżką (moduł, przestrzeń nazw). Jeśli spojrzysz na Javę, znajdziesz także klasy o tej samej nazwie i różnych pakietach. Można pójść o krok dalej i powiedzieć, że metody są nazwane działaniami w kontekście klasy, a my mamy metody o takich samych nazwach w różnych klasach, które same mogą być nazwane tak samo, ale umieszczone w różnych pakietach. Zen Pythona mówi:

Przestrzenie nazw to jeden świetny pomysł - zróbmy ich więcej!

Ale javascript ma swoje dziwactwa i zalety, więc zaleciłbym używanie różnych nazw (nawet jeśli pliki znajdują się w różnych ścieżkach). Możesz także poszukać wzoru modułu w javascript, który mógłby pomóc Ci napisać czystszy kod:

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

Możesz mieć swoje ciasto i zjeść je.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.