Ich habe angefangen, Java EE 7 zu lernen, und stoße häufig auf diesen Begriff "Standard", und ich verstehe nicht, was er bedeutet.
Zum Beispiel hier ein Zitat aus diesem Buch:
Im Gegensatz zu SOAP und dem WS- * -Stack, die auf W3C-Standards basieren, hat REST keinen Standard und ist nur ein Architekturstil mit Designprinzipien. REST-Anwendungen stützen sich stark auf viele andere Standards: HTTP, URI, URL ...
Ich habe eine Vorstellung davon, was das bedeuten könnte, bin mir aber nicht sicher.
Die beste Erklärung, auf die ich gestoßen bin, ist die Definition von hier .
coding-standards
standards
Djole Pi
quelle
quelle
Antworten:
Der Begriff "Standards" in der Programmierung bezieht sich häufig auf eine Technologie / ein Dokument, die bzw. das von einer Gruppe oder Community verwaltet wird. Die Mitglieder dieser Gruppe teilen häufig gemeinsame Anlageziele, sind aktive Nutzer dieser Technologie und möchten sicherstellen, dass die Technologie fortgesetzt wird.
Es gibt viele "Dinge" in der Programmierung, die von einer Community gesteuert werden. Diese Mitglieder können von Programmierern bis hin zu Unternehmensvertretern (z. B. Apple, Microsoft, IBM usw. usw.) reichen.
W3C ist eine sehr große Gruppe, die zusammenarbeiten, um viele Standards zu definieren.
Hier ist eine Liste der Mitglieder.
http://www.w3.org/Consortium/Member/List
REST ist ein Beispiel für eine Technologie. Aufgrund ihrer Beliebtheit wird sie von vielen Menschen verwendet, aber es gibt keine Gruppe oder Community, die sie regiert. Aus diesem Grund gibt es keinen Ort, an dem man mit dem Finger zeigen und sagen kann, "so sagen die Standards, dass es getan werden sollte" .
Unternehmen wie IBM, Microsoft und andere haben eine Dokumentation zur Implementierung von REST veröffentlicht. Man könnte sagen, es gibt einen "gemeinsamen Weg" zur Implementierung von REST. Sie können eine maßgebliche Quelle auswählen , die eine Implementierung von REST beschreibt, und behaupten, dieser Referenz zu folgen. Die Verwendung maßgeblicher Quellen ist eine Möglichkeit, mit den Problemen der Kompatibilität in Webbrowsern umzugehen.
quelle
Eine Norm ist ein technisches Dokument, das das Verhalten einer Technologie festlegt. (Bei einigen Technologien kann es sich um eine andere Art von technischem Standard handeln .) Das ist alles, was sie sind und warum sie existieren: Sie sind Dokumente und beschreiben die Technologie.
Diese Dokumente werden von einem Leitungsgremium verfasst, das die Befugnisse und das Vertrauen besitzt, die erforderlich sind, um entscheiden zu können, wie diese Technologie funktioniert, und damit die Mitarbeiter sich darum kümmern können, wenn sie ein Spezifikationsdokument als Standard veröffentlichen. Ein Leitungsgremium könnte viele Standards für verschiedene Technologien oder verschiedene Versionen einer Technologie erstellen. Das Leitungsgremium könnte auch als Verwalter, Verfasser, Verwahrer usw. der Standards bekannt sein.
(Im Gegensatz zu dem, was Mathew beschreibt, ist ein Standard weder das Leitungsgremium noch die Technologie selbst. Es ist ein Dokument , das die Technologie oder eine bestimmte Version davon beschreibt.)
Einige Beispielstandards für Technologien, die Sie erwähnt haben (und andere):
HTML ist ein gutes Beispiel dafür, dass unterschiedliche Versionen einer Sprache häufig unterschiedliche Standards haben. Die verschiedenen Versionen haben unterschiedliche Dokumente, die beschreiben, wie mit verschiedenen Versionen der Sprache umgegangen werden soll.
HTTP ist eines der vielen Beispiele für einen Standard, der zwischen Gruppen wechselt: zuerst von der Netzwerkarbeitsgruppe, dann von der HTTP-Arbeitsgruppe, obwohl beide Gruppen Teil der IETF waren. Andere Technologien sind zwischen den Unternehmen gewechselt , beispielsweise HTML (erneut), dessen Version 2 von der IETF in RFC1866 verfasst wurde .
Warum gibt es Standards?
Sie dienen dazu, uns eine Garantie dafür zu geben, wie die Dinge funktionieren werden.
Die HTML5-Spezifikation gibt an, wie die verschiedenen Browser das von mir geschriebene HTML5-Markup verarbeiten und anzeigen, sofern sie den Standard korrekt implementieren (was in der Vergangenheit ein Problem war). Der C ++ 11-Standard gibt Auskunft darüber, welche verschiedenen C ++ 11-Codes ich schreiben werde oder nicht.
Ebenso sagt mir der HTML5-Standard , wenn ich einen Browser schreibe , wie ich mit verschiedenen HTML5-Markup-Elementen umgehen muss, damit die Benutzer das bekommen, was sie erwarten. Wenn ich einen C ++ 11-Compiler schreibe, sagt mir der C ++ 11-Standard, was ich tun muss, um die Sprache korrekt zu implementieren und den Code der Leute so zu gestalten, wie sie es erwarten.
Zum Beispiel Microsoft-Autoren C #. Sie können die C # -Sprachspezifikation 5.0 selbst herunterladen . Dieses Dokument ist ein Versprechen, dass der von Ihnen geschriebene C # -Code sich so verhalten sollte, wie er in der Spezifikation beschrieben ist, und zwar in jedem Compiler, der die Spezifikation tatsächlich korrekt implementiert.
( Wenn Sie Dinge außerhalb der Spezifikation tun , befinden Sie sich in einem undefinierten Gebiet und es gibt keinerlei Garantie dafür, was passieren wird oder nicht.)
Historisch gesehen gehen Standards auf Dinge wie Schraubengewinde zurück , so dass ich eine gewisse Garantie haben kann, dass, wenn ich eine Schraube vom Typ X bestelle, diese in das von mir gebohrte Loch passt und mit anderen Schrauben vom Typ X austauschbar ist.
Das bringt uns zurück zur Definition des Wortes "Standard" :
dh das, womit du deine Sachen vergleichst, um sicherzustellen, dass du das bekommst, was du erwartest.
quelle
Ein Technologiestandard ist eine Spezifikation, bei der erwartet wird, dass zwei Implementierungen desselben Standards interoperabel oder austauschbar sind. Beispiele: USB, Bluetooth, Java EE7, HTTP.
Dann gibt es "de facto" -Standards: Konventionen, die Interoperabilität ermöglichen, jedoch ohne eine explizit vereinbarte Spezifikation. Beispiel: Das Microsoft-DOC-Format war in der Vergangenheit ein De-facto-Standard, da viele Produkte DOC lesen und schreiben konnten, kanonische Spezifikationen jedoch erst viel später zur Verfügung standen. Dokumente wurden noch häufig im DOC-Format verteilt, mit der Erwartung, dass jeder Empfänger sie lesen kann, sodass sie de facto zum Standard geworden waren.
Um auf Ihr spezielles Beispiel einzugehen, hat REST keine explizit vereinbarte Spezifikation und ist daher kein echter Standard und kaum ein De-facto-Standard, da es erhebliche Unklarheiten hinsichtlich der korrekten Vorgehensweise aufweist und keine vorherrschenden Implementierungen vorhanden sind behebt diese Unklarheiten. (Ich bin nicht gegen REST. Es ist eine sehr gute Möglichkeit, Webdienste zu erstellen.)
quelle
Ein Standard ist eine standardisierte Konvention - entweder durch eine formale Spezifikation oder einfach, weil eine gemeinsame Konvention so populär geworden ist, dass sie vorherrschend ist.
A
de jure standard
ist eine Spezifikation, die von einem Standardausschuss veröffentlicht wurde. Einige Standardausschüsse sind ISO, ECMA, DIN, ANSI und W3C.Einige Beispiele
de jure standards
sind das A4-Papierformat (ISO-Standard 219), die c # -Sprache (ECMA-334) usw.Der Begriff "de jure" wird selten verwendet, und ein "de jure-Standard" wird oft nur als Standard bezeichnet.
(Quelle: Wikipedia - Ich könnte es nicht besser selbst schreiben)
Ein De-facto-Standard folgt nicht unbedingt einer formalen Spezifikation.
Wie Gudmundur Orn in dieser Antwort schrieb , war das Microsoft Office DOC-Format ein De-facto-Standard. Es hatte eine beherrschende Stellung und es wurde normalerweise angenommen, dass Menschen MS Word-Dokumente lesen können.
JSON ist ein lustiges Biest, da es als De-facto-Standard begann. Es wurde jedoch inzwischen als ECMA-404 formalisiert und ist nun ein "de-jure-Standard".
Es ist jedoch auch das vorherrschende Format für den Datenaustausch mit HTTP-basierten APIs (meines Wissens) und daher auch der "De-facto-Standard" für diesen Zweck.
quelle
Für die gesetzliche Produkthaftung gelten die Mängel als Entwurf, Herstellung oder Dokumentation. Ein Design ist nicht fehlerhaft, wenn es auf einer Norm basiert, unabhängig davon, ob diese Norm fehlerhaft ist oder nicht. Es gilt der Standard, der zum Zeitpunkt der Produkterstellung gültig war. Eine Norm kann eine veröffentlichte Norm (ISO) oder eine anerkannte Industrienorm sein, die nicht von der Normungsvereinigung veröffentlicht wird. Daher ist TCP / IP mit all seinen inhärenten Fehlern wie Spoofing ein Standard. Wenn Sie eine neue Technologie wie VOIP erstellen und nichts unternehmen, um den Benutzer vor bekannten Problemen mit der zugrunde liegenden Technologie zu schützen, können Sie das Chaos aufrechterhalten. Oder ich liege falsch und habe hier einen Dokumentationsfehler ...
quelle