从我个人的经历来看,阅读优秀的代码,是技术水平提升的最佳途径。记得对进来的每个新人,我都做过阅读优秀代码的要求,但都只能坚持很少一段时间而已。
前晚大家还在开玩笑的讨论,就是因为看了前人的一些代码写法,才学会的一些乱七八糟的花招。
晚上我又开始重新阅读Discuz的核心代码,花了1h多的时间,才完成一个core文件的注释。
对于这种框架性的代码,不熟悉的话,因为牵涉太多,可能觉得无从下手。所以,一般是先多花一点时间,搞清楚代码的目录结构,做到了然于胸。
下一步,整理文件之间的依赖关系,最好整理成独立的文字,帮大脑形成直观的印象。
然后找准入口文件,从依赖最少的部分看起,越是Library类型的,依赖的东西越少,但一两个lib看过后暂时就没必要看下去了。还是得从框架入口看起,搞清楚框架的运行原理和加载流程。我们的大脑都进灰了,思路没有那么清晰,这个过程,也需要笔记的辅助。
尽可能多做注释,从每个类的含义、包含的功能、每个方法的参数返回值类型、方法的用法举例,实现的原理等,通过注释文字,还原代码作者的思想,进而吸收转换成自己的思想。
判断你会否阅读代码的基本标准,就是能否将代码注释得清晰明了,不再需要额外的辅助文档。因为,从技术人员的角度,代码中的注解性文档,是可以通过工具如phpdoc生成api文档的,相当于一件事情多种作用。无法编写代码,还是阅读代码,都得注意程序设计过程中思路清晰、目标明确。