Bahasa Indonesia

Teks & alat sehari-hari · Perangkat Teks

camelCase, ular_case, kebab-case dan PascalCase: dimana masing-masing digunakan

· Latar belakang

konversi kasus pengidentifikasi alur kerja pengembang

Satu pengidentifikasi profil ditulis dalam huruf unta, Pascal, ular, dan kebab
Ilustrasi vektor ToolAcre asli

Tur tentang konvensi penamaan — dari mana asalnya, bahasa dan ekosistem apa yang diharapkan, dan mengapa nama file, URL, kolom database, dan kunci JSON masing-masing mengarah ke arah yang berbeda.

Lima nama untuk satu hal — userProfileId, user_profile_id, user-profile-id, UserProfileId dan USER_PROFILE_ID

Frasa "ID profil pengguna" dapat menjadi `userProfileId`, `UserProfileId`, `user_profile_id`, atau `user-profile-id` tanpa mengubah kata-katanya. Perbedaan yang terlihat adalah letak batasnya dan apakah kata pertama diawali dengan huruf kapital. ToolAcre menghasilkan keempat bentuk tersebut langsung dari masukan yang sama, sehingga perbedaan strukturalnya mudah untuk dibandingkan.

`USER_PROFILE_ID` yang semuanya huruf besar adalah konvensi proyek lain yang berguna, tetapi ini bukan opsi gabungan terpisah dalam sumber konverter kasus. Toolkit ini memaparkan transformasi huruf besar dan kecil secara terpisah. Jika basis kode menggunakan konstanta huruf besar, konversikan ke huruf besar lalu huruf besar daripada mengklaim menu huruf melakukan kedua langkah sekaligus.

Empat konversi ditunjukkan oleh Text Toolkit, ditambah bentuk konstanta huruf besar yang disusun secara terpisah

`camelCase` dimulai dengan kata kecil dan menggunakan huruf kapital di awal setiap kata berikutnya. `PascalCase` menerapkan bentuk gabungan kata yang sama dan juga menggunakan huruf kapital pada kata pertama. Di ToolAcre, kedua transformasi dimulai dengan pemisah kata yang sama, sehingga tanda baca dan batasan huruf yang ada diinterpretasikan sebelum keluaran disusun.

Banyak tim menetapkan kedua formulir tersebut dengan jenis nama yang berbeda, namun repositori tidak menetapkan aturan bahasa universal atau riwayat untuk pemisahan tersebut. Perlakukan panduan gaya lokal, linter, kerangka kerja API, atau kode terdekat sebagai otoritas. Konverter mengubah bentuk ejaan; itu tidak menentukan apakah suatu nama mewakili kelas, fungsi, variabel, atau komponen.

camelCase dan PascalCase berbeda dengan huruf pertama; riwayat bahasa mereka berada di luar bukti penyimpanan

`snake_case` menurunkan setiap kata yang terdeteksi dan menggabungkan hasilnya dengan garis bawah. Untuk `User Profile ID`, ToolAcre mengembalikan `user_profile_id`. Pemisah tetap terlihat, yang dapat membantu ketika nama melewati sistem yang tidak mempertahankan kapitalisasi dengan andal, namun manfaat praktis tersebut bukanlah bukti bahwa setiap database, bahasa, atau layanan mengharapkan garis bawah.

Gunakan konvensi yang sudah ditentukan di tujuan. Layanan Python mungkin memiliki satu kebijakan, skema SQL kebijakan lainnya, dan muatan serial di kebijakan ketiga. ToolAcre tidak dapat memeriksa kontrak tersebut. Janjinya yang dapat diandalkan lebih sempit: `toSnakeCase` mendeteksi kata-kata, masing-masing menggunakan huruf kecil, dan menyisipkan `_` di antara kata-kata tersebut tanpa memutuskan apakah tujuan mengizinkan atau lebih memilih hasil tersebut.

keluaran Snake_case didukung secara langsung; ekosistem dan ekspektasi SQL bergantung pada masing-masing proyek

`kebab-case` menggunakan kata huruf kecil yang sama tetapi menggabungkannya dengan tanda hubung, menghasilkan `user-profile-id`. Bentuk tersebut terlihat jelas secara visual di tempat tanda hubung diterima sebagai data, seperti segmen rute yang dikonfigurasi atau nama file yang ditentukan proyek. Ini bukan pengidentifikasi JavaScript karena parser dapat membaca tanda hubung sebagai operator dan bukan bagian dari satu nama.

