前两篇分别描述了"为什么要研究源码"和"研究源码的痛苦", 这里接下来看最后一篇"避害趋利", 意指为什么那个电子书让我既能支持源码研究,又不至于受那么的苦遭那么多的罪, 用数学来描述,就是尽量使(动力 - 阻力)差值最大化.
那这本电子书在我研究源码的道路上具体又有什么魔力呢? 下面我将结合两篇所列要点,避害趋利地分析下下. 电子书的链接为:http://www.discursive.com/books/cjcook/reference/book.html
1, 问题驱动. 这里借助一个时髦一点的名字, 咱也叫作"XX驱动". 具体到这本书上,就是说书中所列feature都是先从很具体的问题引入的, 这样不至于像看Hibernate源码里的类那样,一上来并不清楚这个类具体是干啥的?为什么要引入它? 有了这个问题驱动的特点, 再看/跟踪所说源码时,心里有一个明确的目标, 所有努力都会有的放失, 目标单一了, 也就更能集中精力地钻研问题.
2, 例子说明. 这一点很重要, 有了例子, 上面讲述的问题也就更形象, 自己也就不必再设计例子去验证那些feature, 可以直接在例子的基础上设置断点、跟踪、查看其具体实现细节. 而这样的优点,在研究hibernate或Tomcat时,那是根本不敢想的, 不可能有这样材料针对hibernate每一个类的作用加以说明.
3, 短小精悍. 此电子书,基本上是按一集一个feature的节奏前进的. 这种感觉就像看情景喜剧,一集一个故事,故事之间没有关联, 什么时候有时间了,都看上一集.而hibernate就像是三国演义了, 若事先一点"基础"也没有的话,那么错综复杂的人物关系根本理不出头绪了. 这样的短小精悍,还有一个好处,就是每一个feature下来,都是一个成功,也相应地有了成就感,日集月累,金字塔也就慢慢展显了出来.
4, 容易出彩. 书所列feature大都是对日常编码中易出错问题的解决了, 把它们研究透了, 一是从意识层面上可以考虑周全而少出问题,再有即使出了问题也心里有底, 想到可能会从这个ApacheCommon中找到答案.在这方面, Hibernate虽说比Tomcat更接近实用,更由于其"人物关系复杂",自己容易走丢, 投入产出比要差不少.
5, 积木作用. 由于书中feature是对小问题的集中解决, 而这些小问题想比于大问题跟自己更亲近(而且本质上讲,大问题也都小问题积累而成),我们对它们的做案现场更易把握.于是无意中,也就锤炼了自己对问题的分析、对事物的建模能力. 这样的提高也会比hibernate来的更平易近人. 再上一个层面, 像hibernate这样的大项目,不少功能也就直接借用了ApacheCommon的东西, 这样对书中所列ApacheCommon的功能有了集中了解/精通后, 日后再研究Hibernate时,也就少了很多绊脚石. 再无边际进想一下, 自己说不一定针对现实中的一些问题, 利用这些积木也"攒巴"出一个开源东东来呢. 呵呵...
--------------
至此, 结合自己的酸甜苦辣,分了三篇引出ApacheCommon对研究源码上地帮助作用, 接下来的日子中, 结合自己的工作节奏,将会相应的研究心得陆续呈现出来, 敬请大家关注. 谢谢.
分享到:
相关推荐
各位程序员朋友们好,这是我自己写的一个网上订餐系统,结构完整,使用jsp实现,注释详细,尤其对于各位学习jsp的朋友们帮助明显,功能完善,页面美观,附带完整源码,供学习,交流
微信小程序-仿滴滴公交 实例源码
50套2017最新微信小程序源码,包括:游戏、工具、电商、资讯和社交等类型的微信小程序源码,值得学习研究
这里还有收集的一些ASP / ASP.NET 团购的源码: http://download.csdn.net/source/2972797 http://download.csdn.net/source/2959690 http://download.csdn.net/source/2973478 PHP+MySQL的看这里: ...
小区物业管理系统源码小区物业管理系统源码小区物业管理系统源码 解压密码:51gsf
我们的每个系统作品都要经过周密的市场分析调查、可行性研究、项目策划,对我们来说项目的可行性高于一切! 功能专业、布局严谨 以项目方案为蓝本,以现有成功地方网站为局部参考,并充分结合地方性网站的特点与...
《TabHost详解》对应源码之三:继承自TabActivity,博客地址:http://blog.csdn.net/harvic880925/article/details/17120325
"198个经典C#WinForm实例源码"包括: 1-窗体技巧 2-控件操作 3-图像操作 4-报表打印 5-系统操作 6-文件处理 7-网络操作 8-数据库操作 9-加密解密 10-硬件读写 11-游戏设计 "超赞的198个经典C#WinForm实例源码.zip " ...
Pixhawk源码一:APM代码基本结构 Pixhawk源码二:APM线程 Pixhawk源码三:串行接口UART和Console Pixhawk源码四:学习RC Input and Output Pixhawk源码五:存储与EEPROM管理 ...Pixhawk源码十一:增加新的MAVLink消息
源码说明: 01.交友源码数据包大小:20兆左右,会员图像大小110兆左右。数据库50兆。源码总共需要占用空间341兆。 02.交友源码运行环境:apache+php+mysql运行环境。本机测试环境为:wampserver2.1,其中Apache ...
SpringSecurity教程配套源码 专栏地址:http://blog.csdn.net/column/details/springsecurity.html
大家乐捕鱼游戏源码下载 ,可以看到可以看到打鱼场景和源代码。需要学习的可以下载参考!最新全套完整源码
130个微信小程序源码!!!在学习微信小程序过程中,经过不懈的努力查找,最终在护粮网那些事儿上找到比较全的微信小程序源码。不是原创,只是借鉴!!!
java源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码源码...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
Cocos2dx2.2游戏源码:奇怪大冒险,(原作熊同学) 质量很好,骨头使用vs2013和cocos2dx2.2打开即可编译运行,感谢原作者熊同学,文档参考http://blog.csdn.net/iamlazybone 相关笔记
采购评审专家管理系统源码解压密码:sjund
严格按照规范的方法开发的Web项目,看完后会让你对Java Web,Ajax,JavaScript等有很深的了解
YY多开源码YY多开器源码源码YY多开器源码源码YY多开器源码源码
微信小程序源码,包含:图片展示、外卖点餐、小工具类、小游戏类、演绎博览、新闻资讯、医疗保健、艺术生活等源码。