当某些技术是“标准”时,这意味着什么?


16

我开始学习Java EE 7,经常遇到“标准”一词,但我不明白它的含义。

因此,例如,这是本书的引文:

与依赖于W3C标准的SOAP和WS- *堆栈相反,REST没有标准,只是一种具有设计原则的体系结构样式。REST应用程序严重依赖于许多其他标准:HTTP,URI,URL ...

我对这可能意味着什么有所了解,但不确定。

我遇到的最好的解释是这里的定义。


7
阅读有关技术标准的维基页面。但这实际上可能是一个流行词。标准通常是规范:因此C ++ 11Posix是标准。
Basile Starynkevitch 2014年

这意味着无论谁在推动它,都试图说服您购买(购买)它。
bmargulies 2014年

Answers:


21

编程中的“标准”一词通常是指由团体或社区管理的技术/文档。该小组的成员通常具有共同的投资目标,是该技术的活跃用户,并希望确保该技术继续发展。

编程中有许多“事物”,它们都有一个社区来管理它们。这些成员的范围从程序员到公司代表(例如Apple,Microsoft,IBM等)。

W3C是一个非常庞大的团队,它们共同努力以定义许多标准。

这是成员列表。

http://www.w3.org/Consortium/Member/List

REST是一种技术的示例,其流行度被许多人使用,但是没有团体或社区来管理它。因此,没有人可以指责说“这就是标准应该做到的”

像IBM,Microsoft和其他公司这样的公司已经发布了有关如何实现REST的文档。可以说有一种实现REST的“通用方法”。您可以选择描述REST实现的权威资源,并声称可以遵循该参考。使用权威资源是我们处理Web浏览器兼容性问题的一种方式。


4
我还将RFC添加到查找标准的位置列表中,因为例如,

2
@Snowman请记住,并非所有RFC都是标准轨道;我相信大多数没有。同样,如您在链接页面的顶部一样,RFC 7230-7235已取代RFC 2616,应改为引用。顺便说一句,一个仅仅是“提议的标准”,而不是“ Internet标准”(两者都是标准轨道,但是后者被认为更加成熟并且不太可能改变)。
鲍勃

@Snowman:您的评论实际上说明了最重要的事情:标准就是人们一致同意的标准。如果您实际查看RRF页面,将会看到有数百个RFC,但实际上只有78个标准。您提到的HTTP实际上不是标准!这只是“征求意见”,即某人想讨论的想法。使HTTP成为标准的原因不是某些管理机构发布它(因为所讨论的管理机构实际上并不称其为“标准”)而是因为人们将其视为一个标准。
约尔格W¯¯米塔格

@JörgWMittag我一直将标准作为权威来源发布的文档,说明应该如何。问题在于人们可能不同意权威来源是什么,而其他人则滥用其权威(例如,微软和苹果公司就是很好的例子)。他们俩都经常忽略或试图强制执行标准。标准通常可能是大型强大公司认为不适用于它们的东西。
Reactgular 2014年

1
@Mathew “我一直认为从权威来源发布的文档应该标明某种标准。” -我同意您的评论中的这一句话,但是您目前的回答是“标准”一词是指技术本身。(例如,Java是一个标准,Java EE 7规范不是一个标准。)以前的版本说Oracle等组织或W3C是“标准”的意思。您的答案需要更新以说明您的意思。按原样写,您的答案包含错误信息。:(
doppelgreener 2014年

10

标准是指定技术行为的技术文档。(对于某些技术,可能是其他某种技术标准。)它们就是它们以及它们为什么存在:它们是文档,并且描述了该技术。

这些文件由理事机构编写,理事机构具有必要的权限和信任,使他们能够决定技术的工作方式,并在人们发布规范文件作为标准时予以照顾。理事机构可以针对不同的技术或技术的不同版本制定许多标准。理事机构也可以称为标准的维护者,作者,保管人等。

(与Mathew所描述的相反,标准既不是管理机构也不是技术本身。它是描述该技术或其特定版本的文档。)

您提到的(和其他)技术的一些示例标准:

HTML是不同语言版本通常具有不同标准的一个很好的例子。各种版本都有不同的文档,描述了应如何处理该语言的各种版本。

同时,HTTP是之间移动的标准的众多示例之一:首先是网络工作组,然后是HTTP工作组,尽管这两个组都是IETF的一部分。其他技术也在公司之间转移例如HTML(再次),其版本2 由IETF在RFC1866中编写

为什么存在标准?

它们的存在为我们提供了工作方式的保证。

HTML5规范告诉我各种浏览器将如何处理和显示我编写的HTML5标记,前提是它们正确地实现了标准(历史上一直是个问题)。C ++ 11标准将告诉我有关我编写的各种C ++ 11代码可以做什么或不可以做什么的事情。

同样,如果我正在编写浏览器,则HTML5标准将告诉我如何处理各种HTML5标记,以便人们得到他们所期望的东西。如果我正在编写C ++ 11编译器,则C ++ 11标准将告诉我为正确实现该语言并使人们的代码以预期的方式工作需要做些什么。

例如,Microsoft编写C#。您可以自己下载C#语言规范5.0。本文档保证您编写的C#代码应在实际上正确实现该规范的任何编译器中都按照规范中所描述的方式运行。

如果您执行超出规范的操作,那么您将处于未定义的领域,并且无法保证会发生或将不会发生的任何事情。)

