炸锅了!国内首本通用源码阅读指定书籍:MyBatis 源码详解
通过真实开源项目讲解源码阅读的流程和方法 总结丰富的软件架构与开发经验

源码阅读的好处

源码阅读困难

本书将源码阅读划分环节

详细介绍了MyBatis相关的基础知识

透彻分析了MyBatis的实现原理和架构细节

需要获取的小伙伴见文末
前言
有一段时间,我觉着我非要阅读开源项目的源码不可。
那时,我在公司负责设计和开发了很多系统。如果连大学时带领大家开发和维护学校网站也算上的话,那我进行软件开发已经整整十年了。在这十年里,我对自己设计和开发的系统都很有信心,但有一个疑惑一直萦绕在我心头:我不知道,我的架构和世界最优良架构之间的差距到底有多大。
阅读开源项目的源码能给我答案。
许多优秀的开源项目历经数千名开发者的数万次提交,被数亿用户使用。这些项目从可扩展性、可靠性和可用性等各个角度考量,都是十分优良的。通过阅读这些项目的源码,我能找到自己在软件设计和开发上的不足。
于是我开始了我的源码阅读计划。
在阅读源码的过程中,我看过不少资料。但很多资料对源码中简单的部分讲解得细致入微,而对复杂的部分则避而不谈或含糊其辞。在阅读源码的过程中,我也走过不少弯路,经常在一个难点中挣扎很久不能前进。
当然,阅读源码也让我收获颇丰。它不仅让我知道了自己的设计与优良设计之间的差距,还让我学到了许多架构技巧和编程知识。在源码阅读的过程中,我也总结出了许多经验和方法。因此,我决定写这本书,将经验和方法分享出来,指引许多和我一样前行在源码阅读道路上的人。
源码阅读首先要选定相应的源码作为材料。从项目的成熟度、涉及面、应用广度、项目规模等多方面考虑,本书最终选中 MyBatis源码。因此,本书将以阅读MyBatis源码为例,介绍源码阅读的经验和方法。
本书分为五篇,各篇主要内容如下:
第1篇背景介绍
第1章源码阅读

第2章MyBatis概述

第3章MyBatis运行初探

第4章MyBatis源码结构概述

第2篇基础功能包源码阅读
第5章exceptions包

第6章reflection包

第7章annotations包与lang包

第8章type包

第9章io包

第10章 logging包

第11章parsing包

第3篇配置解析包源码阅读
第12章配置解析概述

第13章binding包

第14章builder包

第15章mapping包

第16章scripting包

第17章datasource包

第4篇核心操作包源码阅读
第18章 jdbc包

第19章cache包

第20章transaction包

第21章cursor包

第22章executor包

第23章session包

第24章plugin包

第5篇总结与展望
第25章源码阅读总结

第26章优秀开源项目推荐

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享Java进阶面试宝典、Java核心知识、架构书籍电子版

版权声明: 本文为 InfoQ 作者【周老师】的原创文章。
原文链接:【http://xie.infoq.cn/article/0bacd189222457109c7e95d07】。文章转载请联系作者。
评论