Perché XMLHttpRequest non sembra seguire una convenzione di denominazione?


28

Di recente ho lavorato con l' oggetto XMLHttpRequest in JavaScript e non ho potuto fare a meno di notare che l'involucro di questo nome non ha senso. Perché "XML" è tutto in maiuscolo mentre "Http" non lo è? Sono entrambi acronimi!

Sicuramente avrebbe più senso che il nome fosse uno dei seguenti:

  • XmlHttpRequest (PascalCase, le migliori pratiche per i nomi delle classi in JavaScript)
  • xmlHttpRequest (camelCase, comune anche se non per le classi)
  • XMLHTTPRequest (caps-for-acronimi, usato raramente in programmazione?)

Sono sicuro che ci deve essere qualche motivo e odio pensare che ora sia incastonato nella pietra solo perché nessuno lo ha messo in discussione in quel momento. Esiste un'altra convenzione di denominazione di cui non sono a conoscenza?


9
Sidenote: Java ha un'incoerenza di denominazione molto simile: The HttpURLConnection.
Joachim Sauer,

6
Sidenote # 2: almeno quelli sono scritti correttamente, a differenza HTTP_REFERERdell'intestazione ...
OnoSendai

3
Sospetto che questo rientri nella categoria "Alcuni sviluppatori hanno commesso un errore e ora non possiamo correggerlo", ma è probabile che ci sia una sola persona al mondo che conosce la risposta effettiva.
Martin Brown,

1
Eppure non ti chiedi perché abbia XML (o effettivamente HTTP) nel nome in primo luogo?
Smetti di fare del male a Monica il

Risposte:


15

È interessante notare che Microsoft l'ha chiamato per la prima volta IXMLHTTPRequestquando è stato aggiunto alla libreria MSXML .

Mozilla ha usato il nome XMLHttpRequestquando ha aggiunto il concetto in Gecko, implementando l'idea di imitare l'interfaccia MS. Da allora è diventato lo standard defacto, legando tutte le altre implementazioni alla decisione di Mozilla.

Dovresti andare a fare la speleologia nel Mozilla Bugzilla per vedere se riesci a trovare qualche ragionamento per i cappucci che cambiano lì, ma sospetto che non ci sia stato molto pensiero e che la minuscola ttpparte della parte sia accidentale.

Ciò è corroborato dall'errore di ortografia dell'interfaccia Microsoft nella definizione dell'interfaccia nsIXMLHttpRequest (prima revisione nel repository Mozilla Mercurial) :

XMLHttpRequest di Mozilla è modellato sull'oggetto IXMLHttpRequest di Microsoft. L'obiettivo è stato quello di far corrispondere la versione di Mozilla alla versione di Microsoft il più vicino possibile, ma ci sono sicuramente delle differenze.


Ah, vedo, quindi è intenzionale in quanto si basa su un'istanza precedente dell'ortografia. Non mi piace ancora, ma almeno posso capire come è arrivato. Grazie per un'ottima risposta
Alec,

6
Si noti che mentre XML e URL sono comunemente in maiuscolo, i riferimenti a http minuscoli sono onnipresenti in HTML. Quindi XMLHttpRequestpuò essere visto come un involucro di cammello degli identificatori combinati.
Hardmath,

2
Se torni alla prima revisione in CVS: bonsai.mozilla.org/cvsblame.cgi?file=mozilla/content/base/… È così. L'autore originale era Vidur Apparao, quindi forse qualcuno può rintracciarlo (oggi è CTO ad Agari: agari.com/team/vidur-apparao ) e chiederglielo. Sfortunatamente non c'è nulla in Bugzilla al riguardo, ai tempi di Netscape non erano grandiosi nel presentare bug per tenere traccia del lavoro.
Ted Mielczarek,

4

Alcune linee guida per la denominazione fanno una distinzione tra acronimi "brevi" e "lunghi". Ad esempio, la guida allo stile di codifica per il runtime .Net di Microsoft specifica che gli acronimi brevi devono essere in maiuscolo mentre gli acronimi lunghi devono avere solo la prima lettera maiuscola. La loro soglia per un acronimo lungo è di 3 lettere, quindi favorirebbe "XmlHttpRequest", tuttavia non è irragionevole pensare che alcune persone possano usare una regola simile con 4 caratteri come soglia.

Ho guardato vecchie copie della guida di stile di mozilla.org e nessuna sembra specificare nulla sugli acronimi, ma è possibile che sia una vecchia guida di Netscape o che lo sviluppatore stesse applicando una regola che aveva raccolto altrove.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.