注释:
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.用一句话描述你的代码,借助这段话来清理你的代码
阅读(532) | 评论(0) | 转发(0) |