Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30443
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-08 23:24
文章分类

全部博文(19)

文章存档

2014年(16)

2013年(3)

我的朋友

分类: 项目管理

2013-07-05 14:06:14

注释:
1.注释应该简洁:
// CategoryType -> (score, weight)
typedef hash_map> scoreMap;

2. 避免使用含糊的代词
// Insert the data into the cache, but check if it's too big first
it过于含糊,应该直指data
// Insert the data into the cache, but check if data too big first

3.确切的描述函数的行为
// Return the number of lines in this file.
int CountLines(string filename){...}
更好的描述是,明确指定 "line"的定义
//Count how many newline bytes ('\n') are in the file
这里指明了"line"究竟是什么

4.更明确地注释代码的行为,而不是宽泛的说代码在做什么“运动”
如一段循环代码的注释
//Iterate through the list in reverse order
for() {
    Display();
}
更好的版本是:
// Display each price , from highest to lowest

变量与可读性:
1.消除无用的临时变量
   1)没有用来分解复杂的表达式
   2)没有使代码表达的意图更明确
   3)只使用了1-2次,且没有压缩多余的代码

2.消除中间变量
有时候我们会在遍历中设置一些标记变量,以便在遍历完后对相应的元素做处理,这时通常可以更早一步的处理结果,并直接返回或跳出来消除标记变量
这样使得代码更紧凑精简。

3.消除控制流变量
while(flag){
    if(){
        flag = false/true  bla bla bla
    }
}
这时候使用break或continue来跳出可消除流程控制变量

重新组织代码:
1.抽取与主题无关的子问题,令其单独成方法 ——P110
    1)对一段代码问自己“这段代码的主旨是什么”
    2)对一行代码问自己“它是直接服务于主旨代码的么?或者是解决一个非相关的但被主旨依赖的子问题”
    3)如果有不少代码是解决不相关的子问题,那就将其抽取出来单独成为一个方法    

2.重新安排你的代码,令其专注解决一个问题
3.用一句话描述你的代码,借助这段话来清理你的代码
阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~