會計學包含的兩種程式設計思想

下班路上坐地鐵的時候看了一本會計學的書,目前看了50多頁。過程中,發現會計學和程式設計在思想上有驚人的相似之處。今天舉兩個例子做說明。

 

CR設計和賬簿

 

CR設計介紹

 

CR設計就是只有創建和查詢,沒有更新和刪除。咱們後台人工操作,設計數據變更都需要有歷史記錄。歷史記錄和數據變更的最終結果區別在於歷史記錄有數據不變性,可以進行事件溯源。這個方法在《整潔架構》中有專門的介紹。現在非常流行的時序資料庫本質也是這一思想的具體實現。

 

賬簿介紹

 

這個思想的產生要追溯到石器時代。石器時代就有結繩記事。那些繩子就是原始人的賬簿。登記方法就是增加的時候在上面接個大疙瘩,減少的時候解開大疙瘩。隨後,繩子演變成了蘇美爾人的泥巴或者殷商人的龜甲,估計就是在上面畫道道,畫一些線條表示增加,另一些線條表示減少。估計那個時候中國人還不知道「+」和「-」這兩個符號,只好把增加和減少分開寫,中國人的習慣是上面寫增加、下面寫減少(天收地付)。

 

CR設計應用

 

在現在的工程架構中,能運用軟體的就盡量不用硬體。因為它們缺少日誌記錄,如果發生了異常情況難以排查。舉個例子,二層防火牆因為不能做負載均衡,都是主備類部署。一旦一台出現故障必須立即停掉主,啟用備。發生比特位跳變等問題,沒有現場,也沒有日誌,重啟這台機器也不會再次故障,難以確認原因。不能確認原因怎麼能確保下次不會再出現問題呢?強烈建議將出現故障不能給出原因的處理列到購買合約里。

 

下面是一個常用的一種主備模式叫A/S模式的原理圖。扯遠了。

 

 

 

校驗設計和複式記賬法

 

校驗設計介紹

 

咱們平時做通訊,收到的數據包都有校驗和。金融支付領域都有對賬。畢竟完整性、準確性和一致性是數據品質最重要的三個標準。

 

複式記賬法介紹

 

這個思想也深得複式記賬法的精髓。複式記賬法是指對發生的每一項經濟業務,都要以相等的金額,在相互聯繫的兩個或兩個以上的賬戶中進行記錄的記賬方法。

 

這種方法的優點是對於發生的每一項經濟業務,都要在兩個或兩個以上的賬戶中相互聯繫地進行分類記錄。這樣,通過賬戶記錄不僅可以全面、清晰地反映經濟業務的來龍去脈,還能全面、系統地反映經濟活動的過程和結果。由於每一項經濟業務發生後,都是以相等的金額在有關的賬戶中登記,因而可以對記錄的結果進行試算平衡,以檢查賬戶記錄是否正確。

 

校驗設計應用

咱們網上取款的時候有雙因素校驗,不但登錄要輸入密碼,取款還要發一個手機驗證碼確認是本人。咱們的程式碼要上線要經過靜態程式碼檢查、程式碼人工審查、集成測試檢查等環節才能合併到主分支。咱們從一個系統定時同步數據時一般會實時獲取增量數據,同時配合定時任務拉取全量做比對。

 

總結

 

對於一門技術,有些人學的很快,很可能是他有意識的或者潛意識的進行抽象類比,找出共性和個性,掌握精髓。比如工作中、技術中、各個領域中都在用各種形式的「分類」:這本會計書上說會計就是分類的藝術。常用的思維導圖不就是一個分類工具么?數據結構化不就是把數據分類嗎?由此還產生了搜索引擎。

 

思考--你的工作!(出自《程式設計師修鍊之道》)