如何阅读代码
来源:互联网 发布:怎么看iphone的mac地址 编辑:程序博客网 时间:2024/05/16 00:50
Ø 代码阅读的必要性
Ø 收集所有可能收集的材料
Ø 知识准备
命名惯例:变量、函数、类名、模块。
Ø 留备份,构造可运行的环境
Ø 找开始的地方
Ø 分层次阅读
在阅读代码的时候不要一头就扎下去,这样往往容易只见树木不见森林,阅读代码比较好的方法有一点象二叉树的广度优先的遍历。在程式主体一般会比较简 单,调用的函数会比较少,根据函数的名字及层次关系一般能确定每一个函数的大致用途,将你的理解作为注解写在这些函数的边上。当然非常难一次就将全部注解都写正确,有时候甚至可能是你猜测的结果,不过没有关系这些注解在阅读过程是不断修正的,直到你全部理解了代码为止。一般来说采用逐层阅读的方法能是你系统的理解保持在一个正确的方向上。避免一下子扎入到细节的问题上。在分层次阅读的时候要注意一个问题,就是将系统的函数和研发人员编写代码区分开。在c, c++,Java ,delphi中都有自己的系统函数,不要去阅读这些系统函数,除非你要学习他们的编程方法,否则只会浪费你的时间。将系统函数表示出来,注明他们的作用即可,区分系统函数和自编函数有几个方法,一个是系统函数的编程风格一般会比较好,而自编的函数的编程风格一般比较会比较差。从变量名、行之间的缩进、注解等方面一般能分辨出来,另外一个是象ms c6++会在你编程的时候给你生成一大堆文件出来,其中有非常多文件是你用不到了,能根据文件名来区分一下时候是系统函数,最后如果你实在确定不了,那就用研发系统的帮助系统去查一下函数名,对一下参数等来确定即可。
Ø 写注解
写注解是在阅读代码中最重要的一个步骤,在我们阅读的原始码一般来说是我们不熟悉的系统,阅读别人的代码一般会有几个问题,1搞明白别人的编程思想不是一件非常容易的事情,即使你知道这段程式的思路的时候也是相同。2阅读代码的时候代码量一般会比较大,如果不及时写注解往往会造成读明白了后边忘了前边的现象。3阅读代码的时候难免会出现理解错误,如果没有及时的写注解非常难及时的发现这些错误。4不写注解有时候你发生你非常难确定一个函数你时候阅读过,他的功能是什么,经常会发生重复阅读、理解的现象。
1猜测的去写
2按功能去写
3分清晰系统自动生成的代码和用户自己研发的代码
4在主要代码段要写较为周详的注解
5对你理解起来比较困难的地方要写周详的注解
6写中文注解
Ø 重复阅读
Ø 要了解一个系统,最好是采取由上至下的方式。先试着捕捉系统架构性的观念,不要过早钻进细节,因为那通常对于你了解全貌,没有多大的帮助。阅读程式码不需要从第一行读起,我们的目的并不是在于读遍每一段程式码。
Ø 解析框架架构
一, 系统如何初始化,二,与这个系统相接的其他系统(或使用者)有那些,而相接的介面又是什么;三,系统如何反应各种事件,四,系统如何处理各种异常及错误。
善用现有代码:使用框架。
软件开发界的另外一个小秘密是:编写优秀代码和糟糕代码所花费的时间是一样多。一位训练有素的工程师,他/她会从第一行代码开始就考虑可维护性和代码的演化。没有任何理由编写“丑陋”的代码、长达数页的函数,或是稀奇古怪的变量名。优秀的工程师编写代码会遵循命名惯例,代码编写紧凑、简单和不过度炫耀聪明。代码的每一行,都应恰如其分地展现出其原有目的。在给不便理解的代码(块)合理注释时,别忘了命名规则。清晰明了的函数名和变量名可以让代码不言而明。
在编码时,有些程序员会有这种心态:过一会儿再来修改或完善某部分代码或某条语句。但谁知这一“过一会”竟然是“一天”、“一周”、“一个月”或“一年”,甚至以后根本就没机会再回头修改。所以,尽量别妥协写出暂时堪用的代码。否则,不仅不会节省开发时间,也可以阻碍整个进程。当然也不利于后续维护人员的工作。
打破“专家陷阱 ”:
对于个人:
首先,打造你自己的私人项目。你需要不断地打磨自己的技艺。如果工作本身并不能帮助你做到这一点,就捡起那些你感兴趣的问题,然后用你的私人时间去攻克它。通过这个方法,你应该会学到新东西。如果把你的私人项目发布出去,比如在 GitHub 上,你说不定会认识一些人,帮助你大踏步地向前迈进。
其次,不要在一个团队中停留超过两年。强迫你自己四处转转,哪怕在是同一家公司内,你会面对新的挑战和新的技术。试着每隔 18 个月就出去面试工作。你并不需要真的换工作,但是这能让你看到真实的市场需求,以及怎样与时俱进。
对于团队和公司:
•给予员工压力和挑战。实行轮岗制度,让“专家”们有机会拓展他们的技能。启动新项目,用战役来磨炼你的勇士。
•周期性地举办黑客马拉松活动。这有助于营造一种崇尚创新和创作的企业文化,人们会受到同伴的激励——“擦,这个混蛋居然可以在 24 小时内写出这么漂亮的框架,我也得加把劲儿了!”
- 如何阅读别人代码
- 如何阅读代码
- 如何阅读代码
- 如何高效阅读代码
- 如何阅读代码
- 如何阅读代码
- 如何高效阅读代码
- 如何阅读代码
- 如何阅读KVM代码
- 如何阅读代码
- 如何阅读大型代码
- 如何阅读caffe代码
- 如何阅读代码
- 如何阅读代码
- 如何阅读一份代码?
- 如何阅读代码
- 如何高效阅读代码
- 如何阅读代码(ZT)
- 学密码学一定得学程序
- JDK中的Timer和TimerTask详解
- Android的Application的oncreate()多次被调用原因并解决方案
- Nodejs之文件系统
- 基于Android平台的人脸识别实现
- 如何阅读代码
- hive 建表报错 For direct MetaStore DB connections, we don't support retries at the client level
- 机器学习实战读书笔记-Logistic回归
- Quartz定时任务学习(二)web应用
- javascript 函数作用域 详解
- java得到一个类及其父类的属性和属性类型
- VC/VS开发的exe程序运行问题
- java 泛型方法的理解
- java源码阅读之ThreadPoolExecutor