关于注释:
空行也是有效的注释,应该在不一样逻辑块之间添加空行。
过期的注释会浪费代码维护者的大量时间,若是更新了代码致使注释过期,就算没有时间更新注释,那就请把错误的注释删掉。
避免无效的注释,好比:int i = 0; //赋值成0
关于函数规模:
函数的功能要保持单一,尽可能将函数的规模控制在50行之内。
不要等到一个函数变得冗长时,才想要拆分,每每那时候已经晚了:在多人协做的项目中,改动这么大片代码是颇有风险的,既然产品只要我增长一个功能,我又何须麻烦本身呢?因此,拆分函数要趁早!
关于异常:
不要捕获异常后,不作处理!
由于忽略异常后,代码继续执行,可能会在某一个地方产生Crash,而Crash的地方已经于异常发生的位置相隔甚远,这会让问题的定位异常艰难。记住,若是不知道怎么处理异常,宁愿不catch,就让它Crash吧,这至少方便程序员定位问题。
善于从别人的代码中学习:
char* strcpy(char *dst, const char *src)
{
assert(NULL != dst && NULL != src);
char *addr = dst;
while((*dst++=*src++))
;
return addr;
}
strcpy的实现,有几点能够学习: c++
1. 用NULL而不是0,方便阅读。
2. strcpy返回目标字符串的地址,是为了可以进行级联操做,好比能够这样计算出目标字符串的长度:strlen(strcpy(dst, src)),cout也是同理:cout << "a" << "b" << endl; 在写C++函数时,要考虑一下,个人函数是否也要支持这种操做。
4 strcpy的src的类型带有const,除了保证src不变之外,const char *还会兼容char *。若是写成char *,那么strcpy就不能接受const char *的src了。