与这本书的相识源于网上推荐, 那时候刚从.NET转到Java,而在网上查询前人经验时, 无一不提大名鼎鼎的Spring, 于是源码解读顺理成章地搬上了日程.
前言
当初让我下定决心购买它的原因是其前言, 其实购买这本书之前我已经在网上下载到了相应的电子版, 但在阅读了前言之后, 决定还是购买一本纸质的比较好. 时间间隔比较久了, 今天特地再次翻看了下其前言
- 久经考验的源码在长期的演变过程中为了解决各类问题, 必然越来越复杂.
- 久经考验的源码一般都出自大师级程序员之手, 从中我们能学到大量的实际经验. 这正是验证我们对理论理解, 以及理论应用于实际的大好时机.
- 优秀的开源框架必然会相互借鉴,最终导致彼此越来越像.所以看明白一个, 将大大加速阅读其它框架源码的速度.
- 阅读源码越多, 通过交叉对比和类比, 我们将更清晰地理解对理论(例如设计模式)的理解. 最终能灵活地将其应用到我们的实际工作中, 能人所不能!
个人感受
购买这本书以及阅读的时机距离写下这篇文章的时机, 中间相差将近两年了, 初次翻开这本书的时候, 我连如何在main中测试一个Spring的helloworld都完全不了解, 所谓的预习温习加复习也不过如此了吧.
至于阅读时的感受, 在阅读Spring源码之前, 也就是我从事.net的时候, 有过无数次阅读源码的尝试,但都是在开始之后很短时间内就放弃了. 关于这个, 看官也不用鄙视说主观能动性不行. 即使现在的我, 最近作一个WPF桌面程序, 跑去看DP源码的时候, 我了个大草, 翻出了两年前下载的源码, 用npp打开相应的文件, 全局猜加搜索,这个费劲, 我那.net三年的苦逼学习经历里,是咋挺过来的. 所以阅读Spring源码之前本人完全没有阅读源码的经历.
刚开始也是按照之前看书的节奏,再加上公司早9晚10的强度,所以基本都是拿着本书往前赶, 于是在近百页之后, 顺理成章地跟不上作者的节奏(这一点上其实作者在序章里也有提到,经过几个十几个的跳转,新手可能就晕了,不知道是从如何到这一步的),迫不得已之下只能返回头从新开始, 这次开始尝试跟着作者的动作走, 依葫芦画瓢, 开始学着做人生第一个时序图, 并因此开始学习使用PowerDesigner.
于是一个月之后做出了第一份时序图, 最终在两个月的正面硬刚之下, 某一天在回溯时序图时, 感觉似乎抓到了一点尾巴, 这个发现让我非常欣喜. 时至今日已经过去了近两年, 我没有再翻开过那份时序图, 但那种成竹在胸的畅快感现在依然清晰地记得.
建议
唯一的建议就是在阅读过程中千万跟紧作者的步伐, 他向你展示什么, 你就跟着做什么, 尤其是那时序图, 必须画!
结语
- 目前所呆的公司是一家业务为主的公司, 同时也是本人从事Java以来所呆过的公司. 业务公司的特点就是对技术不会过度看重, 所以对mybatis的问题需求大大超过了Spring. 本人是在研究Spring源码的中途加入对mybatis源码的研究的, 这次并没有购买任何相关纸质书籍, 只在网上找一些博主的文章, 有了Spring源码的底子, 最终发现阅读起来还是比较轻松的.
- 最后再从个人角度评价下这本书, 这本书适合有一定经验的开发人员阅读, 尤其是对设计模式始终不得其法的人士. 在从事.NET开发时本人就来回阅读《大话设计模式》三遍以上, 奈何总是放下就忘. 最终在Spring源码里看到各种设计模式的巧妙应用之后, 发现对于几种常用的已经可以做到信手拈来. 这也算是意外之喜吧.