`

研究源码的新天地: 避害趋利

阅读更多

    前两篇分别描述了"为什么要研究源码"和"研究源码的痛苦", 这里接下来看最后一篇"避害趋利", 意指为什么那个电子书让我既能支持源码研究,又不至于受那么的苦遭那么多的罪, 用数学来描述,就是尽量使(动力 - 阻力)差值最大化.
    那这本电子书在我研究源码的道路上具体又有什么魔力呢? 下面我将结合两篇所列要点,避害趋利地分析下下. 电子书的链接为: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对研究源码上地帮助作用, 接下来的日子中, 结合自己的工作节奏,将会相应的研究心得陆续呈现出来, 敬请大家关注. 谢谢.

2
1
分享到:
评论

相关推荐

    KITTI数据集可视化源码,对应教程为:https://blog.csdn.net/cg129054036/article/details/119516704

    《使用源码实现KITTI数据集的可视化》 在计算机视觉领域,数据集的可视化是一项重要的任务,它有助于研究人员理解数据、验证算法效果以及优化模型性能。KITTI数据集是自动驾驶和三维视觉研究中广泛使用的一个大型...

    JSP 网上订餐系统,附带完整源码与数据库

    **JSP网上订餐系统详解** 本项目是一个基于JSP技术的网上订餐系统,旨在为程序员朋友们提供一个完整的学习示例,特别是...通过实际操作和研究源码,不仅可以提升JSP技能,还能学习到项目开发的整体流程和最佳实践。

    php OA 源码 办公自动化源码

    用户帐号:可以为新员工建立帐号;可以为遗失密码的用户初使化密码;可以修改用户所在的权限组及部门;可以设置员工的个人信息。 权限组:可以将每个用户设置到不同的权限组中以保证不同用户具有与其身份相对应的...

    二手车源码,二手车网站源码,二手车中介源码

    二手车网站源码,二手车网站模板 二手车网站源码优势: 二手车网源码采用DIV+CSS结构,较之传统的表格结构,具体代码简洁,加载速度快的优势。 合理的布局,清晰明了的结构,强大的站内链接优化,你只要做好外部...

    SSCOM 源码,串口调试工具源代码

    通过深入研究SSCOM源码,你可以学到如何实现一个功能完备的串口通信工具,理解底层通信协议,掌握GUI编程技巧,还能提高问题排查和系统设计能力。这不仅是提升个人技能的好途径,也是进入嵌入式系统、物联网等领域的...

    麻将APP 源码

    在IT行业中,麻将APP源码是一项复杂而有趣的项目,它涉及到移动应用开发、游戏设计、算法实现、网络通信以及用户体验等多个领域。以下是对这个主题的详细解析: 首先,"麻将APP源码"指的是用于构建麻将应用程序的...

    2022微信小程序130个源码分享 解压密码123

    2022微信小程序130个源码分享 想开发微信小程序却不知如何下手,微信官方文档不熟悉,想开发某个功能没有头绪,不知道代码怎么写?这里有一共130套微信小程序模板源码,包含移动端商城、小游戏、音乐、地图、小说、...

    微信小程序源码大全(130个)

    这个压缩包文件包含了130个微信小程序的源码,是学习和研究微信小程序开发的宝贵资源。通过这些源码,你可以深入理解微信小程序的架构、开发流程以及常见功能的实现。 首先,微信小程序的开发基础是JavaScript、...

    Unity3d 《新仙剑奇侠传》游戏源码

    《新仙剑奇侠传》是一款基于Unity3D引擎开发的知名角色扮演游戏,其源码提供了深入理解游戏开发过程和Unity3D引擎功能的宝贵机会。以下是对源码中的关键知识点进行的详细解读: 1. **Unity3D引擎**:Unity3D是一个...

    若水新闻全部源码(客户端源码+服务端源码)

    【若水新闻】是一款集成了客户端与服务端的新闻应用源码,对于开发者而言,它提供了深入了解新闻类应用开发的宝贵资源。通过分析这个源码,我们可以学习到以下几个关键的知识点: 1. **客户端源码**:客户端源码...

    多功能在线报价系统源码

    解压后,开发者可以开始研究源码,理解其结构和工作原理,进而进行定制和部署。 总结来说,这个“多功能在线报价系统源码”是一个强大的工具,可以帮助企业提高报价效率,优化销售流程,并通过可定制性实现与企业...

    360doc文库整站源码下载.rar

    【360doc文库整站源码下载】是一个针对360doc个人图书馆网站的源代码包。这个源码提供了构建类似360doc功能的在线文档分享...同时,对于想要深入学习Web开发的人来说,分析和研究这样的源码也是一个很好的实践机会。

    JSP+MYSQL+Tomcat网上书店完整源码

    【JSP+MYSQL+Tomcat网上书店完整源码】是一个典型的Java Web应用示例,它展示了如何使用JSP(JavaServer Pages)、MySQL数据库和Tomcat服务器来构建一个在线书店系统。这个项目对于初学者和进阶者来说都是极好的学习...

    易企秀源码 H5页面 最新微场景源码 场景画报源码 易企秀去版权2015免费

    易企秀是一款在线H5制作工具,它帮助企业或个人快速创建互动式的微场景,如电子邀请函、宣传海报、活动...通过对源码的研究,不仅可以提升编程技能,还能掌握H5页面和微场景的制作流程,为未来的项目开发打下坚实基础。

    手机号码交易网手机选号网站源码

    标题中的“手机号码交易网手机选号网站源码”指的是一个用于在线交易手机号码的网站系统,其核心是源代码,使用的是ASP编程语言和Access数据库。这种网站源码为开发者提供了一个基础平台,用于搭建自己的手机号码...

    Eigen官方源码

    Eigen为用C++模板开发的用于矩阵、向量等线性代数操作的开源代码,这里是从官网下载的Eigen最新版本

    供应链管理系统源码

    供应链管理系统源码是一种用于管理企业内部以及与外部合作伙伴之间物流、信息流和资金流的软件解决方案。这个系统的核心目标是优化整个供应链流程,提高效率,降低成本,并确保在正确的时间、正确的地点提供正确的...

    微信小程序源码下载 微信小程序源码下载 2000套微信小程序源码

    本资源包含2000套微信小程序的源码,对于开发者来说是一份宝贵的参考资料,可以用来学习、研究或者作为开发新项目的起点。 源码下载是开发者获取程序原始代码的方式,对于学习和理解编程逻辑至关重要。这些微信小...

    ASP.NET第一团购网源码(自动部署,有说明)- ASP.NET 团购网源码

    这里还有收集的一些ASP / ASP.NET 团购的源码: http://download.csdn.net/source/2972797 http://download.csdn.net/source/2959690 http://download.csdn.net/source/2973478 PHP+MySQL的看这里: ...

    android studio飞机大战源码带注释

    学了3天的android studio还有一点以前的java基础做了个飞机大战的游戏 游戏比较简单大概就这几个功能 1.会动的背景 2.我的飞机 3.发射子弹 3.敌人飞机

Global site tag (gtag.js) - Google Analytics