ทำไม XMLHttpRequest ดูเหมือนจะไม่ปฏิบัติตามหลักการตั้งชื่อ


28

ฉันได้ทำงานกับวัตถุXMLHttpRequestใน JavaScript เมื่อเร็ว ๆ นี้และฉันอดไม่ได้ที่จะสังเกตว่าการใส่ชื่อนี้ไม่สมเหตุสมผล ทำไม 'XML' ทั้งหมดอยู่ในตัวพิมพ์ใหญ่ในขณะที่ 'Http' ไม่ถูกต้อง พวกเขาเป็นทั้งตัวย่อ!

แน่นอนว่ามันสมเหตุสมผลกว่าสำหรับชื่อที่จะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:

  • XMLHttpRequest (PascalCase การปฏิบัติที่ดีที่สุดสำหรับชื่อชั้นใน JavaScript)
  • xmlHttpRequest (camelCase ก็เหมือนกัน แต่ไม่ใช่สำหรับคลาส)
  • XMLHTTPRequest (ตัวย่อสำหรับตัวย่อซึ่งไม่ค่อยใช้ในการเขียนโปรแกรม?)

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


9
Sidenote: Java HttpURLConnectionมีความไม่สอดคล้องกันการตั้งชื่อที่คล้ายกันมากที่:
Joachim Sauer

6
Sidenote # 2: อย่างน้อยพวกนั้นสะกดถูกต้องไม่เหมือนกับHTTP_REFERERส่วนหัว ...
OnoSendai

3
ฉันสงสัยว่าสิ่งนี้จะอยู่ในหมวดหมู่ของ "นักพัฒนาบางคนทำผิดและตอนนี้เราไม่สามารถแก้ไขได้" แต่มีแนวโน้มว่าจะมีเพียงคนเดียวในโลกที่รู้คำตอบจริง
Martin Brown

1
แต่คุณไม่สงสัยเลยว่าทำไมถึงมี XML (หรือ HTTP จริง ๆ ) ในชื่อตั้งแต่แรก?
หยุดทำร้ายโมนิก้า

คำตอบ:


15

ที่น่าสนใจพอไมโครซอฟท์ครั้งแรกเรียกมันว่าIXMLHTTPRequestเมื่อมันถูกแรกเพิ่มไปยังห้องสมุด MSXML

มันเป็น Mozilla ที่ใช้ชื่อXMLHttpRequestเมื่อมันเพิ่มแนวคิดลงใน Gecko การใช้แนวคิดเพื่อเลียนแบบส่วนต่อประสาน MS มันได้กลายเป็นมาตรฐาน defacto ผูกการใช้งานอื่น ๆ ทั้งหมดเพื่อการตัดสินใจของ Mozilla

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

สิ่งนี้ได้รับการยืนยันโดยการสะกดคำผิดของอินเทอร์เฟซ Microsoft ในการกำหนดอินเทอร์เฟซ nsIXMLHttpRequest (การแก้ไขที่เร็วที่สุดในที่เก็บ Mozilla Mercurial) :

XMLHttpRequest ของ Mozilla ถูกสร้างแบบจำลองหลังจากวัตถุ IXMLHttpRequest ของ Microsoft เป้าหมายคือการทำให้เวอร์ชันของ Mozilla ตรงกับเวอร์ชันของ Microsoft มากที่สุดเท่าที่จะเป็นไปได้ แต่ก็มีข้อแตกต่างบางประการ


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

6
โปรดทราบว่าในขณะที่ XML และ URL เป็นตัวพิมพ์ใหญ่ทั้งหมดการอ้างอิงถึง http ตัวพิมพ์เล็กนั้นแพร่หลายใน HTML ดังนั้นXMLHttpRequestอาจถูกมองว่าเป็นตัวอูฐของตัวระบุที่รวมกัน
hardmath

2
หากคุณย้อนกลับไปสู่การแก้ไขครั้งแรกใน CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… มันเป็นอย่างนั้น ผู้เขียนต้นฉบับคือ Vidur Apparao ดังนั้นบางคนอาจติดตามเขาได้ (เขาเป็น CTO ที่ Agari ทุกวันนี้: agari.com/team/vidur-apparao ) และถามเขา น่าเสียดายที่ไม่มีอะไรใน bugzilla เกี่ยวกับเรื่องนี้ย้อนกลับไปในยุค Netscape ที่พวกเขาไม่ได้ยอดเยี่ยมเกี่ยวกับการจัดเก็บข้อบกพร่องเพื่อติดตามงาน
Ted Mielczarek

4

หลักเกณฑ์การตั้งชื่อบางอย่างสร้างความแตกต่างระหว่างคำย่อ "สั้น" และ "ยาว" ตัวอย่างเช่นคู่มือสไตล์การเข้ารหัสสำหรับ. Net ของ Microsoftระบุว่าตัวย่อสั้นควรอยู่ในบล็อกตัวพิมพ์ใหญ่ในขณะที่ตัวย่อยาวควรมีอักษรตัวแรกเป็นตัวพิมพ์ใหญ่เท่านั้น ขีด จำกัด สำหรับตัวย่อยาวของพวกเขาคือ 3 ตัวอักษรดังนั้นจะชอบ "XmlHttpRequest" แต่มันก็ไม่มีเหตุผลที่จะคิดว่าบางคนอาจใช้กฎที่คล้ายกันที่มี 4 ตัวอักษรเป็นเกณฑ์

ฉันได้ดูคู่มือสไตล์ mozilla.org ฉบับเก่าแล้วและดูเหมือนจะไม่มีใครระบุอะไรเกี่ยวกับตัวย่อ แต่ก็เป็นไปได้ที่คู่มือ Netscape รุ่นเก่าทำหรือผู้พัฒนาใช้กฎที่เขาเลือกขึ้นมาจากที่อื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.