Apa konvensi penamaan untuk file dan folder dalam proyek Node.js yang besar?
Haruskah saya memanfaatkan, camelCase, atau under-score?
Yaitu. apakah ini dianggap valid?
project-name
app
controllers
someThings.js
users.js
models
someThing.js
user.js
views
some-things
index.jade
users
logIn.jade
signUp.jade
...
javascript
node.js
Rudiger
sumber
sumber
require
menggunakan string direktori sebagai parameter, itulah mengapa itu tidak sepenuhnya milik Anda. yaitu.require('../app/controllers/someThings');
fs
), kata tunggal (events
), garis bawah (child_process
), dan huruf kecil (querystring
).Jawaban:
Setelah beberapa tahun dengan node, saya dapat mengatakan bahwa tidak ada konvensi untuk struktur direktori / file. Namun kebanyakan aplikasi ekspres (profesional) menggunakan pengaturan seperti:
Contoh yang menggunakan penyiapan ini adalah nodejs-starter .
Saya pribadi mengubah pengaturan ini menjadi:
Menurut pendapat saya, yang terakhir lebih cocok dengan struktur direktori bergaya Unix (sedangkan yang pertama mencampurkannya sedikit).
Saya juga menyukai pola ini untuk memisahkan file:
lib / index.js
lib / static / index.js
Hal ini memungkinkan pemisahan semua kode sumber dengan rapi tanpa harus mengganggu dependensi. Solusi yang sangat bagus untuk melawan Javascript yang buruk. Contoh dunia nyata ada di dekatnya yang menggunakan penyiapan ini.
Perbarui (nama file):
Mengenai nama file yang paling umum adalah nama file pendek dan huruf kecil . Jika file Anda hanya dapat dideskripsikan dengan dua kata, sebagian besar proyek JavaScript menggunakan garis bawah sebagai pemisah.
Perbarui (variabel):
Mengenai variabel, "aturan" yang sama berlaku untuk nama file. Prototipe atau kelas, bagaimanapun, harus menggunakan camelCase .
Perbarui (styleguides):
sumber
bodokaiser
terlalu pribadi bagi saya untuk masuk dan meminta pendapatnya tentang hal ini ditambahkan ke jawabannya (seperti yang awalnya ditanyakan OP dalam pertanyaan mereka) ( batuk batuk ).Gunakan
kebab-case
untuk semua nama paket, folder dan file.Mengapa?
Anda harus membayangkan bahwa folder atau file apa pun mungkin diekstrak ke paketnya sendiri suatu hari nanti. Paket tidak boleh berisi huruf besar.
Oleh karena itu,
camelCase
sebaiknya jangan pernah digunakan. Daun inisnake_case
dankebab-case
.kebab-case
sejauh ini merupakan konvensi paling umum saat ini. Satu-satunya penggunaan garis bawah adalah untuk paket node internal, dan ini hanyalah konvensi dari masa-masa awal.sumber
Tidak ada konvensi. Ada beberapa struktur logis.
Satu-satunya hal yang dapat saya katakan: Jangan pernah menggunakan file camelCase dan nama direktori. Mengapa? Ini berfungsi tetapi di Mac dan Windows tidak ada perbedaan antara someAction dan some action. Saya menemui masalah ini, dan tidak sekali pun. Saya membutuhkan file seperti ini:
Tapi sayangnya saya buat file dengan penuh huruf kecil:
lib/ishidden.js
. Ini berhasil untuk saya di mac. Ini bekerja dengan baik di Mac rekan kerja saya. Tes berjalan tanpa kesalahan. Setelah penerapan, kami mendapat kesalahan besar:Oh ya. Ini kotak linux. Jadi struktur direktori camelCase bisa berbahaya. Ini cukup untuk kolega yang mengembangkan di Windows atau Mac.
Jadi gunakan pemisah garis bawah (_) atau tanda hubung (-) jika Anda perlu.
sumber
const loginPage = browser.page.admin-login()
. Saya mendapat kesalahanReferenceError: login is not defined
. Menggunakan garis bawah (_) untuk nama file memecahkan masalah. Saya juga dapat membayangkan bahwa menggunakan nama file dengan karakter tanda hubung di baris perintah juga dapat menyebabkan beberapa masalah. Oleh karena itu, menurut saya garis bawah adalah pemisah teraman untuk nama file secara umum.Berdasarkan ' Panduan Gaya JavaScript Google '
sumber
Kebanyakan orang menggunakan
camelCase
JS. Jika Anda ingin membuat sesuatu menjadi open-source, saya sarankan Anda menggunakan yang ini :-)sumber
camelCase
untuk file pengontrol. :-) Tergantung. Saya cenderung menggunakanPascalCase
untuk file seperti kelas.Node.js tidak memberlakukan konvensi penamaan file apa pun (kecuali
index.js
). Dan bahasa Javascript secara umum juga tidak. Anda dapat menemukan lusinan utas di sini yang menyarankan camelCase, tanda hubung, dan garis bawah, yang semuanya berfungsi dengan baik. Jadi terserah kamu. Pilih satu dan pertahankan.sumber
Menurut saya: Untuk file, gunakan huruf kecil jika module.exports adalah objek, maksud saya modul tunggal. Ini juga berlaku untuk file JSON karena mereka juga satu ton. Gunakan huruf besar unta jika module.exports mengembalikan fungsi konstruktor yang bertindak seperti kelas.
Untuk folder gunakan nama pendek. Jika ada kebutuhan untuk memiliki lebih dari satu kata, biarkan itu dipisahkan dengan huruf kecil sepenuhnya oleh "-" agar berfungsi di semua platform secara konsisten.
sumber