คำย่อใน CamelCase [ปิด]


243

ฉันมีข้อสงสัยเกี่ยวกับ CamelCase นึกว่าคุณมีตัวย่อนี้:Unesco = United Nations Educational, Scientific and Cultural Organization.

คุณควรเขียน: unitedNationsEducationalScientificAndCulturalOrganization

แต่ถ้าคุณต้องการเขียนคำย่อ สิ่งที่ต้องการ:

getUnescoProperties();

การเขียนด้วยวิธีนี้ถูกต้องหรือไม่ getUnescoProperties() OR getUNESCOProperties();


2
สิ่งนี้ไม่ควรอยู่ในโปรแกรมเมอร์หรือไม่
Pacerier

5
IMO ที่แปลงเป็น snake_case เผยทางออกที่ดีที่สุด คุณชอบget_unesco_propertiesหรือget_u_n_e_s_c_o_propertiesไม่?
jchook


คำถามที่เกี่ยวข้อง: stackoverflow.com/questions/4504508/camel-casing-acronyms
Anton Tarasenko

คำตอบ:


195

แนวทางบางประการที่Microsoft ได้เขียนเกี่ยวกับcamelCaseคือ:

เมื่อใช้ตัวย่อให้ใช้ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่สำหรับตัวย่อมากกว่าสองตัว ตัวอย่างเช่นใช้หรือHtmlButton htmlButtonอย่างไรก็ตามคุณควรใช้ประโยชน์จากตัวย่อที่ประกอบด้วยเพียงสองตัวละครเช่นแทนSystem.IOSystem.Io

ห้ามใช้ตัวย่อในตัวระบุหรือชื่อพารามิเตอร์ หากคุณต้องใช้ตัวย่อให้ใช้ตัวพิมพ์เล็กอูฐสำหรับตัวย่อที่ประกอบด้วยอักขระมากกว่าสองตัวแม้ว่าสิ่งนี้จะขัดแย้งกับตัวย่อมาตรฐานของคำ

สรุป:

  • เมื่อคุณใช้ตัวย่อหรือตัวย่อที่มีความยาวสองตัวอักษรให้ใส่ทั้งหมดในตัวพิมพ์ใหญ่

  • เมื่อตัวย่อยาวเกินสองตัวอักษรให้ใช้ตัวพิมพ์ใหญ่สำหรับอักขระตัวแรก

ดังนั้นในกรณีเฉพาะของคุณgetUnescoProperties()ถูกต้อง


11
ฉันเดาว่าฉันควรเริ่มใช้IDแทนId(ซึ่งฉันใช้ / ดูได้ทุกที่)
jasonscript

30
ในทางเทคนิค "ID" ไม่ใช่ตัวย่อ (มันเป็นตัวย่อของ "ตัวระบุ" หรือ "ตัวตน") แต่ฉันไม่รู้จริง ๆ ว่า / แนวทางนี้ช่วยได้อย่างไร : - \
bryant

64
ฉันไม่คิดว่านี่เป็นมาตรฐานที่ดี การจำแนกคำย่อปกติตัวย่อสองตัวอักษรและคำปกติดูเหมือนจะซับซ้อนเกินไปและตรงกันข้ามกับแนวคิดของการมีการตั้งชื่อที่สอดคล้องกัน
แซม

40
นอกจากนี้การถูก Microsoft ระบุก็ไม่ได้ทำสิ่งที่ "ถูกต้อง"
แซม

48
เป็นเรื่องดีที่รู้ว่าพวกเขาทำตามแนวทางของพวกเขาเองXMLHttpRequest()แต่เดิมมาจาก Microsoft
Makyen

315

