在我们之前的文章, 里面提到了想要拓展二维码的功能, 就要首先对二维码这事物进行抽象. 那么今天这篇文章里面让我们来详细探讨一下, 以二维码为例, 如何对一个事物进行抽象从而分析其特征.
光学承载体
首先我们从日常生活中遇到的二维码出发, 在日常生活中二维码主要包含了链接公众号以及其他的一些信息. 从内容当中我们可以看出二维码在日常生活中充当的角色是以矩阵存取信息的光学承载体
.
生活中还有哪些常见的信息存在体呢? 很简单, 语言文字就是其中的一种 – 当我们把一句话, 一个想法, 一个观点用文字记录在纸上的时候, 纸上的这些文字就成了我们信息的承载体.
由于信息这一概念本身是抽象, 因此它的存在需要有一个具象的实体来承载. 荷载load
是信息, 承载体/媒介media
则把load调制modulate
后具象的表达出来.
说是光学承载体的原因在于他和文字同样是存在于印刷品上的. 如果一个人失明了, 他就无法直接读出纸上的文字, 而是要通过其他的方法(盲文 - 触觉/请他人朗读 - 声信号). 当然, 采用光学作为存取的方法有很多的好处, 比方说:
- 它的制作成本低廉. 人类的印刷技术已经达到了一个相对发达的水平, 印刷光学材料随处可觅, 已经非常的廉价.
- 其灵活性允许了动态二维码的出现. 这一点将在稍后讨论.
人机的可读写性
广义上的二维码还涵盖了很多, 比方说选择题的涂卡卷就是一种稀疏的二维码, 早期计算机编程用的程序卡也是一种二维码. 那么语言文字和二维码之间有什么样的不同呢?语言文字是可读的, 是人类可读写的. 当你看到一句话的时候, 你可以立刻理解其中的含义, 但是二维码并非人类可读. 难道你有自动扫码的功能吗?相比之下, 二维码是机器可读写的 – 机器可以轻松识别或生成二维码.
到目前为止, 我们已经把二维码从一个矩阵抽象到了信息的承载体, 进而在信息媒介的基础上分析除了二维码的一大特征 – 机器可读. 现在让我们继续分析.
动态静态 主动被动
在支付宝应用动态码之前, 所有的二维码都是印刷的印刷品质上的. 也就是静态的, 一旦被确定后里面的内容无法改变. 而作为机器, 虽然说识别出来的信息是一定的, 但是我们的处理方式上却可以动态改变, 因此二维码在印刷端, 也就是作为一种媒介的时候, 是静态的被动的. 但是二维码在解析的时候, 是作为一种动态的积极的存在.
由于解析端是动态的积极的, 因此我们在这一个方面上做出了很多的应用. 比方说二维码里面包含的是一个链接时候, 我们就会默认用浏览器加载出这个网页. 如果这个URL指向的是另外的协议scheme
, 比方说wxp://
, 则会跳转到微信里进行进一步的操作, 因此整个解析的过程是动态的积极的.
这里需要注意一点并不是每个二维码里面都必须包含有一个URL, 也不是所有的二维码软件在扫描到URL的时候都会默认的打开浏览器去加载这个网页, 毕竟二维码含有的只是信息. 而至于对这一段信息如何进行处理?这是后话. 有些软件会选择打开浏览器, 而有些软件直接显示出这一个链接而不做跳转.
这一特性使得二维码, 或者说较之更为传统的条码在工业应用上获得了巨大的成功. 在大规模工业生产mass production
里面采用流水号来管理, 这种想法很早以前就已经被提出来了. 但是真正被大规模的应用时间还是在条码的发明以后, 因为当一个产品被制造出来, 并分配到流水号的时候, 这个ID并没有去被改变的需要, 因此二维码作为一种静态的媒介在这一个领域里发挥了重大的作用. 我们现在的世界已经无法离开条码了: 你可以想象物流公司一个一个手抄快递单号进行订单的追踪吗?
动态二维码的诞生改变了这一主动和被动的关系. 每个二维码仍然是静态的, 但是由于电子屏幕可以刷新, 二维码可以被改变. 这时候二维码已经不再单单是一种信息的承载了. 事实上, 这个时候二维码已经成为了一种接口Interface
, 一种连接机器和机器的接口, 一台机器产生二维码, 由另一台机器读取.(你手绘个二维码?)
结语
二维码有着广泛的应用. 但是如果想要发掘二维码的更多有趣应用, 对其特征进行抽象和分析是必要的. 这篇文章对二维码的特征分析十分粗略, 但是如果诸位读者能从中学到利用抽象协助分析的技巧, 我写本文的目的也就达到了.