技术标准的魅力

低并发编程

共 2125字,需浏览 5分钟

 ·

2021-10-16 03:54

做程序员的,很难不与各种标准打交道,比如想成为网络方面的专家,那就不得不把各种 RFC 标准吃透,因为绝大多数网络标准都是由 RFC 文档定义的,比如 HTTP 协议,TLS 协议等。

 
而大部分程序员通常很少看原汁原文的标准文档,因为标准往往枯燥乏味,信息量极大,动辄一个简简单单的概念就要好几十页 PDF 论述。
 
但有的时候了解一个问题,寻找标准文档往往是效率最高且最准确的选择,比如之前写 HTTPS 抓包解析各个字段的含义,几乎就是照着 TLS 的标准文档一点点翻译就成文了,网上几乎找不到任何一篇能与之媲美的。
 
同时,了解这些标准背后的组织,还是非常有借鉴意义的,你会发现一个能被全世界功能认可的标准,其生产流程是多么严谨,标准中的任何一个词的用法,都会影响全世界,所以这种变态的严谨性,已经成为了一种美感。
 
比如 ISO 标准,发布了之后就不能修改,如果想要修改只能将原来的标准标记为撤回状态,重新写一篇新的,而每个 ISO 标准从一开始的提出到最后被全世界认可,都需要将近三年的时间。
 
下面我们就简单看一下这个国际标准化组织 ISO
 
国际标准化组织本身就是一个具体的组织机构,英文为
International Organization for Standardization
简称 ISO,是一个独立的非政府国际组织,拥有 166 个国家标准机构的成员,共同分享知识,以及制定国际化的标准,总部在瑞士的日内瓦。
 
分享知识就是顺带手的工作了,发布发布文和研究成果之类的,最主要的工作还是制定国际标准。
 
登陆其官网看看:www.iso.org
 
 
在上方 Standards 标签上可以搜索我们想看的标准文件。我们试着搜搜,计算机网络教材中常提到的 OSI 七层模型,包括物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,就是 ISO 组织发布的一个标准。PS:哈哈,OSI 是 ISO 发布的标准,这俩词恰好有点绕,你可别弄混了。
 
OSI 模型的标准号是 7498,所以我们直接搜这个号。
 
 
可以看到,完整的 OSI 模型标准分为四个部分,我们打开第一部分(The Basic Model)并下载下来,就可以看到我们熟悉的七层模型描述,当然整个文件的信息量是非常大的。
 
 
回过头来看,每个文件的后面还有两个数字,拿第一个文件来说,后面有这样两个数字:

STAGE:90.93
ICS:35.100.01
 
其中 STAGE 表示这个标准处于哪个阶段,因为总不可能一上来就发布成为全球认准的标准,得有一个不断审核修订的过程,而这个过程是贼他喵的麻烦,需要经历好多个阶段。
 
 
可以看到一共有这么多个阶段,而当前这个 OSI 模型处于 90.93 阶段,这个表示
International Standard Confirmed
就是已经被确认为国际认可的标准了。
 
我们再看看,一开始的时候处于 00.00 阶段,就是刚刚收到一份标准提议,之后慢慢经过投票、审核、出版,还有可能有撤回阶段,整个过程非常漫长,一个标准从一开始提出到最终国际认可,可能需要三年的时间。

认可后的标准,就不可以再修改了,如果想要修改,需要把原有的改为撤回状态,再重新出一个新的标准。从生命周期这一部分说明可以看到,可以看到 OSI 模型就经历了一次这样的修改


而再看修改之前的这个 1984 年发布的标准,其 STAGE 已经是 95.99 了,也就是
Withdrawal of International Standard
表示已经被撤回。

除了 STAGE 阶段外,还有一行数字

ICS:35.100.01

这个 ICS 表示分类,其英文全称是
International Classification for Standards
这个分类是一级一级的,最前面的 35 表示信息技术大类。
 
 
由此也可以看出 ISO 并不仅仅是计算机相关的,还包括环境、自然科学、农业、化工等等共 97 个大分类。
 
而 35 这个信息技术大分类下,还分为很多小类,其中 35.100 就表示 OSI 模型了。
 
 
感兴趣的话还可以看看其他分类,比如我们说字符集的时候经常念叨的 ISO-8859-1,其实就是在 35.040.10 这个字符集分类下的一个标准。
 
 
由此我们也可以学学人家的做法,首先通过 STAGE 这组状态机表示一个标准所处的状态,这可比我们平时开发时“提出需求-需求评审-开发-测试-上线-验收”这种简单的状态机要更复杂。然后再通过 ICS 这样的三级分类,涵盖了各个领域的各种细分标准。此外,每个标准的撰写都有严格的格式要求,具体可以去官网下载。
 
我想如果平时开发时的各种文档有这样的规范管理,那开发之间可以减少很多由于文档不规范导致的效率低下了。

如果有读者参与过制定或投票类似的标准文档,可一定要联系我,我也好奇更多有趣的知识呢。
浏览 32
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报