Saya mengalami masalah dalam memahami cara menerapkan sintaks camelCase ke beberapa nama variabel saya.
Sebagai contoh, bagaimana saya harus menulis kata seperti "nomor telepon" dengan benar di case unta? Apakah itu phoneNumber
atau phonenumber
? Demikian pula dengan "nama pengguna", apakah itu username
atau userName
?
Saya pikir itu tidak beres dengan kasus unta seperti motorCycle
, passWord
, sunDay
, setUp
atau waveLength
karena ini hanya satu kata masing-masing. Saya pikir itu bisa menjadi alasan mengapa itu disebut hashMap
tetapi juga hashtable
dalam kasus unta tanpa modal dalam kasus terakhir karena hashtable adalah satu kata sementara peta hash adalah dua kata.
Tetapi jika sepeda motor memiliki warna maka apakah itu motorcycleColor
karena sebuah kata digabungkan? Apakah itu benar atau harus itu phoneNUmber
, waveLength
, sunBlock
dan bahkan sunDay
untuk Minggu minggu?
Mengapa misalnya adalah metode yang disebut getISOCountries
sementara dikatakan HttpHeaders
misalnya tidak jelas apa yang menjadi huruf kecil jika kita memiliki metode seperti String camelCaseString = dog.toCamelCase()
atau interface CamelCase
.
username
itu apa adanya, itu adalah tanda panggilan, bukan "nama pengguna", jadi ini lebih seperti sepeda motor daripada nama depan atau nama belakang (yang harus di-camelcased)street
harus kelas danname
salah satu dari atribut / data anggota.Jawaban:
Anda harus menggunakan huruf kapital setelah "di mana" biasanya ada spasi (ketika Anda akan menulis surat alih-alih kode sumber). Asumsi pertama Anda benar:
motorcycle
, bukanmotorCycle
.hashMap
, bukanhashmap
.sunday
, bukansunDay
.dayOfWeek
, tidakdayofweek
.sumber
hashmap
satu kata, meskipun ironisnya kami tidak melakukannyatree map
. mengangkat bahuhoneyBee
(dan bukanhoneybee
, sebenarnya bukan "lebah madu" tetapi "lebah madu"), danbutterfly
.setUp
adalah kasus tepi, itu kata tunggal, tetapi secaraJUnit
historis memiliki inisialisasi fixture itu bernamasetUp
.JUnit
sudah benar, kita semua adalah ujung kasus. :)tearDown
: DBagian 1
Saya pikir apa yang membuat Anda tersandung adalah bahwa beberapa contoh Anda adalah kata majemuk , sedangkan yang lain tidak.
Kata majemuk tidak mengikuti notasi kasus unta untuk kata kedua dalam kata majemuk.
Jadi
motorcycle
dan tidakmotorCycle
.Tetapi "nomor telepon" bukanlah kata majemuk dan itu akan mengikuti notasi kasus unta. yaitu
phoneNumber
.Dan yang mengarah ke:
motorcycleColor
.Jika saya tidak dapat mengingat apakah suatu kata benar-benar sebuah kata majemuk atau tidak, saya mencarinya di kamus untuk memastikan.
Bagian 2
Dua contoh Anda sedikit lebih rumit.
Mereka rumit karena beberapa akan mengejanya sebagai "hashmap" dan "hashtable". Menurut kamus yang baru saja saya periksa, itu adalah kata-kata yang terpisah dan bukan kata majemuk. Jadi kasus unta yang benar adalah
hashMap
danhashTable
. Tidak setiap tim mengikuti konvensi itu, jadi Anda perlu bertanya kepada rekan setim Anda apa yang mereka sukai dan kemudian mematuhinya. Konsistensi lebih penting dalam hal ini daripada apa yang dikatakan kamus itu benar.* Beberapa orang akan berpendapat bahwa hari Minggu adalah kata majemuk karena hari-hari lain dalam seminggu tidak, tetapi untuk keperluan pertanyaan ini saya akan menghindari masalah itu. Ini paling mudah untuk diperlakukan sebagai kata majemuk dan karena itu tidak ada unta.
sumber
if (currentDay == thorsDay) {...
Hmm ... perpustakaan tanggal yang terlalu buruk tidak memiliki itu sebagai opsi pemformatan ketika Anda ingin mendapatkan nama lengkap dari hari dalam seminggu.HashMap hashMap = new HashMap();
Seperti yang telah ditunjukkan orang lain, kasing unta digunakan ketika bergabung dengan kata-kata. Jangan gunakan kasing unta dalam satu kata bahasa Inggris. Masalahnya muncul dalam menentukan senyawa mana yang merupakan kata tunggal. Jika dibiarkan sendiri, programmer akan mengambil keputusan berbeda tergantung pada pengetahuan mereka tentang bahasa Inggris. Hal ini menyebabkan inkonsistensi dalam kapitalisasi, yang hampir sama menjengkelkannya dengan salah eja.
Untuk mencegah hal ini, programmer harus menggunakan referensi standar (misalnya dictionary.com ) ketika mereka tidak yakin tentang ejaan atau kapitalisasi. Meski begitu, jika konsistensi dalam penamaan penting untuk proyek Anda, tidak ada pengganti untuk tinjauan kode.
Memilih satu referensi untuk proyek Anda akan menyelesaikan sebagian besar argumen tentang penggunaan huruf besar dan ejaan. Ada beberapa kata majemuk seperti Hashtable yang tidak ada dalam kamus, tetapi ditulis dengan huruf tunggal di Java dan C # API. Anda akan ingin membuat keputusan di seluruh proyek tentang itu. Di Jawa, ini "HashMap" tetapi "Hashtable". IMO "Hashtable" jelas salah; itu tidak pernah muncul sebagai satu kata kecuali sebagai nama dalam API.
sumber
Cara paling mudah untuk membuat kasing unta adalah dengan penggambaran kata.
Contoh dari pertanyaan Anda:
Jika Anda tidak akan membaginya menjadi dua kata, Anda juga tidak harus menggunakan kasing unta di atasnya. Kalau tidak, Anda menggunakannya pada suku kata dan seberapa konyol tampilannya
sumber
setup
, sedangkan jika Anda memiliki fungsi untuk mengatur sesuatu itu akan dipanggilsetUp
.wavelength
atauwaveLength
tergantung pada apakah nilai yang dimaksud berhubungan dengan kecepatan propagasi dibagi dengan frekuensi, atau apakah itu berkaitan dengan "panjang" (belum tentu jarak) dari beberapa jenis gelombang . Misalnya, variabel pustaka sintesis audio untuk jumlah sampel yang terkait dengan gelombang tidak akanwavelength
tetapiwaveLength
.WaveLength
dengan sendirinya akan sedikit kabur dalam skenario apa pun kecuali yang paling sederhana [apakah mengacu pada ukuran buffer atau panjang bagian perulangan] tetapi kata-kata itu bisa muncul dengan baik dalam nama yang lebih panjang.Di sinilah komplikasi dengan bahasa Inggris biasa menghalangi cara seseorang kemudian menyalahgunakan bahasa Inggris agar sesuai dengan aturan ruang putih token dalam konteks pemrograman.
Dari contoh kata yang Anda berikan, hampir semuanya adalah senyawa. Sunday tidak, karena sementara itu berasal sebagai senyawa, itu sudah begitu lama sehingga hampir tidak dapat dianggap sebagai sekarang, terutama karena didedikasikan untuk matahari lebih merupakan keingintahuan sejarah daripada bagian yang kuat dari agama dan budaya pandangan orang-orang yang berbahasa Inggris.
Dan dalam bahasa Inggris, tiga cara utama untuk menulis senyawa adalah terbuka (dengan spasi di antara dua kata), ditulis dgn tanda penghubung, dan ditutup (tanpa spasi atau tanda hubung di antara keduanya). Dan sementara ada beberapa aturan tentang tanda hubung senyawa terbuka dalam situasi tertentu, tidak ada banyak cara aturan tegas untuk mengetahui bentuk apa yang digunakan untuk senyawa tertentu di luar melihat apa yang dilakukan orang lain, dan masih ada saat-saat ketika Anda Akan menemukan dua atau bahkan ketiga bentuk ( pengocok telur , pengocok telur dan pengocok telur misalnya).
Di sini, nomor telepon hampir selalu ditulis terbuka, sehingga harus diperlakukan sebagai dua kata.
Dan ketika inter-capping untuk membentuk token, ruang atau tanda hubung dihapus dan kata kedua dan selanjutnya ditulis dalam judul-kasus, maka
phoneNumber
atauPhoneNumber
sesuai untuk konvensi Anda.Hal yang membuat
phoneNumber
tampak aneh mungkin adalah bahwa itu lebih umum diberikan sepertiphone
pada sebagian besar konteks, ataunumber
ketika konteksnya adalah tentang koneksi telepon.sumber
Asuransikan konsistensi dalam file kode.
Promosikan konsistensi dalam proyek kode.
Lebih suka konsistensi dalam perpustakaan kode.
Penggabungan kata-kata untuk mewakili konsep berubah ketika kita menjadi lebih akrab dengan aglutinasi yang diberikan .
Sebagai contoh...
Perhatikan bahwa pemeriksa ejaan StackExchange tidak dapat mengambil keputusan. 'Phonenumber' di akhir kalimat di atas baik-baik saja tetapi menandai yang di awal kalimat (dikapitalisasi atau tidak).
Sebanyak yang diinginkan semua orang di sana adalah "satu cara yang benar" untuk melakukan berbagai hal, ketika bicara soal bahasa, itu tidak mungkin terjadi. Pada saat Anda menyelesaikan proyek Anda, penggunaan mungkin akan berubah. Tentu saja pemahaman Anda akan berubah dan fungsionalitas metode / et.al. mungkin akan berubah juga. (Dalam hal ini, Anda mungkin harus mengubah nama dengan tepat.)
sumber
Dari perspektif yang sangat teknis (AS), di mana xxx-yyy-zzzz adalah apa yang biasanya Anda anggap sebagai "nomor telepon" bagian xxx secara tepat disebut sebagai kode area, bagian yyy secara tepat disebut sebagai pertukaran, dan zzzz secara tepat disebut sebagai nomor.
Karena tidak hanya "nomor telepon" bukan kata majemuk (belum), tetapi jika itu menjadi satu, itu akan salah merujuk sesuatu di luar maksud penciptanya, saya akan mengatakan bahwa sintaks camelCase akan memerlukan nomor telepon untuk setiap variabel yang merujuknya, tetapi jika Anda akan melakukan apa saja dengan sistem telepon yang sebenarnya, saya akan menggunakan phoneExchangeNumber untuk tujuh digit dan phoneACExchangeNumber untuk versi sepuluh digit.
sumber