从历史上看,标准可以追溯到诸如螺纹之类的东西,因此我可以保证,如果我订购X型螺钉,它将适合我所钻的孔,并且可以与其他X型螺钉互换。

这使我们回到“标准”一词的定义

他人判断或衡量的事物的公认或认可示例— 柯林斯词典

公认的定量或定性比较方法;一个标准。— 美国文化传承·斯特德曼医学词典

也就是说,您将自己的东西进行比较以确保您将获得期望的东西。


1
ECMA还发布了C#、. NET,CLR和C ++ / CLR的标准,然后将其快速跟踪到ISO。ISO还具有HTML的标准,ISO HTML 1.0是W3C HTML 4.01 Strict的子集。
约尔格W¯¯米塔格

4

技术标准是一种规范,要求同一标准的两个实现可以互操作或可互换。例如:USB,蓝牙,Java EE7,HTTP。

然后是“事实上的”标准:实现互操作性的约定,但没有明确的约定规范。示例:Microsoft DOC格式历来是事实上的标准,因为许多产品都可以读取和写入DOC,但是尚无规范规范(直到以后)。文档仍然通常以DOC格式分发,期望任何接收者都能够读取它,因此它已成为事实上的标准。

为了解决您的特定示例,REST没有明确的一致同意的规范,因此不是真正的标准,并且几乎不是事实上的标准,因为它在如何正确完成操作方面存在很大的歧义,并且不存在任何主流的实现解决了这些歧义。(我不反对REST。这是构建Web服务的一种很好的方法)


1

标准是标准化的约定-通过正式的规范,或者仅仅是因为通用约定已获得足够的流行以成为主导。

A de jure standard是由标准委员会发布的规范。一些标准委员会是ISO,ECMA,DIN,ANSI和W3C。

例如 de jure standardsA4纸张尺寸(ISO标准219),c#语言(ECMA-334)等。

很少使用术语“法律上的”,而“法律上的标准”通常仅称为标准。

事实标准是一种习惯,约定,产品或系统,已通过公众接受或市场力量取得了主导地位。”

(来源:维基百科 -我自己写的更好)

事实标准不一定遵循任何正式规范。

正如Gudmundur Orn在此答案中所写,Microsoft Office DOC格式是事实上的标准。它具有主导地位,通常认为人们可以阅读MS Word文档。

JSON是一个有趣的野兽,因为它最初是事实上的标准。但是,此后已正式定为ECMA-404,因此现在已成为“法律上的标准”。

但是,它也是与基于HTTP的API交换数据的主要格式(据我所知),因此也使其成为“事实上的标准”。


-4

对于合法产品责任,缺陷归类为设计,制造或文档。如果设计基于标准,则该设计无缺陷,无论该标准是否有缺陷。适用的标准是创建产品时所采用的标准。标准可以是标准协会未发布的已发布标准(ISO)或公认的行业标准。因此,TCP / IP具有欺骗性的所有固有缺陷,这是一个标准,如果您创建了像VOIP这样的新技术并且不采取任何措施保护用户免受基础技术的已知问题的影响,那么可以放心地继续这一混乱。否则我可能错了,并且这里存在文档缺陷...


3
根据定义,标准不能有缺陷。但是,正确实施标准的产品可能有缺陷,只是不符合目的。遵循标准的数量和程度如何都无所谓,如果该产品不满足其预期目的的要求,则它是有缺陷的。
Lie Ryan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.