萬丈高樓平地起,撥開技術神秘的面紗
- 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 ,分散式鎖 等都是在不同業務場景下,產生了各種數據問題,然後出現了很多所謂”秘技”, 來處理對應的問題