作者:歷史文章 / 來源:白話區塊鏈
白話區塊鏈,從入門到精通,看我就夠了!
第一章節 區塊鏈術語與技術基礎
第一章節分為三個小節:
-
從分層與解構的角度了解區塊鏈軟件系統(本節內容)
-
區塊鏈背后的偉大愿景
-
認識區塊鏈的潛力
在第一章節中,我們會介紹一般的軟件系統的架構以及這些架構與區塊鏈的聯系。對于第一次接觸區塊鏈世界的小白而言,我們從頭至尾會采用標準化的描述方式避免混淆,并會在本章節的最后一個小節讓你清楚的認識到,為什么區塊鏈將會改變整個世界(事實上已經改變了很多)。
1.1 從分層與解構的角度了解軟件系統
今天是我們第一次進入區塊鏈的世界,在深入之前,我們需要備足功課先對這個世界的軟件系統做一個深入的了解。我們會帶著大家學習如何對軟件系統進行分層與解構,了解“完整性”對于軟件系統的重要性,目的就是為了了解區塊鏈是什么。
1.1.1 功能與實現,功能性與非功能性
你正在使用的微信是全球使用量最大的即時通信軟件,相信你對微信的主要功能都有了解,有一些用戶還會自稱為微信骨灰級玩家。
但如果大白問你,是否知道微信背后的各類即時通信協議,或者撤回消息功能如何實現,建群功能如何實現的話,很少有人能夠清楚的回答。作為微信用戶,我們也不需要知道這些。
主觀上來說,我們理所當然的將微信分成了兩部分:我們需要知道的功能,以及我們不需要知道的實現。
其實對于所有的現代技術類產品而言,我們作為一個使用者都會自然而然的作出這樣的劃分,不同的人會對不同的技術類產品有不同的理解,而這些理解都是基于對產品的分層以及結構。
在我們的課程中,我們會對系統軟件作出如下劃分:
-
應用(層) vs. 實現(層)
-
功能性 vs. 非功能性
應用 vs. 實現
應用(層):一切滿足用戶需求的,比如發送消息給好友
實現(層):一切實現應用的,比如使用TCP長鏈接服務
功能性(描述)vs.非功能性(描述)
功能性(描述):一個軟件系統能夠做什么,比如拍攝照片
非功能性(描述):做的怎么樣,比如拍攝照片的質量很好
我們通過一個圖表來講解對手機的分層與解構:

一般情況下,我們都會最關注應用層的功能性,并且理所當然的認為實現層的非功能性是軟件系統必須要保證和具備的。
1.1.2 完整性
在所有非功能性的實現層中,最需要滿足和確保的,就是軟件系統的完整性:
-
數據完整性:軟件系統中的數據要完整,正確并且無沖突。
-
行為完整性:軟件系統的設計運行,并且不存在邏輯錯誤。
-
安全性:軟件系統可以只對授權認證用戶提供有限的數據訪問與功能使用。
很重要的一點是,幾乎我們每個人都認為任何一個軟件系統都應該具有如上所述的完整性,而忽略了在軟件系統背后,軟件工程師付出了巨大的時間和投入,并且只有在軟件系統出現各類問題的時候,才會意識到完整性的重要性。
為什么強調完整性?
從計算機誕生之初到現在,無數的天才投入到這個領域中,就為了在實現層確保上層應用能夠具備高度的完整性,不影響用戶的體驗和業務的開展。
而區塊鏈,你們接下來會認識到,將會如何從完整性這個角度來改變整個計算機領域,乃至這個世界。
作者 | 張初陽 & peterchen14
編輯 | WangMe

下期預告
下周五:大白課程 | 25步教您玩轉區塊鏈 第1步(中)
——區塊鏈背后的偉大愿景
END