Чому XMLHttpRequest, схоже, не дотримується конвенції про іменування?


28

Я нещодавно працюю з об’єктом XMLHttpRequest в JavaScript, і я не міг не помітити, що обробка цього імені не має сенсу. Чому "XML" є у всіх заголовках, а "Http" - ні? Вони обоє абревіатури!

Звичайно, було б більше сенсу, щоб ім'я було одним із таких:

  • XmlHttpRequest (PascalCase, найкраща практика для імен класів у JavaScript)
  • xmlHttpRequest (camelCase, також поширений, але не для класів)
  • XMLHTTPRequest (великі літери для абревіатур, рідко використовуються в програмуванні?)

Я впевнений, що має бути якась причина, і мені б не подобалося думати, що це тепер встановлено в камені тільки тому, що ніхто цього часу не сумнівався. Чи є ще одна угода про іменування, про яку я не знаю?


9
Sidenote: Java має дуже схоже іменування невідповідності: HttpURLConnection.
Йоахім Зауер

6
Сторінка №2: Принаймні, вони написані правильно, на відміну від HTTP_REFERERзаголовка ...
OnoSendai

3
Я підозрюю, що це підпадає під категорію "Деякі розробники допустили помилку, і тепер ми не можемо її виправити", але, ймовірно, у світі є лише одна людина, яка знає фактичну відповідь.
Мартін Браун

1
І все ж вам не цікаво, чому в першу чергу це ім'я XML (чи справді HTTP)?
Зупиніть шкодити Моніці

Відповіді:


15

Цікаво, що Microsoft вперше зателефонував йому, IXMLHTTPRequestколи він був вперше доданий до бібліотеки MSXML .

Саме Mozilla використала цю назву, XMLHttpRequestколи додала концепцію до Gecko, реалізуючи ідею імітувати інтерфейс MS. З тих пір вона стала стандартом дефакто, прив'язуючи всі інші реалізації до рішення Mozilla.

Вам доведеться провести розмову в Mozilla Bugzilla, щоб побачити, чи зможете ви знайти якісь міркування про зміну кришок там, але я підозрюю, що в неї не задумалося багато, і нижнє обшивання ttpдеталі випадкове.

Це підтверджується неправильним написанням інтерфейсу Microsoft у визначенні інтерфейсу nsIXMLHttpRequest (найперша редакція у сховищі Mozilla Mercurial) :

XMLHttpRequest Mozilla моделюється після об’єкта IXMLHttpRequest від Microsoft. Мета полягала в тому, щоб версія Mozilla максимально відповідала версії Microsoft, але, мабуть, є деякі відмінності.


Так, я бачу, тому це навмисно, оскільки воно ґрунтується на попередньому екземплярі написання. Мені це все ще не подобається - але принаймні я можу зрозуміти, як це сталося. Дякую за відмінну відповідь.
Алек

6
Зауважте, що, хоча XML та URL-адреси є загальними, всі посилання на HTML-регістри є загальними у HTML. Тому XMLHttpRequestможе розглядатися як кожух верблюда комбінованих ідентифікаторів.
хардмат

2
Якщо ви повернетесь до першої редакції CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… Це так. Оригінальним автором був Vidur Apparao, тож, можливо, хтось може його відслідкувати (він зараз є представником Агарі в Agari: agari.com/team/vidur-apparao ) і запитати його. На жаль, в цьому немає нічого баггілла, ще в дні Netscape вони не були великі щодо подання помилок для відстеження роботи.
Тед Мільчарек

4

Деякі вказівки щодо іменування розрізняють "короткі" та "довгі" абревіатури. Наприклад, посібник зі стилю кодування для Microsoft .Net виконує вказівку, що короткі акроніми повинні бути в кришках блоків, тоді як у довгих абревіатур мають бути написані лише перші літери. Їх поріг для тривалої абревіатури становить 3 літери, тому було б корисно "XmlHttpRequest", однак нерозумно думати, що деякі люди можуть використовувати аналогічне правило з чотирма символами як порогове значення.

Я переглянув старі копії посібника зі стилів mozilla.org, і жодна з них не вказує нічого про абревіатури, але можливо, що це було чи старше керівництво по Netscape, або розробник застосовував правило, яке він вибрав в іншому місці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.