Garis besarnya mencantumkan kelas CSS, atribut HTML, flag baris perintah, dan slug URL, namun pustaka teks tidak menentukan aturan konsumen tersebut. Konfirmasikan sintaks target sebelum mengonversi. ToolAcre juga memiliki fungsi `slugify` terpisah dengan pelipatan aksen, pemilihan pemisah, pemangkasan, dan penanganan panjang opsional, sehingga konversi kebab biasa tidak boleh ditampilkan sebagai validasi siput URL penuh.

keluaran kebab-case didukung secara langsung; penggunaan yang valid bergantung pada sintaksis di sekitarnya

Batasan adalah tempat konvensi penamaan menjadi operasional dan bukan sekedar hiasan. Objek browser dapat menggunakan satu ejaan sementara kolom payload atau database API menggunakan ejaan lain. Jadikan pemetaan tersebut eksplisit pada satu adaptor alih-alih menyebarkan konversi ke seluruh tampilan, kueri, dan logika bisnis. Keunggulan yang dapat diprediksi menjaga setiap model internal tetap konsisten dan membuat ketidakcocokan lebih mudah ditemukan.

Hindari mengonversi nilai arbitrer hanya karena terlihat seperti pengidentifikasi. Pemisah kata memperlakukan tanda baca sebagai batasan dan mengenali transisi yang dipilih antara huruf kecil, huruf besar, dan angka. Hal ini berguna untuk nama, namun dapat mengubah kunci yang ejaannya telah diperbaiki secara eksternal. Pertahankan kunci kontrak dengan tepat kecuali antarmuka penerima mendokumentasikan pemetaan di bawah kendali Anda.

Contoh praktis - mengonversi satu pengidentifikasi melalui semua konvensi dan memutuskan mana yang termasuk dalam proyek kecil

Pertimbangkan sebuah aplikasi kecil dengan frasa `user profile ID`. ToolAcre menghasilkan `userProfileId` untuk wadah unta, `UserProfileId` untuk wadah Pascal, `user_profile_id` untuk wadah ular, dan `user-profile-id` untuk wadah kebab. Setiap keluaran membawa tiga kata terdeteksi yang sama, sedangkan huruf besar dan pemisah yang disisipkan mengkodekan bentuk yang dipilih.

Sebuah proyek praktis mungkin menyimpan `userProfileId` dalam objek JavaScript, memetakannya secara eksplisit ke `user_profile_id` pada batas persistensi, dan mencadangkan `user-profile-id` untuk lokasi yang tata bahasanya menerima tanda hubung. Pilihan yang tepat adalah milik proyek itu. Bagian yang penting adalah mendokumentasikan setiap batas dan menguji pemetaannya daripada berulang kali menebak-nebak dari tampilannya.

Apa yang tidak tercakup di sini — Notasi Hongaria dan perdebatan tentang singkatan di dalam pengenal

Perbandingan ini tidak menyelesaikan ejaan singkatan. Implementasinya mengubah kata-kata yang terdeteksi menjadi huruf kecil sebelum menyusunnya kembali, sehingga masukan yang berisi `HTTP` mungkin muncul sebagai `Http` di dalam keluaran Pascal atau unta. Apakah tim lebih memilih `Http`, `HTTP`, `Id`, atau `ID` merupakan kebijakan penamaan yang memerlukan pengecualian eksplisit di luar transformasi umum ini.

Ini juga tidak mencakup riwayat notasi, standar bahasa, atau setiap tata bahasa pengidentifikasi yang valid. Klaim tersebut memerlukan sumber di luar file alat yang digunakan untuk artikel ini. ToolAcre mendemonstrasikan transformasi teks deterministik dan mendokumentasikan satu batasan utama: kata majemuk yang ditulis tanpa batas yang dapat dideteksi tidak selalu dapat dipecah menjadi kata-kata yang diinginkan seseorang.

Kebijakan singkatan dan riwayat notasi berada di luar bukti konverter

Tidak ada satu kasus pun yang benar secara universal. Sebuah nama berguna jika mengikuti kontrak dan tetap dapat dikenali oleh orang yang mengelola lapisan tersebut. Mulailah dengan konvensi yang sudah ada, pertahankan satu formulir di dalam batas, dan terjemahkan hanya jika antarmuka lain memerlukannya. Konsistensi mengurangi perbedaan yang tidak disengaja tanpa berpura-pura bahwa setiap ekosistem memiliki satu aturan yang sama.

Ketika batas memerlukan bentuk lain, tempelkan pengidentifikasi ke dalam konverter kasus Text Toolkit dan periksa empat keluaran sebelum menerapkan salah satunya. Operasi berjalan di browser dan manifes menyatakan bahwa teks tidak dikirim ke server atau disimpan secara otomatis. Gunakan hasilnya sebagai pemetaan yang disengaja, lalu biarkan pengujian proyek dan pemeriksaan gaya lokal mengonfirmasi pilihan akhir.