Apakah praktik yang buruk untuk memberikan dua file yang sangat berbeda dengan tujuan umum yang sama dengan nama yang sama?

18

Apakah praktik yang buruk untuk memberikan dua file yang sangat berbeda dengan tujuan umum yang sama dengan nama yang sama, memisahkannya ke dalam direktori yang berbeda?

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

Saya ingin membuat nama file saya singkat, dan kedua file memiliki tujuan umum yang sama tanpa menjadi identik. Saya tidak yakin apakah ini akan dianggap praktik buruk di lingkungan pemrograman profesional. Saya ingin tahu apa praktik terbaik dalam situasi ini.

Atau, dengan mengorbankan nama pendeknya, saya bisa menggunakan:

<script src="client_scripts/app/player_stats/player_stats_generator.js"></script>
<script src="client_scripts/app/coach_settings/coach_settings_generator.js"></script>
Pengembang CuriousWeb
sumber
7
Nama yang lebih panjang! :)
marko
2
statsgen.js,settingsgen.js
Kroltan
1
KERING! (yaitu nama yang lebih pendek)
Paul Draper
1
Clean Code (yaitu nama yang lebih bermakna)
Songo

Jawaban:

36

Pertimbangkan rasio biaya / manfaat dari dua opsi Anda:

  1. Apakah menggunakan kembali nama yang sama menyebabkan kebingungan atau konflik penamaan? Mungkin tidak, karena mereka ada di folder yang berbeda. Nama "player_stats / generator.js" sama dengan "player_stats_generator.js". Namun, jika Anda melihat, di masa depan, alasan untuk menggabungkan file js Anda ke dalam satu direktori (penyebaran? Saya tidak tahu), maka ini harus menjadi indikator yang baik untuk memberikan nama unik.

  2. Apakah menggunakan nama yang lebih panjang melibatkan banyak pengetikan yang asing? Mungkin tidak. Tidak hanya banyak nama file JS IDE autocomplete dalam proyek untuk Anda, itu juga sepotong kode yang mungkin hanya ditulis - paling banyak - satu kali per file. Kode yang sering diketik adalah kelas dan fungsi di dalam file js, dan mereka (semoga) tidak bertentangan.

  3. Saat debugging, informasi seperti apa yang Anda dapatkan tentang kesalahan? Jika laporan bug yang paling umum adalah "Kesalahan pada baris 34 <filename.js>", maka pertimbangkan untuk memberi mereka nama yang unik, karena menerima kesalahan hanya di generator.js dan kemudian mencoba untuk ilahi, melalui konteks, generator mana yang dapat merepotkan.

Avner Shahar-Kashtan
sumber
5
Debugging js biasanya mencetak seluruh path file.
Bergi
1
@Bergi Itu tergantung pada browser (dan versi), IDE (jika ada), kerangka kesalahan-logging dan sebagainya.
Avner Shahar-Kashtan
22

Sama seperti masalah praktis, jika IDE Anda menunjukkan nama file di tab, jika Anda menggunakan nama yang sama untuk setiap file, Anda akan berakhir dengan tab yang semuanya menunjukkan nama yang sama. Itu bisa sangat menjengkelkan. Satu proyek yang saya ambil merawatnya memiliki masalah itu, dan itu adalah rasa sakit besar untuk memiliki 15 tab terbuka, setengah dari mereka dengan nama file yang sama.

Jadi ... gunakan nama yang lebih deskriptif.

GrandmasterB
sumber
1
Sebagian besar editor teks modern akan menunjukkan jalur di tab jika file memiliki nama yang sama.
kmiyashiro
Tentu saja, kadang-kadang diperlukan beberapa file untuk memiliki nama yang sama [misalnya pada banyak server, index.html]. Saya menemukan diri saya terganggu pada program yang membuatnya sulit untuk menentukan jalur yang terkait dengan file tertentu.
supercat
1
@kmiyashiro - mungkin begitu, tetapi jika Anda memiliki banyak file terbuka, tabnya dapat dikurangi ukurannya (lebar) ke titik di mana Anda kebanyakan hanya melihat nama file. Maka Anda harus selalu mengarahkan mouse ke setiap tab dan menunggu "tooltip" untuk menampilkan path / file lengkap. Jika Anda hanya memiliki beberapa file terbuka, dan hanya kasus langka dari nama yang digandakan, itu mungkin dapat diterima. Tetapi dengan banyak file, itu bisa sangat menjengkelkan.
Kevin Fegan
1
Jika Anda memiliki banyak tab yang terbuka semua dengan nama yang sama, saya akan beralih ke file menggunakan perintah kunci alih-alih mencoba menemukannya di antara lautan tab bahkan dengan nama unik.
kmiyashiro
1
Menggunakan nama-nama yang lebih deskriptif bisa agak menjengkelkan ... ketika Anda some_super_long_descriptor_that_needs_more_description.jsharus memisahkannya darisome_super_long_descriptor_that_needs_more_cowbell.js
corsiKa
12

