半个月以来,我都在读代码,有些收获,那也简单的总结一下吧。
1> 代码不是静止的,不断的跟踪调试才能理解代码。
2> 修改代码会加深对代码的理解,尤其会理解到Why。
3> 真正的理解代码需要足够多的测试用例,有些测试用例需要自己构造,构造测试用例的过程也理解代码的过程。
4> 源代码是最好的文档,理解了代码之后可以抛弃文档。
5> 阅读时面对复杂的对象关系或算法,画图能促进理解。以前都是画图走的是野路子,现在逐渐体会到掌握UML的必要性,UML能描述思维过程。
6> 阅读代码是一个学习和提高的过程,在读代码的过程中熟悉了很多技术,例如COM、DOM、MFC等技术和架构。
7> 阅读和理解的过程循序渐进的,按流程一个模块一个模块的吃透。 模块内部的代码着重理清流程,例如理解多态设计的代码,往往可以从一个子类的处理流程入手,然后再举一返三。
第一点和第七点在本月的代码阅读实践尤其体会深刻。
最后引一段话来说明阅读代码的重要性:
“ 我曾向一位资深的开发人员询问过,应该如何提高自身的开发和设计能力。他的回答是,广泛地阅读一些现有的架构,比如Apple的开发框架、Borland 的OWL和Delhpi、Smalltalk、MFC等,了解它们是如何组织的。计算机科学就是这样一门学科,入门十分容易,不需要深奥的数学知识,也没有复杂的物理模型;但要想提高却很难,真正能够叱咤风云、引领潮流的人却少之又少。这就有如人生,在蹒跚学步之时,主要的精力都要放在看脚下的路面上,注意路上的坎坷和荆棘;随着年龄的增长,当走路越来越稳健时,却迷失了方向,不知道应该走向何方。这个时候脚下的路已经不再重要,你需要从先哲们留下的只字片言,别人走过的“路”中汲取灵感,确定自己的方向。”