栏目分类
热门大杂烩文章推荐

广告赞助商

主页 > 大杂烩 > INTRODUCE

教你如何阅读源代码

2019-07-06 11:29 来源:Www.scoic.cn 浏览:99次 我要评论 (条) 字号:

摘要:阅读源代码有许多益处。你会发现新的架构(construct)和库,与其他的代码维护者产生共鸣,但最重要的是学会如何组织代码,避免因内部极其复杂而变得不可维护。 但是也有一个不好的地方,那就是阅读源代码太困难了。每当我看到一个新的代码库(code base)时

 

阅读源代码有许多益处。你会发现新的架构(construct)和库,与其他的代码维护者产生共鸣,但最重要的是学会如何组织代码,避免因内部极其复杂而变得不可维护。

但是也有一个不好的地方,那就是阅读源代码太困难了。每当我看到一个新的代码库(code base)时,这种让人眩晕的感觉就充斥了我的大脑。我的内心告诉我压根不想趟眼前这趟浑水。

这是(希望是)正常的反应。当我们的大脑接触过多的新东西,就会产生排斥。造物主赋予我们的这台强大的模式匹配机器根本找不到规律。所有的抽象(abstraction)都是之前没见过的,类的名称也毫无印象。程序又到底是从什么地方开始执行的?
 


对此,我能给出的一般性建议如下1. 寻找并建立自己能够理解的初步基础,通常就是主要的入口点(main entry point)。2. 从这个基础开始,逐步探索主要功能。3. 记录下自己的见闻。

从头开始

窍门就是给自己一个起点。我是这样做的。我通过-h选项运行程序,并调用 help 命令。之后我复制其中一条 help 文档字符串,以此为检索词搜索一遍代码库,找到这个帮助文档所在地方。通常情况下,调用 help 命令之后你会发现离程序的主入口点很近了。

辨明轮廓

找到主入口点之后,我会运行几个文档中提供的示例。然后,我会试着追踪主要的代码块,大致了解下每个部分是如何连接起来的。

我会问自己,是否存在一个管理程序,负责调用一堆帮助函数和类(helper functions and classes)?是不是有一些类是平级关系,相互之间轮流交换控制权?是不是有一个程序逐步执行的主任务队列?

了解全局有助于你理清小细节。如果你没有理解程序的主流程就闷头读下去,那你很可能会被细枝末节搞得焦头烂额。

勤做笔记

我习惯直接在代码中做笔记。做笔记的时候,我会使用特殊的注释符(例如,使用#=>,而非常用的#),这样可以将我自己的笔记与原作者注释区分开来。

如果碰到巧妙的技巧、不易理解的流程、编程架构(construct)的漂亮使用方式或者是其他任何你想牢记的内容,务必要做笔记。如果你读不下去了,你也可以做个记录,广州电脑培训Java是一个广泛使用的网络编程语言,它是一种新的计算概念。首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。,提醒自己之后要回去再读看不懂的部分。

通过写下你的思绪,你实际上是在把那块代码变成你自己写的。慢慢地,你就会开始在工作中自然地用上新掌握的那些架构(construct)。

融汇贯通

学习编程,是一个反复读代码和写代码的持续过程。只要你愿意接触不同的风格、代码,最终你会形成自己的独特视角和思维。

免责声明:教你如何阅读源代码消息来自全国各地新闻报刊或互联网公司网站,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文其中部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请关注互联网信息的网友仅作为参考,并请自行核实相关内容。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
特别说明

此处放横条广告

◎ 广告赞助

◎最新评论
      谈谈您对该文章的看
      表  情:
      评论内容:
      点击我更换图片
      * 请注意用语文明且合法,谢谢合作 审核后才会显示! Ctrl+回车 可以直接发表

      ◎ 阅读说明READ EXPLANATION

      ☉推荐使用第三方专业下载工具下载本站软件,使用 WinRAR v3.10 以上版本解压本站软件。
      ☉如果这个软件总是不能下载的请点击报告错误,谢谢合作!!
      ☉下载本站资源,如果服务器暂不能下载请过一段时间重试!
      ☉如果遇到什么问题,请到本站论坛去咨寻,我们将在那里提供更多 、更好的资源!
      ☉本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。