我的天空,我的世界

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

1.         要经常花时间阅读别人写的高品质代码

2.         要有选择地阅读代码,还要有自己的目标。是想学习新的模式、编码风格、还是其他

3.         要注意特殊的非功能性需求,这些需求也许会导致特定的实现风格

4.         在现有代码上工作时,请与作者或维护人员进行必要的协调.

5.         在寻找bug时,请从问题的表现形式到问题的根源来分析代码。不要沿着不相关的路径(误入歧途)

6.         要充分利用调试器、编译器给出的警告输出、系统调用跟踪器、数据库结构化查询语言的日志机制、包转储工具和Windows的消息侦查程序定出bug位置

7.         对于那些大型且组织良好的系统,你只需最低限度地了解它的全部功能,就能够对它做出修改

8.         向系统中增加新功能时,首先找到实现类似特性的代码,将它作为待实现功能的模板。

9.         从特性的功能描述到代码的实现,可以按照字符串消息或使用关键词来搜索代码

10.     阅读代码寻找重构机会时,先从系统的构架开始,然后逐步细化,能够获得最大的效益

11.     第一次分析程序时main是个好的起点

12.     有时想要了解程序某一方面的功能,运行它可能比阅读源代码更好

13.     在分析重要的程序时,最好先识别出重要的组成部分

14.     当基于猜测修改代码时,应该设计能够验证最初假设的过程。这个过程可能包括用编译器进行检查、引入断言或执行适当的测试用例

15.     理解了代码的某一部分,可能帮助你理解余下的代码。所以要从容易的部分入手

16.     要养成遇到库元素就去阅读相关文档的习惯,这将有助增强阅读和编写代码的能力

17.     使用De Morgan法则简化复杂的逻辑表达式

18.     可以使用空格、临时变量、括号、合理布局提高代码易读性

19.     执行算术运算时,当b=2n-1时,可以将a&b理解为a%(b+1),a<<n理解为a*k,k=2n;a>>n理解为a/k,k=2n;

20.     每次只分析一个控制结构,将它的内容看作是一个黑盒

21.     用复杂循环的变式和不变式对循环进行推理

22.     使用保持含义不变的变换重新安排代码,简化代码的推理工作

23.     推理递归函数时,要从基准范例测试开始,并论证每次递归调用如何逐渐接近非递归基准范例代码

24.     推理互递归函数时,要基于底层概念的递归定义

25.     尾递归调用等同于一个回到函数开始处的循环

26.     throw子句从方法定义中移除,可以容易找到那些可能隐式地生成异常的方法

27.     应用程序的源代码树经常是该应用程序的部署结构的镜像

28.     阅读一小时代码不如阅读一分钟文档

 

 

posted on 2009-12-18 18:13  eaglegrace  阅读(306)  评论(0编辑  收藏  举报