作者:历史文章 / 来源:白话区块链
白话区块链,从入门到精通,看我就够了!
第一章节 区块链术语与技术基础
第一章节分为三个小节:
-
从分层与解构的角度了解区块链软件系统(本节内容)
-
区块链背后的伟大愿景
-
认识区块链的潜力
在第一章节中,我们会介绍一般的软件系统的架构以及这些架构与区块链的联系。对于第一次接触区块链世界的小白而言,我们从头至尾会采用标准化的描述方式避免混淆,并会在本章节的最后一个小节让你清楚的认识到,为什么区块链将会改变整个世界(事实上已经改变了很多)。
1.1 从分层与解构的角度了解软件系统
今天是我们第一次进入区块链的世界,在深入之前,我们需要备足功课先对这个世界的软件系统做一个深入的了解。我们会带着大家学习如何对软件系统进行分层与解构,了解“完整性”对于软件系统的重要性,目的就是为了了解区块链是什么。
1.1.1 功能与实现,功能性与非功能性
你正在使用的微信是全球使用量最大的即时通信软件,相信你对微信的主要功能都有了解,有一些用户还会自称为微信骨灰级玩家。
但如果大白问你,是否知道微信背后的各类即时通信协议,或者撤回消息功能如何实现,建群功能如何实现的话,很少有人能够清楚的回答。作为微信用户,我们也不需要知道这些。
主观上来说,我们理所当然的将微信分成了两部分:我们需要知道的功能,以及我们不需要知道的实现。
其实对于所有的现代技术类产品而言,我们作为一个使用者都会自然而然的作出这样的划分,不同的人会对不同的技术类产品有不同的理解,而这些理解都是基于对产品的分层以及结构。
在我们的课程中,我们会对系统软件作出如下划分:
-
应用(层) vs. 实现(层)
-
功能性 vs. 非功能性
应用 vs. 实现
应用(层):一切满足用户需求的,比如发送消息给好友
实现(层):一切实现应用的,比如使用TCP长链接服务
功能性(描述)vs.非功能性(描述)
功能性(描述):一个软件系统能够做什么,比如拍摄照片
非功能性(描述):做的怎么样,比如拍摄照片的质量很好
我们通过一个图表来讲解对手机的分层与解构:
一般情况下,我们都会最关注应用层的功能性,并且理所当然的认为实现层的非功能性是软件系统必须要保证和具备的。
1.1.2 完整性
在所有非功能性的实现层中,最需要满足和确保的,就是软件系统的完整性:
-
数据完整性:软件系统中的数据要完整,正确并且无冲突。
-
行为完整性:软件系统的设计运行,并且不存在逻辑错误。
-
安全性:软件系统可以只对授权认证用户提供有限的数据访问与功能使用。
很重要的一点是,几乎我们每个人都认为任何一个软件系统都应该具有如上所述的完整性,而忽略了在软件系统背后,软件工程师付出了巨大的时间和投入,并且只有在软件系统出现各类问题的时候,才会意识到完整性的重要性。
为什么强调完整性?
从计算机诞生之初到现在,无数的天才投入到这个领域中,就为了在实现层确保上层应用能够具备高度的完整性,不影响用户的体验和业务的开展。
而区块链,你们接下来会认识到,将会如何从完整性这个角度来改变整个计算机领域,乃至这个世界。
作者 | 张初阳 & peterchen14
编辑 | WangMe
下期预告
下周五:大白课程 | 25步教您玩转区块链 第1步(中)
——区块链背后的伟大愿景
END