มีการวิพากษ์วิจารณ์อย่างถูกกฎหมายเกี่ยวกับคำแนะนำของ Microsoftจากคำตอบที่ยอมรับได้

  • การรักษาคำย่อ / คำย่อที่ไม่สอดคล้องกันขึ้นอยู่กับจำนวนตัวอักษร:
    • playerIDVS VSplayerIdplayerIdentifier
  • คำถามว่าตัวย่อสองตัวอักษรควรยังคงเป็นตัวพิมพ์ใหญ่หรือไม่ถ้ามันปรากฏที่จุดเริ่มต้นของตัวระบุ:
    • USTaxes VS usTaxes
  • ความยากลำบากในการจำแนกคำย่อหลายคำ:
    • ie USIDvs usId(หรือparseDBMXMLในตัวอย่างของ Wikipedia)

ดังนั้นฉันจะโพสต์คำตอบนี้เป็นทางเลือกแทนคำตอบที่ยอมรับ คำย่อทั้งหมดควรได้รับการปฏิบัติอย่างสม่ำเสมอ คำย่อควรได้รับการปฏิบัติเหมือนคำอื่น ๆ การอ้างถึง Wikipedia :

... โปรแกรมเมอร์บางคนชอบที่จะใช้คำย่อราวกับว่ามันเป็นคำเล็ก ๆ ...

ดังนั้นคำถามของ OP ฉันเห็นด้วยกับคำตอบที่ยอมรับ สิ่งนี้ถูกต้อง:getUnescoProperties()

แต่ฉันคิดว่าฉันจะได้ข้อสรุปที่แตกต่างในตัวอย่างเหล่านี้:

  • US TaxesusTaxes
  • Player IDplayerId

ดังนั้นให้ลงคะแนนสำหรับคำตอบนี้ถ้าคุณคิดว่าตัวย่อสองตัวควรได้รับการปฏิบัติเหมือนตัวย่อ.

Camel Case เป็นแบบแผนไม่ใช่ข้อกำหนด ดังนั้นฉันเดากฎความเห็นยอดนิยม

( แก้ไข:ลบข้อเสนอแนะนี้เพื่อให้คะแนนควรตัดสินใจเรื่องนี้ตามที่ @Brian David พูดว่า Stack Overflow ไม่ใช่ "การประกวดความนิยม" และคำถามนี้ถูกปิดเป็น "อิงตามความคิดเห็น")

แม้ว่าคนจำนวนมากชอบที่จะรักษาคำย่อเหมือนคำอื่น ๆ แต่การฝึกฝนโดยทั่วไปอาจจะใช้คำย่อในตัวพิมพ์ใหญ่ทั้งหมด (แม้ว่ามันจะนำไปสู่ ​​"สิ่งที่น่ารังเกียจ")

แหล่งข้อมูลอื่น ๆ :

  • หมายเหตุบางคนแยกความแตกต่างระหว่างตัวย่อและตัวย่อ
  • หมายเหตุแนวทางของ Microsoft แยกแยะระหว่างตัวย่อสองตัวอักษรและ "ตัวย่อยาวเกินสองอักขระ"
  • หมายเหตุบางคนแนะนำให้หลีกเลี่ยงตัวย่อ / ตัวย่อทั้งหมด
  • หมายเหตุบางคนแนะนำให้หลีกเลี่ยง CamelCase / PascalCase ทั้งหมด
  • หมายเหตุบางคนแยกความแตกต่างระหว่าง "ความสอดคล้อง" เป็น "กฎที่ดูเหมือนไม่สอดคล้องกันภายใน" (เช่นการรักษาคำย่อสองตัวอักษรที่แตกต่างจากตัวย่อสามตัวอักษร); บางคนกำหนด "ความมั่นคง" เป็น "ใช้กฎเดียวกันอย่างสม่ำเสมอ" (แม้ว่ากฎจะไม่สอดคล้องกันภายใน)
  • แนวทางการออกแบบกรอบ
  • แนวทางของ Microsoft

