萬丈高樓平地起,撥開技術神祕的面紗

CodeL發表於2021-12-10

僅記錄近期的一些思考:萬丈高樓平地起,搞清楚底層邏輯,撥開技術神祕的外衣,很多東西迎刃而解。

 

一、資料思維

      1. 所有的操作,都是圍繞資料, 一個.java檔案,一個.class檔案, 每一個字母,每一次表單提交,都是資料

      2. 這些資料可以以不同的形態存在於不同的介質中,可以在磁碟中,可以在記憶體中,可以在CPU中 ,只是存在的形態不一樣

      3. 程式程式碼的各種處理,本質上是對資料的計算和移動,全都依賴於計算機硬體最基本的執行原理

二、資料移動思維

      1. 網際網路各種分層架構,分散式架構體系的本質是資料的移動,在不管使用了多少種框框架架的一次請求/響應中, 資料在 客戶端,到閘道器,到服務層,到MQ,到Redis,到資料庫.. 等等等等 各個中介軟體中來回移動

      2. 各種"奇淫技巧", 都是對資料的計算和移動,並依賴於計算機相關硬體

三、服務業務:歸根揭底技術是服務業務的,這裡的"業務"應該是抽象出來的某類事務,而不是指人。

 

這幾個思維下,來理解技術,比如:

1. 類載入?從計算機的組成原理來說, 資料必須要"移動"到主存,然後才能移動到CPU中進行各種計算,然後通過網路傳輸進行資料的各種移動 ,所以需要將.java檔案編譯為.class檔案 ,載入到記憶體中

2. JVM記憶體模型?從資料思維的角度,我們編寫的程式碼,裡面有各種東西,比如有類,有方法,有列舉,類中還有各種屬性,變數,執行時的各種資料, 這就要求 jvm需要對記憶體進行分類處理,在載入的過程中,分門別類

3. 什麼voliate,synchronized,CAS,  AQS ,分散式鎖  等都是在不同業務場景下,產生了各種資料問題,然後出現了很多所謂"祕技", 來處理對應的問題 

 

相關文章