`

阅读源代码1

阅读更多
最近有做源码阅读的事情,觉得有些费尽,做了一些思考。
一个大项目的源代码,不要过份详细的阅读。大项目,其代码量基本上是可以吓死人的。过份的关注细节,常常会拘泥于细节,而忽略了整体框架。当你能够看清框架的时候,亦花费了太多的时间。
因此,阅读一个大项目的源代码,其目的不在于欣赏代码细节,而在于迅速看清项目整体框架的大概面貌:都有那些模块,这些模块是干嘛的(不关心具体怎么干),模块之间的通讯机制大概是怎样的,然后在考虑子模块,通常只要掌握两级子模块就够了。花上1,2天的时间掌握这一切,就达到了阅读大项目源码的目的。因为一旦你掌握了框架,你就可以按照这个框架实现这个项目,虽然和原项目全然不同,但是完成的需求却是一样的。
在软件中,架构才是本质。
也许你指望详细阅读大项目源代码能看到高质量的代码,但是,大项目通常都是团队的劳动成果,每个人的不同水平造就了代码质量的高高低低,一个人在不同时间不同环境的代码质量也是不同的。要指望在大片源码面前找到高质量,简直是天方夜谭。
也许你要从阅读源码中掌握某项技术细节,比如bsp,又或者换装,那么,最好的建议是查找相关的技术文档以及文档上所附带的sample code,这种sample code一般不会附带任何干扰,简洁得只是为了证明该技术而存在的。如果没有这些东西,而只能从大项目源码中找的话,你提前先了解了框架,能更快的查找和定位到表达该技术的文件。但是通常都会比较不幸,因为你为了明白这一技术,通常要先理解混入其中的另一技术。
最后谈谈怎样才能阅读到高质量的源代码。何谓高质量?是指算法出人一表(比如某种o(1)的排序法)?还是采用了极端深奥的语言特性将某实现完美表达(比如模板的灵活运用)?无论是哪种,最好的来源是书,如《STL详解》,或者《inside XX》这样的东西。书的作者通常就是这些高质量代码的作者,他会带领你探索这些源码背后的真相。
分享到:
评论

相关推荐

    阅读器源代码

    1. **编程语言**:阅读器源代码可能是用一种或多种编程语言编写的,如Java、C++、Python、Swift或JavaScript。具体使用哪种语言,需要查看源代码才能确定。 2. **用户界面(UI)设计**:阅读器应具有直观、易用的...

    Pentaho源代码阅读报告

    **Pentaho源代码阅读报告** Pentaho是一款开源的企业级商业智能(BI)平台,它提供了数据集成、报表、分析和数据可视化等多种功能。在深入研究Pentaho的源代码过程中,我们可以了解到其核心架构、组件交互以及设计...

    Android 文本阅读器源代码

    本项目名为"Times_textReader",是一款基于Android的文本阅读器源代码,适用于开发者学习和参考,以实现类似功能。源代码可以直接导入Eclipse IDE进行编译和调试,表明该项目使用的是较早期的Android开发环境,因为...

    微信小程序 新闻资讯 新闻阅读器 (源代码+截图)

    微信小程序 新闻资讯 新闻阅读器 (源代码+截图)微信小程序 新闻资讯 新闻阅读器 (源代码+截图)微信小程序 新闻资讯 新闻阅读器 (源代码+截图)微信小程序 新闻资讯 新闻阅读器 (源代码+截图)微信小程序 新闻...

    Celerity C/C++源代码阅读和维护器

    迅捷是一个功能强大的c/c++源代码阅读和维护软件。可以处理数百万行的源程序代码。支持标准及k&r风格的c/c++。对每一个打开的源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的...

    软著源代码整理工具

    1. **代码格式化**:自动调整代码的缩进、空格、换行等,使其符合一定的编码规范,便于阅读和审核。 2. **去除无用代码**:删除注释、调试代码、未使用的变量或函数,减少冗余,使核心代码更突出。 3. **文件排序**...

    学会阅读源代码

    在计算通信领域,写几段使人类同胞能够理解的文字,实在比敲几行不会使编译器或者解释器呕吐的软件代码要困难得多。 这就是为什么每当涉及到代码,几乎所有文档都弱爆了。因为写东西给人看,比写给机器看难得多,在...

    用Source Insight打开linux内核源代码

    4. Source Insight 工具的使用:Source Insight 是一个支持多种开发语言的编辑器,可以用来阅读源代码。其功能包括查找、定位、彩色显示等。可以用 Source Insight 打开 Linux 内核源代码,了解代码的结构和内容。 ...

    javascript源代码下载

    通过阅读源代码,开发者可以深入理解JavaScript的工作原理、设计模式以及最佳实践。 2. **代码调试与优化**:掌握源代码可以帮助开发者更好地调试和优化自己的JavaScript程序。 3. **二次开发**:许多开源项目提供了...

    Quake3 Arena 源代码

    在QuakeCon 2005大会上,John Carmack曾表示,《Quake 3》源代码将在近期发布,任何有兴趣的人都可以下载。现在,id Software兑现了自己的诺言:《Quake 3 Arena》完整源代码1.32b版(Quake 3 Arena Full Source Code...

    2013百度红包VB源代码,源代码!

    标题中的“2013百度红包VB源代码”指的是一个基于Visual Basic (VB)编程语言的项目,这个项目可能是百度公司在2013年推出的一个红包活动的后台系统或者客户端应用。VB是一种由微软开发的面向对象的编程语言,常用于...

    linux 经典源代码

    通过阅读源代码,我们可以理解如何实现这些功能,例如多任务调度(如CFS调度器)和内存分配策略(如伙伴系统)。 2. **设备驱动**:Linux支持各种硬件设备,其源代码包含了大量设备驱动程序。这些驱动程序允许内核...

    Android代码-文本阅读器源代码.zip

    【Android代码-文本阅读器源代码.zip】是一个包含Android平台上的文本阅读器应用程序的源代码。这个项目可能是一个实现文本查看、编辑和管理功能的软件,对于开发者来说,这是一个了解Android应用开发,尤其是文本...

Global site tag (gtag.js) - Google Analytics