26
1) ไม่มีความไม่สอดคล้องกัน "Id" เป็นตัวย่อไม่ใช่ตัวย่อ 2) ขึ้นอยู่กับบริบทของตัวระบุ ได้แก่ คลาสอินเทอร์เฟซแอตทริบิวต์ประเภทการแจกแจงฟิลด์สแตติกพารามิเตอร์วิธีการคุณสมบัติหรือเหตุการณ์ หากแนวทางสำหรับตัวระบุกำลังใช้ PascalCase ก็จะเป็นUSTaxesและPlayerId; CamelCase: และusTaxes playerId3) มันจะอยู่USIdใน PascalCase usIdใน camelCase และparseDbmXmlใน camelCase
Frederik Krautwald

6
คุณพูดถูกมันเป็นตัวย่อ ประเด็นของฉันคือควรเป็น UsTaxes, UsId "ตัวย่อหรือตัวย่อ" สองตัวอักษรไม่ควรได้รับการปฏิบัติแตกต่างจากตัวอักษรสามตัวหรือ "คำปกติ" อื่น ๆ คำแนะนำอื่น ๆ จากคำตอบของ @ Eonil คือการหลีกเลี่ยงตัวย่อทั้งหมด unitedStatesTaxes หรือ playerIdentifier
ถั่วแดง

3
ฮ่า. ฉันสงสัยว่าความสับสนจะเกิดขึ้น - มาก - แต่แนวทางเป็นอย่างดีแนวทางเพื่อป้องกันความสับสนที่อาจเกิดขึ้น ตัวอย่างย่อ (ไม่ดี) ที่วางแผนไว้ในบริบททางวิทยาศาสตร์: InIN(item)vs InIn(item)(hint: IN คือ inch (es)) หรือ, IDById(id)vs IdById(id), บริบททางวิทยาศาสตร์ (คำใบ้: ID หมายถึงการทำลายติดเชื้อ) "ความยาวสองอักขระ" - บริบทใด
Frederik Krautwald

2
ที่ลิงก์ Microsoft "... ใช้ตัวพิมพ์ Pascal หรือ camel case สำหรับคำย่อมากกว่าสองตัวอักษร ... อย่างไรก็ตามคุณควรใช้ตัวย่อที่ประกอบด้วยตัวอักษรสองตัวเท่านั้น ... " นั่นคือส่วนที่ฉันจะเรียกว่า "ไม่สอดคล้องกัน " ลักษณะที่ดีขึ้นคือ "ข้อยกเว้น" และอย่างน้อยคุณก็หาเหตุผลว่าทำไมตัวย่อสองตัวอาจจะสับสนมากกว่า แต่ฉันเดาว่าโปรแกรมเหล่านั้นที่มี "CanCan" นั้นเป็นเรื่องโชคไม่ดี ไม่ชัดเจนไม่ว่าจะเป็นการเต้นหรือเครือข่ายชุมชนของ Cercle de l'Aviron de Nantes :)
The Red Pea

18
ผู้เขียนทุนการกระทำผิดกฎหมาย: วิธีการจับคำย่อใน CamelCaseอย่างถูกต้องจะเรียกคำว่า "สิ่งที่น่ารังเกียจ" เมื่อเขาเขียน: "ในขณะที่ [ใช้ตัวพิมพ์ใหญ่ตัวย่อ] ทำงานในกรณีที่เรียบง่ายจะนำไปสู่สิ่งที่น่าสะอิดสะเอียนเมื่อย่อหนึ่งดังต่อไปนี้อีก: HTTPURLConnection, XMLIDREF"
kghastie

21

ก่อนอื่นฉันต้องชี้แจงว่าฉันไม่ได้เป็นเจ้าของภาษาอังกฤษดังนั้นการกล่าวอ้างเกี่ยวกับไวยากรณ์ภาษาอังกฤษอาจผิด หากคุณพบข้อผิดพลาดดังกล่าวโปรดแจ้งให้เราทราบและฉันจะขอบคุณมาก


แนวทางปฏิบัติที่ดีที่สุดสำหรับตัวย่อจะหลีกเลี่ยงตัวย่อให้มากที่สุด อย่างไรก็ตามกรณีนี้ไม่ได้เพราะตัวย่อเป็นที่คุ้นเคยมากกว่าชื่อเต็มUNESCOUnitedNationsEducationalScientificAndCulturalOrganization

