读代码的体会

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

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

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

我觉得有这么几个层次:

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

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

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

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

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值