Ada faktor penentu yang jelas di sini: KERING (Jangan Ulangi Diri Sendiri).

Setiap nama file tidak harus berbeda; itulah gunanya jalur . Bisakah Anda bayangkan berapa banyak file sistem atau program yang berbeda di komputer Anda? Bagaimana jika masing-masing dari mereka harus memiliki nama yang unik? Pada titik tertentu, kami hanya membuat nama file salinan path.

Jika deskripsi terbaik dari file Javascript dalam konteks client_scripts > app > player_statssebenarnya adalah generator, seharusnya path itu client_scripts/app/player_stats/generator.js.

Pertanyaan ini ada di programmers.stackexchange.com/questions/ 250481 . Ada juga serverfault.com/questions/ 250481 . 250481itu adalah satu hal dalam konteks pertanyaan Pemrogram, dan sesuatu yang lain dalam konteks pertanyaan Server Fault.

Jalur (atau URL) bagus karena merupakan pengidentifikasi bersarang. Mari kita gunakan seperti itu :)

Paul Draper
sumber
7

Selalu gunakan nama deskriptif daripada nama pendek kecuali itu sesuatu seperti konstanta matematika atau variabel loop di mana konvensi bahasa yang dipertanyakan mendukung nama pendek. Misalnya, jika Anda memanggil variabel "pi" dan membuatnya menjadi nilai pi tepat yang tepat, maka nama itu bagus dan mendapatkan poin. Di sisi lain, jika Anda memiliki generator yang menghasilkan istilah dari seri Taylor untuk Pi dan menambahkannya bersama-sama ke perkiraan pi, Anda ingin menyebutnya sesuatu seperti "taylorPiGenerator atau sejenisnya.

Nama baik sekarang menghemat waktu refactor nanti atau bahkan kesalahan besar yang lebih buruk nanti.

Buku-buku Clean Code and Code Complete masuk ke detail yang cukup besar sebagai mengapa dan tempat penamaan yang baik tetapi tidak berarti satu-satunya sumber.

Insinyur Dunia
sumber
Jawaban ini tampaknya berlaku baik untuk contoh khusus ini, tetapi tidak menjawab pertanyaan umum.
Paul Draper
3

Tergantung pada teknologi yang Anda gunakan. Nama harus mengidentifikasi item, dan jalur harus mengidentifikasi konteks. Saya setuju penamaan yang baik itu penting, tapi hei, path juga nama. Tapi dari sudut pandang praktis, jika Anda menggunakan sesuatu seperti Javascript mungkin lebih baik untuk menyimpan nama yang lebih tepat untuk item akhir. Jika Anda bekerja dengan alat yang mempertimbangkan ini, seperti Python , cara yang disarankan adalah menggunakan nama yang sama dengan jalur yang berbeda (modul, namespace). Jika Anda melihat Java, Anda juga akan menemukan kelas dengan nama yang sama dan paket yang berbeda. Seseorang dapat melangkah lebih jauh dan mengatakan metode disebut tindakan dalam konteks kelas, dan kami memiliki metode yang sama di kelas yang berbeda, yang sendiri dapat dinamai sama tetapi ditempatkan dalam paket yang berbeda. Zen Python mengatakan:

Namespaces adalah salah satu ide bagus - mari kita lakukan lebih dari itu!

Tapi javascript memilikinya quirks dan tunjangan jadi saya akan merekomendasikan Anda pergi dengan nama yang berbeda (bahkan jika file berada di jalur yang berbeda). Anda juga dapat mencari pola modul dalam javascript yang dapat membantu Anda menulis kode bersih:

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

Anda bisa memiliki kue dan memakannya juga.

edin-m
sumber