Penjelasan Gaya Penamaan dan Konvensinya
Nama dalam kode, file, URL, dan judul mengikuti konvensi yang berbeda dari satu bahasa dan format ke yang lain. Panduan ini merangkum gaya penamaan yang umum, di mana masing-masing diharapkan, dan detail yang sering menjebak: akronim, angka, judul, dan huruf di luar bahasa Inggris.
Gaya yang Umum
| Gaya | Contoh | Cara membentuknya |
|---|---|---|
| camelCase | orderTotal | Kata pertama huruf kecil, kata berikutnya diawali huruf kapital, tanpa pemisah |
| PascalCase | OrderTotal | Setiap kata diawali huruf kapital, tanpa pemisah |
| snake_case | order_total | Huruf kecil, kata digabung dengan _ |
| CONSTANT_CASE | ORDER_TOTAL | Huruf kapital, kata digabung dengan _ |
| kebab-case | order-total | Huruf kecil, kata digabung dengan - |
| dot.case | order.total | Huruf kecil, kata digabung dengan . |
| Title Case | Order Total | Kata dipisahkan spasi, masing-masing diawali huruf kapital |
| Sentence case | Order total | Hanya kata pertama yang diawali huruf kapital |
camelCase kadang disebut lower camel case dan PascalCase upper camel case. CONSTANT_CASE juga dikenal sebagai screaming snake case.
Gaya yang Diharapkan Setiap Bahasa dan Format
Sebagian besar ekosistem sudah lama menyepakati konvensi, dan mengikutinya membuat kode lebih mudah dibaca oleh siapa pun yang mengenal ekosistem itu:
| Di mana | Konvensi umum |
|---|---|
| JavaScript, TypeScript, Java | camelCase untuk variabel dan fungsi, PascalCase untuk kelas, CONSTANT_CASE untuk konstanta tetap |
| Python (PEP 8) | snake_case untuk fungsi dan variabel, PascalCase untuk kelas, CONSTANT_CASE untuk konstanta |
| C# | PascalCase untuk tipe, metode, dan anggota publik; camelCase untuk variabel lokal dan parameter |
| Go | PascalCase mengekspor nama ke luar paketnya, camelCase membuatnya tetap privat |
| Ruby, Rust | snake_case untuk metode dan variabel, PascalCase untuk tipe |
| CSS dan HTML | kebab-case untuk properti, nama kelas, dan atribut data- |
| URL | kebab-case; Google menyarankan tanda hubung, bukan garis bawah, di antara kata |
| Tabel dan kolom SQL | snake_case, karena banyak basis data menyeragamkan nama tanpa tanda kutip ke satu jenis huruf |
| Variabel lingkungan | CONSTANT_CASE, seperti DATABASE_URL |
| Kunci konfigurasi | dot.case untuk pengaturan bertingkat, seperti server.port |
| API JSON | Tidak ada aturan tunggal: banyak memakai camelCase, yang lain snake_case; ikuti API yang Anda pakai |
Di sebagian besar bahasa pemrograman, kebab-case tidak bisa dipakai untuk nama variabel karena tanda hubung dibaca sebagai tanda minus: order-total berarti order dikurangi total.
Akronim dan Angka
Akronim adalah titik di mana konvensi paling berbeda. Satu aliran mempertahankannya dalam huruf kapital (userID, parseHTML); aliran lain memperlakukannya sebagai kata biasa (userId, parseHtml). Panduan gaya Java dan JavaScript dari Google mengikuti pendekatan kedua, yang menjaga batas kata tetap jelas saat akronim bertemu: XmlHttpRequest lebih mudah dipisah daripada XMLHTTPRequest. Pedoman .NET dari Microsoft menulis akronim dua huruf dalam kapital (IOStream) dan hanya mengkapitalkan huruf pertama akronim yang lebih panjang (HtmlButton). API browser XMLHttpRequest mencampur keduanya, karena itu sering dijadikan contoh yang perlu dihindari.
Angka tidak punya huruf besar atau kecil, jadi konverter tidak bisa tahu apakah utf8Decoder berarti “utf8 decoder” atau “utf 8 decoder”. Konverter biasanya menempelkan angka ke kata sebelumnya. Pilih satu ejaan dan pakai di mana-mana.
Title Case dan Sentence case pada Judul
Pada judul berbahasa Inggris, panduan gaya tidak mengkapitalkan setiap kata dengan cara yang sama. Gaya AP dan Chicago membiarkan artikel, konjungsi, dan preposisi pendek tetap huruf kecil kecuali di awal atau akhir (“The Lord of the Rings”), dan berbeda dalam daftar persisnya. Banyak panduan antarmuka dan dokumentasi, termasuk panduan dokumentasi pengembang dari Microsoft dan Google, memakai Sentence case (“Change your password”), yang lebih mudah diterapkan secara konsisten dan terasa kurang formal.
Title Case pada konverter LeedyBox mengkapitalkan setiap kata. Itu cocok untuk label dan nama mirip variabel, tetapi tidak untuk judul gaya surat kabar: turunkan kata-kata pendek menjadi huruf kecil secara manual setelahnya.
Konversi Antargaya Menghilangkan Informasi
Setiap konversi pertama-tama memecah nama menjadi kata, dengan huruf kapital dan pemisah sebagai petunjuk, lalu menggabungkan kata-kata itu dalam gaya baru. Apa yang tidak bisa diungkapkan gaya tujuan akan hilang: parseHTML menjadi parse_html, dan dikonversi balik menjadi parseHtml. Tanda baca juga dibuang, sehingga “don't” menjadi dua kata.
Karena itu, jadikan satu gaya sebagai acuan. Jika basis data memakai snake_case dan kode memakai camelCase, lakukan konversi di batas setiap kali, ke arah yang sama, alih-alih menyimpan nama dalam kedua bentuk.
Mengganti Nama Kunci di Batas API
Saat front-end dengan camelCase berkomunikasi dengan back-end dengan snake_case, sebagian besar pustaka serialisasi bisa memetakan nama secara otomatis, sehingga data tidak pernah diganti namanya secara manual. Mengonversi dokumen JSON satu kali, misalnya data uji atau contoh respons, adalah tugas lain, dan mode “Kunci JSON” pada konverter melakukannya tanpa menyentuh nilai.
Waspadai tabrakan: user_name dan userName menjadi kunci yang sama di gaya mana pun, dan yang satu akan menimpa yang lain. Simbol di awal seperti _id atau $ref sering punya arti bagi basis data atau skema tertentu, jadi periksa apakah boleh diganti namanya.
Huruf Besar dan Kecil di Luar Bahasa Inggris
Aturan huruf besar-kecil tidak sama di semua bahasa. Huruf ß dalam bahasa Jerman menjadi SS dalam huruf kapital, sehingga katanya bertambah panjang. Bahasa Turki punya i bertitik dan ı tanpa titik: pasangan kapitalnya adalah i → İ dan ı → I, sedangkan aturan bawaan sebagian besar bahasa pemrograman mengubah i menjadi I. toUpperCase() di JavaScript memakai aturan bawaan; toLocaleUpperCase('tr') menerapkan aturan Turki. Bahasa Korea, Tionghoa, dan Jepang sama sekali tidak mengenal huruf besar-kecil, jadi hanya pemisah antarkata yang berubah.
Huruf besar-kecil juga bisa berpengaruh pada nama file. Windows dan, secara bawaan, macOS memperlakukan Readme.md dan README.md sebagai file yang sama, sedangkan Linux memperlakukannya sebagai dua file. Penggantian nama yang hanya mengubah huruf besar-kecil bisa tidak terdeteksi di satu sistem dan merusak tautan atau import di sistem lain.
Pertanyaan Umum
Mana yang lebih baik, camelCase atau snake_case?
Secara umum tidak ada yang lebih baik. Pakai konvensi bahasa, framework, atau API yang Anda gunakan; konsistensi dalam satu basis kode lebih penting daripada pilihannya.
Apakah URL sebaiknya memakai tanda hubung atau garis bawah?
Tanda hubung. Panduan Google tentang URL menyarankan tanda hubung di antara kata, dan slug kebab-case seperti /case-converter/ adalah praktik umum di web.
Mengapa Git tidak menyadari saya hanya mengubah huruf besar-kecil nama file?
Pada sistem file yang tidak membedakan huruf besar-kecil, Git sering menganggap nama lama dan baru sebagai file yang sama. Ganti nama dengan git mv, misalnya melalui nama sementara, agar perubahan tercatat untuk sistem yang membedakan huruf besar-kecil.
Bagaimana menulis nama merek seperti iPhone atau eBay dalam camelCase?
Konverter memecah kata di huruf kapital, jadi nama seperti itu menjadi kata-kata terpisah. Dalam kode biasanya lebih jelas memperlakukan merek sebagai satu kata (iphoneModel) dan memakai ejaan resminya hanya pada teks yang dibaca orang.