Saya ragu tentang CamelCase. Andaikan Anda memiliki akronim ini:Unesco = United Nations Educational, Scientific and Cultural Organization.
Anda harus menulis: unitedNationsEducationalScientificAndCulturalOrganization
Tetapi bagaimana jika Anda perlu menulis akronim? Sesuatu seperti:
getUnescoProperties();
Apakah benar menulis seperti ini? getUnescoProperties() OR getUNESCOProperties();
coding-style
camelcasing
acronym
gal007
sumber
sumber
get_unesco_properties
atau tidakget_u_n_e_s_c_o_properties
?Jawaban:
Beberapa pedoman yang telah ditulis Microsoft
camelCase
adalah:Menyimpulkan:
Saat Anda menggunakan singkatan atau akronim yang panjangnya dua karakter, tutup semuanya;
Ketika akronim lebih panjang dari dua karakter, gunakan huruf kapital untuk karakter pertama.
Jadi, dalam kasus spesifik Anda,
getUnescoProperties()
sudah benar.sumber
ID
sebagai gantinyaId
(yang saya gunakan / lihat di mana-mana)XMLHttpRequest()
aslinya berasal dari Microsoft.Ada kritik sah terhadap saran Microsoft dari jawaban yang diterima.
playerID
vsplayerId
vsplayerIdentifier
.USTaxes
vs.usTaxes
USID
vsusId
(atauparseDBMXML
dalam contoh Wikipedia).Jadi saya akan memposting jawaban ini sebagai alternatif untuk jawaban yang diterima. Semua akronim harus diperlakukan secara konsisten; akronim harus diperlakukan seperti kata lain. Mengutip Wikipedia :
Jadi ulang: pertanyaan OP, saya setuju dengan jawaban yang diterima; ini benar:
getUnescoProperties()
Tetapi saya pikir saya akan mencapai kesimpulan yang berbeda dalam contoh-contoh ini:
US Taxes
→usTaxes
Player ID
→playerId
Jadi pilih jawaban ini jika Anda berpikir akronim dua huruf harus diperlakukan seperti akronim lainnya.Camel Case adalah sebuah konvensi, bukan spesifikasi. Jadi saya kira aturan opini populer.( EDIT: Menghapus saran ini bahwa suara harus memutuskan masalah ini; seperti yang dikatakan @Brian David; Stack Overflow bukan "kontes popularitas", dan pertanyaan ini ditutup sebagai "berdasarkan opini")
Meskipun banyak yang lebih suka memperlakukan akronim seperti kata lain, praktik yang lebih umum adalah menempatkan akronim dalam huruf besar semua (meskipun mengarah pada "kekejian")
Sumber Daya Lainnya:
sumber
USTaxes
danPlayerId
; camelCase:usTaxes
danplayerId
. 3) Itu akanUSId
di PascalCase,usId
di camelCase , danparseDbmXml
di camelCase.InIN(item)
vsInIn(item)
(petunjuk: IN adalah inci). Atau,IDById(id)
vsIdById(id)
, ilmu konteks (petunjuk: ID berarti penyakit menular). "Panjang dua karakter" - apa dalam konteks apa?Pertama, saya harus mengklarifikasi bahwa saya bukan penutur asli bahasa Inggris , jadi klaim saya tentang tata bahasa Inggris bisa saja salah. Jika Anda menemukan kesalahan seperti itu, beri tahu saya, dan saya akan sangat berterima kasih.
Praktik terbaik untuk akronim adalah menghindari akronim sebanyak mungkin. Bagaimanapun, ini tidak terjadi karena akronim
UNESCO
lebih akrab daripada nama lengkapUnitedNationsEducationalScientificAndCulturalOrganization
.Kemudian, saya pikir
UNESCO
lebih masuk akal daripadaUnesco
karena hanya lebih dekat dengan bentuk kehidupan nyata sehingga lebih akrab. Saya mengalami kesulitan untuk mencari tahu apa arti kata ituUnesco
sebenarnya.Sebagai contoh lain, pikirkan
Arc
. Ini terdengar seperti kurva di sekitar lingkaran, tetapi di Rust, ini artinyaAtomically Reference Counted
. Jika ditulis seperti ituARC
, setidaknya pembaca akan mengenali bahwa kata itu adalah akronim dari sesuatu yang lain dan bukan semacam kurva.Program modern ditulis terutama untuk pembaca manusia. Kemudian aturan penamaan tersebut harus ditetapkan untuk keterbacaan manusia daripada pemrosesan mesin atau analisis.
Dalam perspektif ini, kami kehilangan beberapa keterbacaan dengan menggunakan
Unesco
lebihUNESCO
sambil tidak mendapatkan apa-apa.Dan untuk kasus lain, saya pikir hanya mengikuti aturan akronim (atau konvensi) bahasa Inggris yang sederhana sudah cukup untuk sebagian besar kasus agar mudah dibaca .
sumber
Untuk mengonversi ke CamelCase, ada juga algoritma Camel case deterministic Google (hampir) :
Dalam contoh berikut, "Permintaan XML HTTP" diubah dengan benar ke XmlHttpRequest, XMLHTTPRequest salah.
sumber
getUnescoProperties()
harus menjadi solusi terbaik ...Bila mungkin ikuti saja yang murni
camelCase
, saat Anda memiliki akronim, biarkan saja huruf besar bila mungkin sebaliknyacamelCase
.Umumnya dalam variabel pemrograman OO harus dimulai dengan huruf kecil (
lowerCamelCase
) dan kelas harus dimulai dengan huruf besar (UpperCamelCase
).Jika ragu, pergilah murni
camelCase
;)parseXML
baik-baik saja,parseXml
jugacamelCase
XMLHTTPRequest
harusXmlHttpRequest
atauxmlHttpRequest
tidak ada cara untuk pergi dengan akronim huruf besar berikutnya, itu pasti tidak jelas untuk semua kasus uji.mis. bagaimana Anda membaca kata ini
HTTPSSLRequest
,, (HTTP + SSL
atauHTTPS + SL
(itu tidak berarti apa-apa selain ...), dalam hal ini ikuti konvensi kasus unta dan pergi untukhttpSslRequest
atauhttpsSlRequest
, mungkin itu tidak lagi baik, tetapi jelas lebih jelas.sumber
HTTPSSL
contoh Anda , meskipun SL tidak berarti apa-apa, bagaimana dengan sesuatu seperti HTTPSSHTunnel? Apakah itu HTTPS + SH (shell) atau HTTP + SSH? Konvensi Google jelas kurang ambigu.Ada airbnb JavaScript Style Guide di github dengan banyak bintang (~ 57.5k saat ini) dan panduan tentang akronim yang mengatakan:
sumber
XMLHTTPRequest
apakah cara ini lebih baik dibaca daripadaXmlHttpRequest
, kan?httpRequests
dianggap baik tetapiHttpRequests
buruk. mengikuti prinsip ini maka, untuk Permintaan HTTP XML harusxmlhttpRequest
???xmlHttpRequest
lebih mudah dibaca daripadaXMLHTTPRequest
menurut saya.Saat ini saya menggunakan aturan berikut:
Kasus modal untuk akronim:
XMLHTTPRequest
,xmlHTTPRequest
,requestIPAddress
.Camelcase untuk singkatan:
ID[entifier]
,Exe[cutable]
,App[lication]
.ID
adalah pengecualian, maaf tapi benar.Ketika saya melihat huruf kapital saya menganggap akronim, yaitu kata yang terpisah untuk setiap huruf. Singkatan tidak memiliki kata-kata yang terpisah untuk setiap huruf, jadi saya menggunakan kasing unta.
XMLHTTPRequest
ambigous, tetapi ini adalah kasus yang jarang dan tidak terlalu ambigu, jadi tidak apa-apa, aturan dan logika lebih penting daripada keindahan.sumber
Panduan gaya JavaScript Airbnb berbicara sedikit tentang ini . Pada dasarnya:
Karena saya biasanya membaca huruf kapital sebagai kelas, saya cenderung menghindarinya. Pada akhirnya, itu semua adalah preferensi.
sumber
Selain apa yang dikatakan @valex, saya ingin merangkum beberapa hal dengan jawaban yang diberikan untuk pertanyaan ini.
Saya pikir jawabannya adalah: itu tergantung pada bahasa pemrograman yang Anda gunakan.
C tajam
Microsoft telah menulis beberapa pedoman di mana tampaknya itu
HtmlButton
adalah cara yang tepat untuk memberi nama kelas untuk kasus ini.Javascript
Javascript memiliki beberapa variabel global dengan akronim dan menggunakan semuanya dalam huruf besar (tapi lucu, tidak selalu konsisten) di sini adalah beberapa contoh:
encodeURIComponent
XMLHttpRequest
toJSON
toISOString
sumber
onerror
.disclaimer: Bahasa Inggris bukan nada ibu saya. Tapi saya sudah memikirkan masalah ini untuk waktu yang lama, terutama ketika menggunakan node (gaya camelcase) untuk menangani database karena nama bidang tabel harus di-snake, ini adalah pemikiran saya:
Ada 2 jenis 'akronim' untuk seorang programmer:
tmc and textMessageContainer
, yang biasanya muncul sebagai variabel lokal.Dalam dunia pemrograman, semua akronim dalam bahasa alami harus diperlakukan sebagai kata , alasannya adalah:
ketika kita memprogram, kita harus memberi nama variabel baik dalam gaya akronim atau non-akronim. Jadi, jika kita menamai fungsi getUNESCOProperties, itu berarti UNESCO adalah akronim (jika tidak seharusnya tidak semua huruf besar), tetapi jelas,
get
danproperties
bukan akronim. jadi, kita harus memberi nama fungsi ini baik gunescop atau getUnitedNationsEdukasiScientificDanCulturalOrganizationProperties , keduanya tidak dapat diterima.bahasa alami terus berkembang, dan akronim hari ini akan menjadi kata-kata besok , tetapi program harus independen dari tren ini dan bertahan selamanya.
Omong-omong, dalam jawaban yang paling banyak dipilih, IO adalah akronim dalam arti bahasa komputer (singkatan dari InputOutput), tapi saya tidak suka namanya, karena saya pikir akronim (dalam bahasa komputer) hanya boleh digunakan untuk memberi nama variabel lokal tetapi kelas / fungsi tingkat atas, sehingga InputOutput harus digunakan sebagai pengganti IO
sumber
UNESCO adalah kasus khusus karena biasanya (dalam bahasa Inggris) dibaca sebagai kata dan bukan akronim - seperti UEFA, RADA, BAFTA dan tidak seperti BBC, HTML, SSL
sumber
Ada juga konvensi camelcase lain yang mencoba mendukung keterbacaan untuk akronim dengan menggunakan huruf besar (
HTML
), atau huruf kecil (html
), tetapi menghindari keduanya (Html
).Jadi, dalam kasus Anda, Anda bisa menulis
getUNESCOProperties
. Anda juga bisa menulisunescoProperties
untuk variabel, atauUNESCOProperties
untuk kelas (konvensi untuk kelas adalah mulai dengan huruf besar).Aturan ini menjadi rumit jika Anda ingin mengumpulkan dua akronim, misalnya untuk kelas bernama Permintaan HTTP XML. Ini akan dimulai dengan huruf besar, tetapi karena
XMLHTTPRequest
tidak akan mudah dibaca (apakah itu Permintaan TTP XMLH?), DanXMLhttpRequest
akan melanggar konvensi camelcase (apakah itu Permintaan XM Lhttp?), Pilihan terbaik adalah dengan menggabungkan case:,XMLHttpRequest
yang merupakan sebenarnya apa yang digunakan W3C . Namun menggunakan penamaan semacam ini tidak disarankan. Untuk contoh ini,HTTPRequest
akan menjadi nama yang lebih baik.Karena kata bahasa Inggris resmi untuk identifikasi / identitas tampaknya adalah ID, meskipun bukan akronim, Anda dapat menerapkan aturan yang sama di sana.
Konvensi ini tampaknya cukup populer di luar sana, tetapi itu hanya sebuah konvensi dan tidak ada yang benar atau salah. Cobalah untuk tetap berpegang pada konvensi dan pastikan nama Anda dapat dibaca.
sumber