原创 紮實的基礎知識+正確的方法是快速閱讀源碼的關鍵

上一篇我們快速的複習了閱讀源碼的步驟,同時對比了JUnit3和JUnit4之間的差異。 本篇是《如何高效閱讀源碼》專題的第十四篇,也是最後一篇,對專題內容做一次總結。 首先,專題第一篇文章描述了幾種不正確的閱讀源碼的方式: 在不瞭解

原创 同一項目、不同版本之間源碼的閱讀

上一篇我們講了如何通過關聯延伸閱讀梳理項目之間的關係。 本篇是《如何高效閱讀源碼》專題的第十三篇,來聊一聊如何閱讀項目的不同版本。 閱讀不同的版本源碼的目的有兩個: 一個比較火的開源項目,往往經歷了較長時間的開發週期,較多的版本迭代

原创 Spring是如何整合JUnit的?JUnit源碼關聯延伸閱讀

上一篇我們回答了之前在梳理流程時遇到的一些問題,並思考了爲什麼要這麼設計。 本篇是《如何高效閱讀源碼》專題的第十二篇,通過項目之間的聯繫來進行擴展閱讀,通過項目與項目之間的聯繫更好的理解項目。 本節內容: TestRunner的執行

原创 提出問題,解答問題!這纔是理解代碼設計的正確方法

上一篇我們通過調用關係,梳理出了TestRunner調用核心模型的流程。 本篇是《如何高效閱讀源碼》專題的第十一篇,我們來回答流程梳理中遇到的一些問題,思考爲什麼要這麼設計。 上一篇我們提出了幾個問題: 爲什麼使用Statement

原创 模型的威力:基於模型,快速梳理源碼

上一篇我們將梳理的核心流程整合進了概念模型,得到了一個相對詳細的流程。本篇是《如何高效閱讀源碼》專題的第十篇,我們來通過閱讀源碼來驗證上面得到的流程圖是否正確,同時進一步細化,從核心流程向外圍流程進行梳理,構建一個更完整的流程。 本節主

原创 通過對抽象模型和概念模型的整合,細化項目整體流程

上一篇我們通過抽象模型梳理了核心流程。 本篇是《如何高效閱讀源碼》專題的第九篇,我們來通過繪圖加深核心流程的理解,同時將抽象模型和核心流程與概念模型進行整合,以得到一個更具象化的流程。 本篇主要內容: 爲什麼要繪圖? 繪製核心流

原创 無需debug,通過抽象模型快速梳理代碼核心流程

上一篇我們通過DSM來確定了核心對象並構建了抽象模型。本篇是《如何高效閱讀源碼》專題的第八篇,我們來基於抽象模型來梳理核心流程。 本節主要內容: 如何通過抽象模型來梳理核心流程 從類名和註釋瞭解類的作用 上一篇的最後,我們得到了

原创 高效閱讀源碼的關鍵:構建核心抽象模型

上一篇我們通過模塊間的依賴關係確定了核心模塊。 本篇是《如何高效閱讀源碼》專題的第七篇,我們來確定核心模塊中的抽象模型 本節內容如下: 什麼是抽象模型? 爲什麼要構建抽象模型? 如何構建抽象模型? 通過JUnit4演示如

原创 聚焦核心模塊,少閱讀80%的「無用」代碼

前面我們構建了項目的黑盒模型和概念模型。本篇是《如何高效閱讀源碼》專題的第六篇,我們正式進入到代碼,找出項目中的核心模塊。 本節內容如下: 爲什麼要找核心模塊? 定位核心模塊的方法 具體定位流程 爲什麼要找核心模塊? 相

原创 如何通過閱讀文檔,構建概念模型?

上一篇,我們通過demo,構建了黑盒模型,大致瞭解了項目與demo的關係,以及一個初步流程。本篇是《如何高效閱讀源碼》專題的第五篇,通過閱讀文檔,來了解項目的概念模型,以及驗證和完善黑盒模型。 本節內容如下: 爲什麼要閱讀文檔

原创 源碼閱讀四步走,這纔是閱讀源碼的正確姿勢

在《15個小技巧,助你源碼閱讀事半功倍》一文中,給出了15個提高源碼閱讀效率的小技巧。本文是《如何高效閱讀源碼》專題的第三篇,來聊一聊「閱讀源碼的具體步驟」! 在本專題第一篇,我們已經知道了不正確的閱讀源碼的方法,那正確的閱讀源碼的方式

原创 15個小技巧,助你源碼閱讀事半功倍

在《想讀項目源碼?可爲什麼總是讀不下去?》一文中,我們聊了閱讀源碼的錯誤方法。 本篇是《如何高效閱讀源碼》專題的第二篇,來聊一聊「能提高源碼閱讀效率的15個小技巧」! 15個小技巧包括: 瞭解作者開發項目的目的 先熟練的使用項目

原创 想讀項目源碼?可爲什麼總是讀不下去?

本篇是專題《如何高效閱讀源碼》的第一篇,來聊一聊閱讀源碼的錯誤姿勢!以及本專題的內容及章節。 似曾相識的場景 你聽說Spring已經有一段時間了,它已經是Java企業級開發事實上的標準。你覺得自己應該讀一讀Spring的源碼,深入理解一

原创 面向架構編程

在領域設計:聚合與聚合根一文中,提到了兩個導致設計與代碼脫節的情況: 代碼未反映出軟件架構:架構圖說的是一回事,代碼說的卻是另外一回事 設計的表現力不足:設計沒有體現出某些約束,需要閱讀代碼實現才能清楚具體的內容 領域設計:聚合與聚合根

原创 領域設計:領域事件

本文探討如下問題: 什麼是領域事件 領域事件的用途 何時使用領域事件 基於Spring事件的實現 什麼是領域事件 在EDA風格與Reactor模式一文中,我們從觀察者模式聊到了EDA架構風格,然後聊了Reactor架構模式,最後以red