代码阅读格言
2015-09-10 21:54
169 查看
精简版
要经常花时间阅读别人写的高品质代码要有选择地阅读代码,还要有自己的目标。是想学习新的模式、编码风格、还是其他
要注意特殊的非功能性需求,这些需求也许会导致特定的实现风格
在现有代码上工作时,请与作者或维护人员进行必要的协调.
在寻找bug时,请从问题的表现形式到问题的根源来分析代码。不要沿着不相关的路径(误入歧途)
要充分利用调试器、编译器给出的警告输出、系统调用跟踪器、数据库结构化查询语言的日志机制、包转储工具和Windows的消息侦查程序定出bug位置
对于那些大型且组织良好的系统,你只需最低限度地了解它的全部功能,就能够对它做出修改
向系统中增加新功能时,首先找到实现类似特性的代码,将它作为待实现功能的模板。
从特性的功能描述到代码的实现,可以按照字符串消息或使用关键词来搜索代码
阅读代码寻找重构机会时,先从系统的构架开始,然后逐步细化,能够获得最大的效益
第一次分析程序时main是个好的起点
有时想要了解程序某一方面的功能,运行它可能比阅读源代码更好
在分析重要的程序时,最好先识别出重要的组成部分
当基于猜测修改代码时,应该设计能够验证最初假设的过程。这个过程可能包括用编译器进行检查、引入断言或执行适当的测试用例
理解了代码的某一部分,可能帮助你理解余下的代码。所以要从容易的部分入手
要养成遇到库元素就去阅读相关文档的习惯,这将有助增强阅读和编写代码的能力
使用De Morgan法则简化复杂的逻辑表达式
可以使用空格、临时变量、括号、合理布局提高代码易读性
执行算术运算时,当b=2n-1时,可以将a&b理解为a%(b+1),将a<
相关文章推荐
- java.lang.NoClassDefFoundError
- Java 多线程中的任务分解机制-ForkJoinPool详解
- 紫影龙的编程日记—— MFC中的常用函数
- C++Primer第五版 2.1.2节练习
- 用C语言实现常用排序算法
- 4.4 给定的点是否在三角形之内
- 编程技巧 - 4
- cakephp 的事件系统(Getting to grips with CakePHP’s events system), 基于观察者模式
- C++Primer第五版 2.1.1节练习
- java中,为什么char类型数组可以直接用数组名打印,而int型数组打印结果是地址值!
- Java注释讲解
- 设计模式C++实现——工厂模式
- Effective C++ 条款38 通过复合塑模出has-a或"根据某物实现出"
- 批判Rust语言,以及C/C++为什么永远不会死
- java笔记——初识面向对象04继承
- C#高級------数据字典练习
- 插入算法(C语言)
- java数组
- Rust and Go
- java设计模式系列--简单工厂模式