จากนั้นฉันคิดว่าUNESCOเหมาะสมกว่าUnescoเพราะเพียงใกล้กับรูปแบบชีวิตจริงที่คุ้นเคยมากขึ้น ฉันมีปัญหาบางอย่างที่จะเข้าใจความหมายของคำUnescoว่า

Arcในฐานะที่เป็นอีกตัวอย่างหนึ่งที่คิดเกี่ยวกับ มันฟังดูเหมือนโค้งรอบ ๆ วงกลม แต่ใน Rust หมายถึงAtomically Reference Countedอะไร หากมีการเขียนเช่นARCนั้นอย่างน้อยผู้อ่านจะจำได้ว่าคำศัพท์นั้นเป็นคำย่อของอย่างอื่นแทนที่จะเป็นเส้นโค้ง

โปรแกรมสมัยใหม่เขียนขึ้นเพื่อคนอ่านเป็นหลัก จากนั้นต้องตั้งกฎการตั้งชื่อเหล่านั้นเพื่อให้มนุษย์สามารถอ่านได้มากกว่าการประมวลผลหรือการวิเคราะห์ด้วยเครื่องจักร

ในมุมมองนี้เราสูญเสียความสามารถในการอ่านโดยใช้UnescoไปโดยUNESCOไม่ได้อะไรเลย

และสำหรับกรณีอื่น ๆ ผมคิดว่าต่อไปนี้เป็นเพียงธรรมดากฎตัวย่อภาษาอังกฤษ (หรือการประชุม)ก็เพียงพอสำหรับกรณีส่วนใหญ่สำหรับการอ่านที่ดีที่สุด


4
ตัวอย่างข้างต้นเป็นการทำให้เข้าใจผิดเล็กน้อย "วิธีที่ดีที่สุดที่ฉันเคยเห็นคือแอปเปิ้ล ... นั่นหมายถึงการรักษาคำย่อเหมือนคำนามที่เหมาะสม ... ดังนั้นยูเนสโกจึงสมเหตุสมผล" - นั่นไม่ใช่วิธีที่คุณเขียนคำนามที่เหมาะสม
มิคโกะรันทาเนน

@MikkoRantanen ฉันอัพเดตคำตอบแล้ว
Eonil

7
ว้าวฉันแทบจะไม่สามารถหาประโยคในคำตอบที่ว่าผมจะเห็นด้วยกับ :-)
โจเซฟSábl

มันขึ้นอยู่กับบริบทของรหัสที่คุณใช้อย่างสมบูรณ์ว่าตัวย่อ / ตัวย่อมีความหมายมากกว่าหรือน้อยกว่า ตัวอย่างเช่นฉันทำงานด้านการเงินและมีคำศัพท์เฉพาะมากมายที่เหมือนกันทั่วทั้งอุตสาหกรรมและในความเป็นจริงทั้งโลก คุณจะเสียเวลาและสร้างความฟุ่มเฟื่อยที่ไม่จำเป็นโดยไม่ใช้คำย่อที่ทุกคนที่จะทำงานใน บริษัท นั้นรู้ด้วยใจ เช่น PV สำหรับมูลค่าปัจจุบัน, FV สำหรับมูลค่าในอนาคต, เฉลี่ยสำหรับ exp, exponent เป็นต้น
Will Ediger

@ pm100 นั่นไม่ใช่สิ่งที่ฉันพูดเหรอ? ยูเนสโกไม่ใช่วิธีที่คุณเขียนคำนามที่เหมาะสม
Mikko Rantanen

17

ในการแปลงเป็น CamelCase ยังมีอัลกอริทึมกรณี Camel กรณีที่ Google กำหนดไว้ (เกือบ) :

