前言
最近在閱讀Bob大叔的新書——《Clean Architecture》,感覺字字珠璣,值得反覆閱讀&品味。關於系統設計這塊,準備把相關的幾本書都集中翻閱下,包括《領域驅動設計》、《實現領域驅動設計》、《敏捷軟體開發:原則、樣式與實踐》、《企業應用架構樣式》等,經過這輪的學習,再結合這兩年的專案經驗,應該可以抽象出一些個人的心得。
IT行業的知識結構
忘記在哪裡看過一篇文章還是問題,是講“工作後如何持續學習”的,文中的觀點我很認同:在這個資訊爆炸的時代,需要有所取捨和選擇。如果從整體來看,整個計算機領域的知識呈現為三角形結構,從下到上依次為基礎理論和知識、中間的框架和語言,最上層的是各種宏觀的知識和概念。從個人來看,在IT行業持續學習,我們需要的的知識結構為兩頭窄中間款的雙錐形結構,如下圖所示:
這個結構可以指導我們的閱讀、學習方向,將重點精力放在基礎知識和宏觀概念上,用宏觀概念去指導自己如何選擇中間的空間和具體的技術,而基礎知識不會經常改變,搞懂之後起作用的時間也比較久。
最近的閱讀串列
基於上面這個理論,我將自己最近遇到的比較好的書 & 一直抽時間閱讀的書做了個分類。
基礎知識
-
《Effective Java》第三版,比較與第二版的不同
-
《Http2基礎教程》,學習最新的技術
-
《揭秘Java虛擬機器:JVM設計原理與實現》
宏觀知識
-
《Clean Architecture: A Craftsman’s Guide to Software Structure and Design》
-
《Designing Data-Intensive Applications》
-
《領域驅動設計》
-
《實現領域驅動設計》
-
《程式碼大全》,再次閱讀
-
《分散式系統:概念與設計》
-
《深入分散式快取》,超哥他們一眾大拿的書,徹底搞懂快取;
-
《分散式服務架構:原理、設計與實踐》,李艷鵬大哥的書,好早想讀了。
意識、思維、軟技能
-
《搞定:無壓工作的藝術》:第二次閱讀
-
《高效能人士的7個習慣》:第二次閱讀
-
《單核工作法》
-
《番茄工作法》
-
《刻意練習》
-
《Clean Coder》
閱讀經驗
關於英文閱讀,最近讀clean architecture的時候確實有點費力,不過堅持了一週後基本上就找回感覺了。我自己的經驗是:
-
比較專業的詞彙就隨時查閱;
-
比較常用且非技術的詞彙不需要每個單詞都認識,可以透過背景關係語境猜出大概意思就可以;
-
如果發現某段話無法理解,我有個比較有效的辦法:嘗試用口語將這段話表達出來,假裝你是在給一個夥伴在講這段話的意思。
希望今年能夠做更多的精讀和總結,利用XMIND做幾個領域的知識架構,併在實踐中嘗試實踐下書中的觀點。