Di masa lalu saya selalu menggunakan garis bawah untuk mendefinisikan atribut kelas dan id dalam HTML. Selama beberapa tahun terakhir saya berubah menjadi garis putus-putus, sebagian besar untuk menyelaraskan diri dengan tren di komunitas , belum tentu karena itu masuk akal bagi saya.
Saya selalu berpikir strip memiliki lebih banyak kekurangan, dan saya tidak melihat manfaatnya:
Penyempurnaan kode & Pengeditan
Sebagian besar editor memperlakukan tanda hubung sebagai pemisah kata, jadi saya tidak bisa menabrak simbol yang saya inginkan. Katakanlah kelasnya adalah " featured-product
", saya harus melengkapi otomatis " featured
", masukkan tanda hubung, dan selesaikan "product
".
Dengan menggarisbawahi "featured_product
" diperlakukan sebagai satu kata, sehingga dapat diisi dalam satu langkah.
Hal yang sama berlaku untuk navigasi melalui dokumen. Melompat dengan kata-kata atau mengklik dua kali pada nama kelas rusak oleh tanda hubung.
(Secara umum, saya menganggap kelas dan id sebagai token , jadi tidak masuk akal bagi saya bahwa token harus begitu mudah dipecah pada tanda hubung.)
Ambiguitas dengan operator aritmatika
Menggunakan tanda hubung memecah akses objek-properti untuk membentuk elemen dalam JavaScript. Ini hanya mungkin dengan menggarisbawahi:
form.first_name.value='Stormageddon';
(Harus diakui saya sendiri tidak mengakses elemen formulir dengan cara ini, tetapi ketika memutuskan tanda hubung vs garis bawah sebagai aturan universal, pertimbangkan bahwa mungkin ada seseorang.)
Bahasa seperti Sass (terutama di seluruh kerangka kerja Kompas ) telah ditetapkan pada garis hubung sebagai standar, bahkan untuk nama variabel. Mereka awalnya menggunakan garis bawah pada awalnya juga. Fakta bahwa ini diurai berbeda menurut saya sebagai aneh:
$list-item-10
$list-item - 10
Inkonsistensi dengan penamaan variabel antar bahasa
Dulu, saya biasa menulis underscored_names
untuk variabel dalam PHP, ruby, HTML / CSS, dan JavaScript. Ini nyaman dan konsisten, tetapi sekali lagi untuk "cocok" Saya sekarang menggunakan:
dash-case
dalam HTML / CSScamelCase
dalam JavaScriptunderscore_case
dalam PHP dan ruby
Ini tidak terlalu mengganggu saya, tetapi saya bertanya-tanya mengapa ini menjadi begitu tidak selaras, tampaknya sengaja. Setidaknya dengan menggarisbawahi dimungkinkan untuk mempertahankan konsistensi:
var featured_product = $('#featured_product'); // instead of
var featuredProduct = $('#featured-product');
Perbedaan menciptakan situasi di mana kita harus menerjemahkan string tidak perlu, bersama dengan potensi bug.
Jadi saya bertanya: Mengapa komunitas hampir secara universal berselisih, dan adakah alasan yang lebih penting daripada menggarisbawahi?
Ada pertanyaan terkait dari belakang sekitar waktu ini dimulai, tapi saya berpendapat bahwa itu bukan (atau tidak seharusnya ) hanya masalah selera. Saya ingin mengerti mengapa kita semua sepakat pada konvensi ini jika itu hanya masalah selera.