เริ่มต้นด้วยรูปแบบร้อยแก้วของชื่อ:

  1. แปลงวลีเป็น ASCII ธรรมดาและลบอะพอสโทรฟีใด ๆ ตัวอย่างเช่น "อัลกอริทึมของMüller" อาจกลายเป็น "อัลกอริทึม Muellers"
  2. แบ่งผลลัพธ์นี้ออกเป็นคำโดยแยกช่องว่างและเครื่องหมายวรรคตอนที่เหลือ (โดยปกติคือเครื่องหมายขีดกลาง)
    1. แนะนำ: หากคำใด ๆ ที่มีลักษณะตัวเรือนอูฐธรรมดาอยู่แล้วในการใช้งานทั่วไปให้แบ่งคำนี้ออกเป็นส่วนต่าง ๆ ของมัน (เช่น "AdWords" กลายเป็น "คำโฆษณา") โปรดทราบว่าคำเช่น "iOS" ไม่ใช่ในกรณีของอูฐ มันเป็นการฝ่าฝืนอนุสัญญาใด ๆ ดังนั้นคำแนะนำนี้จึงไม่มีผลบังคับใช้
  3. ตอนนี้ทุกอย่างเป็นตัวพิมพ์เล็ก (รวมถึงตัวย่อ) แล้วพิมพ์ใหญ่เป็นตัวอักษรตัวแรกของ:
    1. ... แต่ละคำเพื่อให้ได้ตัวอูฐตัวสูงหรือ
    2. ... แต่ละคำยกเว้นคำแรกเพื่อให้ได้ตัวพิมพ์เล็ก
  4. สุดท้ายเข้าร่วมคำทั้งหมดเป็นตัวระบุเดียว

โปรดทราบว่าปลอกของคำเดิมนั้นแทบจะไม่สนใจเลย

ในตัวอย่างต่อไปนี้ "คำขอ XML HTTP" ถูกแปลงเป็น XmlHttpRequest อย่างถูกต้อง XMLHTTPRequest ไม่ถูกต้อง


17

getUnescoProperties() ควรเป็นทางออกที่ดีที่สุด ...

เมื่อเป็นไปได้เพียงทำตามความบริสุทธิ์camelCaseเมื่อคุณมีคำย่อให้ปล่อยให้ตัวพิมพ์ใหญ่เป็นไปcamelCaseได้

โดยทั่วไปในตัวแปรการเขียนโปรแกรม OO ควรเริ่มต้นด้วยตัวอักษรพิมพ์เล็ก ( lowerCamelCase) และคลาสควรเริ่มต้นด้วยอักษรตัวพิมพ์ใหญ่ (UpperCamelCase )

เมื่อมีข้อสงสัยก็ไปบริสุทธิ์camelCase;)

parseXMLเป็นเรื่องปกติparseXmlนอกจากนี้ยังมีcamelCase

XMLHTTPRequestควรเป็นXmlHttpRequestหรือxmlHttpRequestไม่มีวิธีที่จะไปกับคำย่อตัวพิมพ์ใหญ่ที่ตามมามันไม่ชัดเจนสำหรับกรณีทดสอบทั้งหมด

เช่นวิธีการทำคุณอ่านคำนี้HTTPSSLRequest, HTTP + SSLหรือHTTPS + SL(ที่ไม่ได้หมายความว่าอะไร แต่ ... ) ในกรณีที่กรณีดังต่อไปนี้อูฐประชุมและไปhttpSslRequestหรือhttpsSlRequestบางทีมันอาจจะไม่มีความสุขอีกต่อไป แต่เป็นที่แน่นอนชัดเจนมากขึ้น


2
ฉันชอบHTTPSSLตัวอย่างของคุณถึงแม้ว่า SL จะไม่ได้มีความหมายอะไรเลยอย่างเช่น HTTPSSHTunnel มันเป็น HTTPS + SH (เชลล์) หรือ HTTP + SSH หรือไม่ การประชุมของ Google นั้นไม่ชัดเจนอย่างแน่นอน
L. Holanda

10

