现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

读代码的体会

2012-09-11 12:33 工业·编程 ⁄ 共 728字 ⁄ 字号 暂无评论

记得以前面试的时候被问到一个问题:“你平时业余时间有没有读过什么开源的代码,谈谈是如何读的?以及有什么收获”。

问题很好,当时却答得不怎么样,可能那时经历有限,也一直记着这个问题,常常在思考,现在写一些简单体会。

我觉得读代码有几个步骤,刚开始就说去看架构文档,我觉得那是扯蛋,如果你基本没有看过里边的几行代码,架构是看不出来的,文档看过之后,似乎也没太大作用,过后即忘。唯有多花些时间,在代码里来回查找各种引用、调用关系,以及诸多函数的实现细节后,才会慢慢有所感觉,才能接近于理解其架构。所以我的观点是先看代码,再看文档,而不是相反。

我觉得有这么几个层次:

1,框架的主要类,这些类是读代码的入口,从文档查看是最快的,如果没有,就只有摸索了,C++框架一般会有抽象类或者COM以及伪COM接口,这些开始要重点关注。

找到接口之后,可以搜索哪些类从它继承而来,或者依赖,或者包含,可以用手画一些局部UML类图,用工具也可以,不过我习惯于用手画,灵活,想怎么样就怎么样画。

2,框架的管理机制,我觉得一般的框架中,管理机制最吸引我,可惜却没有看到一个什么“管理器模式”,可能将来某个时候被总结出来,有简单的管理,如创建、销毁;也有异常复杂的管理。

3,用设计模式的眼光去分析代码,你会发现,大的框架一般显式或隐式的包含多种设计模式,有的被人挖掘,有的还在等着你的到来。

4,进一步可以重点读读感兴趣的技术细节,看它是怎么实现的,用了哪些api,可以扩充视野,也可以为将来某个时候实现相似功能提供参考。

5,此外还可以参考命名风格,注释排版,如果不是读过一些代码,我想在学校是不知道什么是骆驼命名法,匈牙利命名法,以及doxgen这类注释风格的。

读的过程就是收获吧,大概这些。

给我留言

留言无头像?