把MyBatis當專案一樣,講透原始碼的技術書籍!

小傅哥發表於2023-02-28

作者:小傅哥
部落格:https://bugstack.cn

沉澱、分享、成長,讓自己和他人都能有所收穫!

講屁話沒有用,想學好程式設計突破階段瓶頸,為自己的職業生涯續期。就要把時間放在有價值的硬核專案上。因為硬核專案 + 時間投入 = 價值回報

所以一股技術清流的小傅哥,為你編寫了一本新書 《手寫MyBatis:漸進式原始碼實踐》。全書21章320頁耗時2年出版。此書以實現MyBatis專案為目標,進行逐個功能模組漸進式拆解實現。就像手把手帶著你敲專案一樣,完成MyBatis的原始碼學習。透過這樣的學習方式帶你領略原始碼級設計思維突破滿腦子都是MVC架構的技術瓶頸

所以千萬別覺得開發專案只有 MVCDDD 架構,否則為什麼像 MyBatis 這樣的原始碼不用 MVC架構寫呢?—— 相信我,跟著小傅哥學習,會讓你的程式設計思維提升到更高的水平。

一、為什麼學原始碼?

代理反射池化快取,MyBatis 給我們的不只是一個 ORM 框架,還包括了它經過深思熟慮所做的分層設計以及對應產生的,行之有效的解決方案。MyBatis 的存在不需要讓你再刀耕火種般建立 JDBC,也不需要像使用 Hibernate 那麼厚重到還需要增加學習 HQL 語句。同時 MyBatis 還支援透過外掛機制擴充套件;監控、加密、路由等功能。因而如此簡單且高效的 MyBatis ORM 框架,備受網際網路大廠青睞,也是每一個 Java 程式設計師必須掌握的技術。

除了運用以外,MyBatis 框架也是眾多碼農,最能最先接觸到的一個優質的原始碼級別複雜專案。此原始碼為了實現如此長週期軟體迭代和維護,運用了分治和抽象進行模組設計,使用了數10種設計模型進行程式碼開發。這哪僅僅是一個 ORM 框架,這簡直是學習設計模式的最佳原始碼級實踐資料

但就是這樣已經很牛逼的學習資料,天天使用的技術框架。而且明知道學習它能有巨大的收穫,但卻是無從下手。因為很大一部分研發夥伴,在沒有經歷過中介軟體的設計和開發,滿腦子都是 MVC 架構,也沒用過幾個設計模式的情況下,很難讀懂原始碼級框架的設計。

為此已經在 MyBatis 原始碼學習中得到受益的小傅哥,希望把應對這樣的硬核專案學習的方式方法,分享給從事程式設計開發的技術同好。透過我對 MyBatis 框架的理解和多年中介軟體的開發的經驗,把 MyBatis 框架拆解為一個以需求驅動分支開發漸進實現的方式,展示給讀者。讓即使是程式設計小白,也能沿著這條路走到終點獲得巨大收穫。

img

二、學原始碼的必要!

從此你的簡歷就是可以寫一段《手寫MyBatis》專案學習:”我就是掌握了複雜原始碼的架構設計能力、我就是吸收了複雜場景分治和抽象的思想、我就是學會了複雜結構中設計模式的運用“。聊 MyBatis 聊的就是你手寫的程式碼,有什麼不會的,來你問吧。以後路,你可以橫著走! 編寫到簡歷上,給簡歷加分;

  1. 體現在專業技能上,例如;深入學習 MyBaits 核心流程模組,包括;會話、反射、代理、事務、外掛等流程,熟練掌握 ORM 框架的設計思想、實現方式和應用價值。並能按需結合 MyBatis 的外掛機制,開發屬於企業自己所需的功能,包括;資料分頁、資料庫表路由、監控日誌、資料安全等方面。
  2. 體現在專案經驗上,例如;對校招和實習比較有用 把 MyBatis 當一個學習專案來描述,這是你在離校前,最可能接觸到的一個完整的、成型的、知名的,有企業使用的框架。你就按照自己學習並開發了這樣一個框架為目標來寫專案,並描述出這個專案,你用了什麼技術棧,解決了什麼問題,學習到了哪些知識。
  3. 體現在專案應用上,例如; 關於MyBatis 的專案,一般都是外掛類開發,比如各類的MyBatis 外掛,都是基於框架的深入整合類技術解決方案,體現在簡歷上,非常抓眼球。一看你就是有深度和自研能力的研發人員。—— 一般不讓你造輪子,但需要你有造輪子的能力,這樣企業中一些軟體可以被你進行最佳化和修改。
  4. 體現在解決問題是上,例如; 在你的自己的業務專案中,深入一些關於解決了原專案使用 MyBatis 時所遇到的問題,因為你學習過原始碼,所以非常清晰這樣的流程,因此解決了一個問題。包括;事務、查詢次數、批查詢、外掛能監聽到的四個類(ParameterHandler、ResultSetHandler、StatementHandler、Executor )你給了更好的選擇。

三、下手這本新書!

img

本書共 22 章:

  • 第 01 ~ 04 章:拆解和實現 ORM 框架的基本功能,構建會話的基本呼叫流程,初解析 XML 檔案,以及串聯 DefaultSqlSession 結合解析配置項獲取展示資訊。
  • 第 05 ~ 08 章:建立和使用資料來源,池化技術的實現,完成執行 SQL 語句的操作,同時引入反射工具包,實現對屬性資訊的獲取和設定。
  • 第 09 ~ 12 章:以實現 ORM 框架的基本功能為目的,完善靜態 SQL 的標準化解析、引數設定和結果封裝,使整個 ORM 框架可以處理基本的增、刪、改、查操作。
  • 第 13 ~ 19 章:以完善 ORM 框架的核心功能邏輯為目的,實現註解 SQL 解析、 ResultMap 引數、事務處理自增索引、動態 SQL 解析、外掛、一級快取和二級緩 存等功能。
  • 第 20 ~ 22 章:利用 ORM 框架整合 Spring 和 SpringBoot,並介紹整個核心流程, 同時總結 ORM 框架開發中涉及的 10 種設計模式。

本書透過漸進式的開發方式來實現整個 MyBatis 核心原始碼的開發。每章開頭會先列出難度和重點,再介紹要處理的問題、具體設計和實現程式碼,最後給出測試驗證和總結。—— 我希望教會你的不只是MyBatis原始碼,還有手撕原始碼的本事!

書籍樣章截圖
img
img

四、原始碼全貌地圖!

這是小傅哥在編寫《手寫MyBatis:漸進式原始碼實踐》圖書時,繪製的原始碼全貌地圖。並結合地圖的脈絡,帶著大家逐步實現這裡面的功能模組,分章節細化各個模組的實現流程,最終讓讀者實現出一個豐富、全面、細緻的 ORM 框架。

img


感謝圖書編輯宋亞東楊中興

感謝大佬推薦思否CTO-祁寧(@Joyqi)中國科學院大學研究生導師-劉俊明Apipost 創始人-穆紅偉京東垂直業務負責人-孫浩京東授信認證業務技術負責人-郭澤淵GitHub開源專案JavaGuide作者-G哥《深入理解高併發程式設計:核心原理與案例實戰》圖書作者-冰河

相關文章