มีairbnb JavaScript Style Guideที่ github พร้อมดวงดาวมากมาย (ประมาณ 57.5k ในขณะนี้) และคำแนะนำเกี่ยวกับคำย่อที่พูดว่า:

คำย่อและการเริ่มต้นควรจะเป็นตัวพิมพ์ใหญ่ทั้งหมดหรือตัวพิมพ์เล็กทั้งหมด

ทำไม? ชื่อมีไว้สำหรับความสามารถในการอ่านไม่ใช่เพื่อเอาใจคอมพิวเตอร์

// bad
import SmsContainer from './containers/SmsContainer';

// bad
const HttpRequests = [
  // ...
];

// good
import SMSContainer from './containers/SMSContainer';

// good
const HTTPRequests = [
  // ...
];

// also good
const httpRequests = [
  // ...
];

// best
import TextMessageContainer from './containers/TextMessageContainer';

// best
const requests = [
  // ...
];

7
" ทำไม? ชื่อนั้นมีไว้สำหรับความสามารถในการอ่านไม่ใช่เพื่อเอาใจอัลกอริธึมของคอมพิวเตอร์ " ดังนั้นXMLHTTPRequestจะสามารถอ่านได้ดีกว่าXmlHttpRequestใช่มั้ย
L. Holanda

2
ไม่สมเหตุสมผลว่าทำไมจึงhttpRequestsถือว่าดี แต่HttpRequestsไม่ดี ปฏิบัติตามหลักการนี้แล้วสำหรับคำขอ XML HTTPควรเป็นxmlhttpRequest???
L. Holanda

1
ฉันมักจะอ้างอิงคู่มือสไตล์ AirBnb แต่ในกรณีนี้ฉันไม่เห็นด้วย ฉันไม่เห็นด้วยกับข้อความของพวกเขา: "ตัวย่อและการเริ่มต้นควรเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กทั้งหมด" xmlHttpRequestสามารถอ่านได้มากกว่าXMLHTTPRequestในความคิดของฉัน
Ronan

3

ขณะนี้ฉันกำลังใช้กฎต่อไปนี้:

  1. XMLHTTPRequestกรณีเงินกองทุนเพื่อรองรับคำย่อ: xmlHTTPRequest, requestIPAddress,

  2. ID[entifier]กรณีอูฐสำหรับตัวย่อ: Exe[cutable], App[lication],

ID เป็นข้อยกเว้นขออภัย แต่เป็นความจริง

เมื่อฉันเห็นอักษรตัวใหญ่ฉันจะใช้คำย่อเช่นตัวอักษรแยกต่างหากสำหรับแต่ละตัวอักษร ตัวย่อไม่มีคำแยกสำหรับตัวอักษรแต่ละตัวดังนั้นฉันจึงใช้ตัวอูฐ

XMLHTTPRequest มันคลุมเครือ แต่มันเป็นกรณีที่หายากและมันก็ไม่คลุมเครือมากนักดังนั้นก็โอเคกฎและตรรกะมีความสำคัญมากกว่าความงาม


1

คู่มือสไตล์ JavaScript Airbnb พูดถึงสิ่งนี้เล็กน้อย โดยทั่วไป:

// bad
const HttpRequests = [ req ];

// good
const httpRequests = [ req ];

// also good
const HTTPRequests = [ req ];

เพราะโดยปกติฉันจะอ่านตัวพิมพ์ใหญ่ที่เป็นตัวชี้นำในชั้นเรียน ในตอนท้ายของวันมันคือการตั้งค่าทั้งหมด


1

นอกจากสิ่งที่ @valex พูดแล้วฉันต้องการสรุปสองสิ่งด้วยคำตอบที่ให้สำหรับคำถามนี้

ฉันคิดว่าคำตอบทั่วไปคือมันขึ้นอยู่กับภาษาการเขียนโปรแกรมที่คุณใช้

C ชาร์ป

