前两篇分别描述了"为什么要研究源码"和"研究源码的痛苦", 这里接下来看最后一篇"避害趋利", 意指为什么那个电子书让我既能支持源码研究,又不至于受那么的苦遭那么多的罪, 用数学来描述,就是尽量使(动力 - 阻力)差值最大化.
那这本电子书在我研究源码的道路上具体又有什么魔力呢? 下面我将结合两篇所列要点,避害趋利地分析下下. 电子书的链接为: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技术的网上订餐系统,旨在为程序员朋友们提供一个完整的学习示例,特别是...通过实际操作和研究源码,不仅可以提升JSP技能,还能学习到项目开发的整体流程和最佳实践。
通过深入研究SSCOM源码,你可以学到如何实现一个功能完备的串口通信工具,理解底层通信协议,掌握GUI编程技巧,还能提高问题排查和系统设计能力。这不仅是提升个人技能的好途径,也是进入嵌入式系统、物联网等领域的...
在IT行业中,麻将APP源码是一项复杂而有趣的项目,它涉及到移动应用开发、游戏设计、算法实现、网络通信以及用户体验等多个领域。以下是对这个主题的详细解析: 首先,"麻将APP源码"指的是用于构建麻将应用程序的...
此“html5个人网站源码”是一个理想的起点,尤其是对于初学者,想要了解和掌握HTML5的核心特性的实践应用。 ...通过研究和修改这个源码,新手可以深入理解网页制作的各个方面,并提升自己的技能。
【描述】中的关键信息表明,这个源码包不仅包含了服务端的代码,还有移动端和桌面端的源码,这意味着我们可以研究整个通信系统的全貌,从后端服务器处理消息到前端用户界面的交互。对于想要学习或构建类似系统的...
2022微信小程序130个源码分享 想开发微信小程序却不知如何下手,微信官方文档不熟悉,想开发某个功能没有头绪,不知道代码怎么写?这里有一共130套微信小程序模板源码,包含移动端商城、小游戏、音乐、地图、小说、...
在Windows环境下编译ADB(Android Debug Bridge)源码是一项对开发者而言非常实用的技能,尤其对于那些希望深入了解ADB工作原理或者需要自定义ADB功能的人员。ADB是Android系统中的一个关键工具,它允许开发者通过...
捕鱼游戏源码是一种基于计算机编程技术,用于开发模拟海洋捕鱼场景的电子游戏的代码集合。这类源码通常包含了游戏逻辑、...同时,源码的完整性和可运行性也使得它成为一个良好的实践案例,可供学习者反复调试和研究。
【网狐6.6最新捕鱼源码】是一个在IT行业内,特别是游戏开发领域中的重要资源。...它涵盖了从图形设计到网络编程的各个环节,深入研究和理解这个源码,有助于提升开发者的游戏编程技能和对整个游戏开发流程的理解。
这个压缩包文件包含了130个微信小程序的源码,是学习和研究微信小程序开发的宝贵资源。通过这些源码,你可以深入理解微信小程序的架构、开发流程以及常见功能的实现。 首先,微信小程序的开发基础是JavaScript、...
解压后,开发者可以开始研究源码,理解其结构和工作原理,进而进行定制和部署。 总结来说,这个“多功能在线报价系统源码”是一个强大的工具,可以帮助企业提高报价效率,优化销售流程,并通过可定制性实现与企业...
【JSP+MYSQL+Tomcat网上书店完整源码】是一个典型的Java Web应用示例,它展示了如何使用JSP(JavaServer Pages)、MySQL数据库和Tomcat服务器来构建一个在线书店系统。这个项目对于初学者和进阶者来说都是极好的学习...
标题中的“手机号码交易网手机选号网站源码”指的是一个用于在线交易手机号码的网站系统,其核心是源代码,使用的是ASP编程语言和Access数据库。这种网站源码为开发者提供了一个基础平台,用于搭建自己的手机号码...
Eigen为用C++模板开发的用于矩阵、向量等线性代数操作的开源代码,这里是从官网下载的Eigen最新版本
本资源包含2000套微信小程序的源码,对于开发者来说是一份宝贵的参考资料,可以用来学习、研究或者作为开发新项目的起点。 源码下载是开发者获取程序原始代码的方式,对于学习和理解编程逻辑至关重要。这些微信小...
供应链管理系统源码是一种用于管理企业内部以及与外部合作伙伴之间物流、信息流和资金流的软件解决方案。这个系统的核心目标是优化整个供应链流程,提高效率,降低成本,并确保在正确的时间、正确的地点提供正确的...
这里还有收集的一些ASP / ASP.NET 团购的源码: http://download.csdn.net/source/2972797 http://download.csdn.net/source/2959690 http://download.csdn.net/source/2973478 PHP+MySQL的看这里: ...
8. **更新和维护**:源码应设计成可升级和维护的,以便在未来修复bug,添加新特性,或者适应新的技术标准。 在提供的文件列表中,`VST_Demo.apk`是该聚合视频桌面的演示应用程序,用户可以安装在机顶盒上试用。而`...
我们的每个系统作品都要经过周密的市场分析调查、可行性研究、项目策划,对我们来说项目的可行性高于一切! 功能专业、布局严谨 以项目方案为蓝本,以现有成功地方网站为局部参考,并充分结合地方性网站的特点与...
移动医疗APP源码是开发医疗健康应用的核心组成部分,它包含了应用程序的所有逻辑和界面设计。...开发者可以通过研究源码学习到Android应用开发的各种技术,同时也可以了解如何在医疗领域实现安全、高效的移动服务。