Tại sao XMLHttpRequest dường như không tuân theo quy ước đặt tên?


28

Gần đây tôi đã làm việc với đối tượng XMLHttpRequest trong JavaScript và tôi không thể không chú ý rằng vỏ của tên này không có ý nghĩa gì. Tại sao 'XML' tất cả lại ở dạng mũ trong khi 'http' thì không? Cả hai đều là từ viết tắt!

Chắc chắn nó sẽ có ý nghĩa hơn cho cái tên là một trong những điều sau đây:

  • XmlHttpRequest (PascalCase, cách thực hành tốt nhất cho tên lớp trong JavaScript)
  • xmlHttpRequest (camelCase, cũng phổ biến mặc dù không dành cho các lớp)
  • XMLHTTPRequest (caps-for-acronyms, hiếm khi được sử dụng trong lập trình?)

Tôi chắc chắn phải có một số lý do và tôi ghét phải nghĩ rằng bây giờ nó đã bị ném đá chỉ vì không ai thắc mắc điều này vào thời điểm đó. Có một quy ước đặt tên khác mà tôi không biết?


9
Sidenote: Java có sự không nhất quán đặt tên rất giống nhau: The HttpURLConnection.
Joachim Sauer

6
Sidenote # 2: Ít nhất là những từ được viết đúng chính tả, không giống như HTTP_REFERERtiêu đề ...
OnoSendai

3
Tôi nghi ngờ điều này thuộc danh mục "Một số nhà phát triển đã mắc lỗi và bây giờ chúng tôi không thể sửa nó" nhưng có khả năng chỉ có một người trên thế giới biết câu trả lời thực sự.
Martin Brown

1
Tuy nhiên, bạn không tự hỏi tại sao nó lại có tên XML (hoặc thực sự là HTTP) trong tên đầu tiên?
Ngừng làm hại Monica

Câu trả lời:


15

Thật thú vị, lần đầu tiên Microsoft gọi nó IXMLHTTPRequestkhi lần đầu tiên được thêm vào thư viện MSXML .

Chính Mozilla đã sử dụng tên này XMLHttpRequestkhi thêm khái niệm này vào Gecko, thực hiện ý tưởng để bắt chước giao diện MS. Nó đã trở thành tiêu chuẩn defacto, buộc tất cả các triển khai khác vào quyết định của Mozilla.

Bạn sẽ phải tham gia trò chơi trong Mozilla Bugzilla để xem liệu bạn có thể tìm thấy bất kỳ lý do nào cho việc thay đổi mũ ở đó không, nhưng tôi nghi ngờ rằng không có nhiều suy nghĩ đi sâu vào nó và việc hạ thấp ttpphần này là tình cờ.

Điều này được chứng thực bằng lỗi chính tả của giao diện Microsoft trong định nghĩa giao diện nsIXMLHttpRequest (sửa đổi sớm nhất trong kho lưu trữ Mozilla Mercurial) :

XMLHttpRequest của Mozilla được mô hình hóa theo đối tượng IXMLHttpRequest của Microsoft. Mục tiêu là làm cho phiên bản của Mozilla khớp với phiên bản của Microsoft càng sát càng tốt, nhưng chắc chắn sẽ có một số khác biệt.


À tôi hiểu rồi, vậy nên nó có chủ ý dựa trên một ví dụ chính tả trước đó. Tôi vẫn không thích nó - nhưng ít nhất tôi có thể hiểu nó đã diễn ra như thế nào. Cảm ơn cho một câu trả lời tuyệt vời.
Alec

6
Lưu ý rằng mặc dù XML và URL thường là tất cả các chữ hoa, các tham chiếu đến http chữ thường rất phổ biến trong HTML. Vì vậy, XMLHttpRequestcó thể được xem như vỏ lạc đà của các định danh kết hợp.
hardmath

2
Nếu bạn hoàn toàn quay lại bản sửa đổi đầu tiên trong CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/ Lỗi như thế. Tác giả ban đầu là Vidur Rõao, vì vậy có lẽ ai đó có thể theo dõi anh ta (hiện tại anh ta là CTO tại Agari: agari.com/team/vidur-apparao ) và hỏi anh ta. Thật không may, không có gì trong bugzilla về điều này, trở lại trong những ngày Netscape họ không tuyệt vời về việc nộp lỗi để theo dõi công việc.
Ted Mielczarek

4

Một số hướng dẫn đặt tên tạo sự khác biệt giữa các từ viết tắt "ngắn" và "dài". Chẳng hạn, hướng dẫn kiểu mã hóa cho thời gian chạy .Net của Microsoft chỉ định rằng các từ viết tắt ngắn phải ở dạng khối trong khi các từ viết tắt dài chỉ nên viết hoa chữ cái đầu tiên. Ngưỡng của họ cho một từ viết tắt dài là 3 chữ cái, vì vậy sẽ ưu tiên "XmlHttpRequest", tuy nhiên không có lý khi nghĩ rằng một số người có thể sử dụng quy tắc tương tự với 4 ký tự làm ngưỡng.

Tôi đã xem các bản sao cũ của hướng dẫn kiểu mozilla.org và dường như không ai chỉ định bất cứ điều gì về các từ viết tắt, nhưng có thể là một hướng dẫn Netscape cũ hơn đã làm, hoặc nhà phát triển đang áp dụng quy tắc mà anh ấy đã chọn ở nơi khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.