Microsoft ได้เขียนแนวทางบางอย่างซึ่งดูเหมือนว่าHtmlButtonเป็นวิธีที่เหมาะสมในการตั้งชื่อคลาสสำหรับกรณีนี้

จาวาสคริ

Javascript มีตัวแปรทั่วโลกบางตัวที่มีคำย่อและใช้ทั้งหมดในตัวพิมพ์ใหญ่ (แต่ตลกไม่เสมอกัน) นี่คือตัวอย่าง:

encodeURIComponent XMLHttpRequest toJSON toISOString


ดีมันของ Netscape เก่าก็ยังมีบางคนที่มี CamelCase onerrorที่ไม่เหมือนใคร
Eddie

1

คำปฏิเสธ: ภาษาอังกฤษไม่ใช่เสียงแม่ของฉัน แต่ฉันคิดเกี่ยวกับปัญหานี้มาเป็นเวลานานโดยเฉพาะเมื่อใช้โหนด (สไตล์ camelcase) เพื่อจัดการฐานข้อมูลเนื่องจากชื่อของเขตข้อมูลตารางควรจะเป็นงูนี่คือความคิดของฉัน:

โปรแกรมเมอร์มีคำย่อสองชนิดสำหรับโปรแกรมเมอร์:

  • ในภาษาธรรมชาติยูเนสโก
  • ในภาษาโปรแกรมคอมพิวเตอร์ตัวอย่างเช่นtmc and textMessageContainerซึ่งมักจะปรากฏเป็นตัวแปรท้องถิ่น

ในโลกแห่งการเขียนโปรแกรมคำย่อทั้งหมดในภาษาธรรมชาติควรได้รับการปฏิบัติเสมือนคำว่า :

  1. เมื่อเราเขียนโปรแกรมเราควรตั้งชื่อตัวแปรทั้งในรูปแบบตัวย่อหรือไม่ใช่ตัวย่อ ดังนั้นถ้าเราตั้งชื่อฟังก์ชั่น getUNESCOProperties ก็หมายความว่ายูเนสโกเป็นตัวย่อ (ไม่อย่างนั้นมันไม่ควรเป็นตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด) แต่เห็นได้ชัดgetและpropertiesไม่ใช่ตัวย่อ ดังนั้นเราควรตั้งชื่อฟังก์ชั่นนี้ไม่ว่าจะเป็นgunescopหรือgetUnitedNationsNationalEducationalSocialificAndCulturalOrganizationPropertiesซึ่งทั้งคู่ยอมรับไม่ได้

  2. ภาษาธรรมชาติมีการพัฒนาอย่างต่อเนื่องและ ตัวย่อของวันนี้จะกลายเป็นคำศัพท์พรุ่งนี้แต่โปรแกรมควรเป็นอิสระจากแนวโน้มนี้และยืนอยู่ตลอดไป

โดยวิธีการในคำตอบที่ได้รับการโหวตมากที่สุด IO เป็นตัวย่อในความหมายภาษาคอมพิวเตอร์ (ย่อมาจาก InputOutput) แต่ฉันไม่ชอบชื่อเนื่องจากฉันคิดว่าตัวย่อ (ในภาษาคอมพิวเตอร์) ควรใช้เพื่อตั้งชื่อเท่านั้น ตัวแปรโลคัล แต่คลาส / ฟังก์ชันระดับบนสุดดังนั้น InputOutput ควรใช้แทน IO


"tongue" ไม่ใช่ "tone"
Dan Dascalescu

0

ยูเนสโกเป็นกรณีพิเศษเนื่องจากมักจะอ่านเป็นคำศัพท์ไม่ใช่ตัวย่อเช่นยูฟ่า RADA บาฟต้าและไม่เหมือนกับ BBC, HTML, SSL


1
นี่คือความแตกต่างระหว่าง "ตัวย่อ" และ "ตัวย่อ" เท่านั้น; ความแตกต่างนี้ดูเหมือนจะเกี่ยวข้องกับการอภิปรายทั้งหมด แต่ได้รับการอธิบายออกมาเกือบทั้งหมดในคำตอบที่นำเสนอ
simon

