`

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

阅读更多

    前两篇分别描述了"为什么要研究源码"和"研究源码的痛苦", 这里接下来看最后一篇"避害趋利", 意指为什么那个电子书让我既能支持源码研究,又不至于受那么的苦遭那么多的罪, 用数学来描述,就是尽量使(动力 - 阻力)差值最大化.
    那这本电子书在我研究源码的道路上具体又有什么魔力呢? 下面我将结合两篇所列要点,避害趋利地分析下下. 电子书的链接为: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技能,还能学习到项目开发的整体流程和最佳实践。

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

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

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

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

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

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

    微信小程序-仿滴滴公交 实例源码下载

    在这个"微信小程序-仿滴滴公交 实例源码下载"中,我们能够学习到如何利用微信小程序开发一个类似滴滴公交的出行服务应用。 首先,我们要了解微信小程序的基础架构。它主要基于JavaScript,使用WXML(Weixin Markup ...

    捕鱼游戏源码 下载 最新完整版

    捕鱼游戏源码是一种基于计算机编程技术,用于开发模拟海洋捕鱼场景的电子游戏的代码集合。这类源码通常包含了游戏逻辑、...同时,源码的完整性和可运行性也使得它成为一个良好的实践案例,可供学习者反复调试和研究。

    互助网站源码最新版 最新互助平台程序建设开发源码

    【标题】"互助网站源码最新版 最新互助平台程序建设开发源码"指的是一个用于构建互助类网站的源代码包,它包含了构建此类平台所需的全部核心组件和功能。互助平台通常指的是网络上的金融互助社区,用户之间可以互相...

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

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

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

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

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

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

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

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

    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的看这里: ...

    机顶盒聚合视频桌面源码

    8. **更新和维护**:源码应设计成可升级和维护的,以便在未来修复bug,添加新特性,或者适应新的技术标准。 在提供的文件列表中,`VST_Demo.apk`是该聚合视频桌面的演示应用程序,用户可以安装在机顶盒上试用。而`...

    camunda7.17视频课程源码分享

    《camunda7.17视频课程源码解析》 在当今的企业级应用开发中,流程自动化...通过深入研究这些源码,开发者不仅可以掌握Camunda的基本用法,还能了解到如何在不同的技术栈中高效地利用Camunda来实现业务流程自动化。

    android studio飞机大战源码带注释

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

    移动医疗APP源码 android (安卓版)妙手医生源码

    移动医疗APP源码是开发医疗健康应用的核心组成部分,它包含了应用程序的所有逻辑和界面设计。...开发者可以通过研究源码学习到Android应用开发的各种技术,同时也可以了解如何在医疗领域实现安全、高效的移动服务。

Global site tag (gtag.js) - Google Analytics