BBC, HTML, SSL และตัวย่ออื่น ๆ ที่คุณออกเสียงตัวอักษรแต่ละตัวมีความถูกต้องมากขึ้นเรียกว่าการเริ่มต้น คำอย่างยูเนสโกที่ออกเสียงเป็นคำย่อ
Lrdwhyt

-2

นอกจากนี้ยังมีรูปแบบการประชุม camelcase อื่นที่พยายามสนับสนุนการอ่านคำย่อโดยใช้ตัวพิมพ์ใหญ่ ( HTML) หรือตัวพิมพ์เล็ก ( html) แต่หลีกเลี่ยงทั้งสอง (Html )

getUNESCOPropertiesดังนั้นในกรณีของคุณคุณสามารถเขียน คุณสามารถเขียนunescoPropertiesตัวแปรหรือUNESCOPropertiesคลาสได้ (แบบแผนสำหรับคลาสคือเริ่มต้นด้วยตัวพิมพ์ใหญ่)

กฎนี้จะยุ่งยากหากคุณต้องการรวมคำย่อสองตัวเข้าด้วยกันตัวอย่างเช่นคลาสที่ชื่อ XML HTTP Request มันจะเริ่มต้นด้วยตัวพิมพ์ใหญ่ แต่เนื่องจากXMLHTTPRequestจะไม่ง่ายในการอ่าน (เป็น XMLH TTP Request หรือไม่) และXMLhttpRequestจะทำลายการประชุม camelcase (มันคือ XM Lhttp Request?) ตัวเลือกที่ดีที่สุดคือการผสมเคส: XMLHttpRequestซึ่งเป็น จริงว่าW3C ใช้ อย่างไรก็ตามการใช้ namings ประเภทนี้ไม่สนับสนุน สำหรับตัวอย่างนี้HTTPRequestจะเป็นชื่อที่ดีกว่า

เนื่องจากคำภาษาอังกฤษอย่างเป็นทางการสำหรับการระบุตัวตน / ตัวตนดูเหมือนจะเป็น ID แม้ว่าจะไม่ใช่ตัวย่อคุณสามารถใช้กฎเดียวกันกับที่นั่น

ดูเหมือนว่าการประชุมนี้จะได้รับความนิยมมาก แต่ก็เป็นเพียงแค่การประชุมและไม่มีอะไรถูกหรือผิด เพียงลองยึดตามแบบแผนและตรวจสอบให้แน่ใจว่าชื่อของคุณอ่านได้


3
ฉันไม่เชื่อว่ากระทู้ทั้งหมด :-) ดังนั้นมันจะเป็น XMLToHtmlConverter แต่ HTMLToXmlConverter? ว้าว ...
Josef Sábl

1
@ JosefSáblใช่มันจะเป็นอย่างนั้น เกี่ยวกับ downvote ของคุณฉันไม่ได้บอกว่าฉันชอบอนุสัญญานี้ แต่มันมีอยู่จริง
Jesús Carrera

1
ฉันอ่านคำถามว่า "การประชุมที่ดีในการเขียนคำย่อในกรณีอูฐคืออะไร" ไม่ใช่ "คุณสามารถแสดงรายการการประชุมทั้งหมดที่มีอยู่" ได้ไหม และเมื่อฉันคิดว่าการประชุมที่คุณพูดถึงแย่มากฉันก็ลงคะแนน :-)
Josef Sábl

คำถามก็คือ "ถูกต้องหรือเปล่าที่จะเขียนด้วยวิธีนี้?" และเนื่องจากมีวิธีการ "ถูกต้อง" มากมายในการเขียนเพราะเป็นเพียงการประชุมและอนุสัญญานี้ค่อนข้างเป็นที่นิยม (ไม่ว่าคุณจะพิจารณาอย่างไร) ฉัน คำตอบนั้นถูกต้องมาก :-)
Jesús Carrera
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.