**疑问:**那个代码最好 第一章节 1.可读性原则 代码的写法使得别人理解它所需的时间最少。
2.表面层次改进 好的名字、注释、代码整洁格式(使用适当的空格符)
第二章:把信息封装到名字里 1.选择专业的词 GetPage---->DownloadPage ----->FetchPage 二叉树的size–>[Height, NumNodes, MemoryBytes] 2.避免使用泛泛的词 (1)不好的例子 tmp、retval(returnValue)、foo (2)修改例子 javaSpcript例子 retrval—>sum_squares (3)tmp使用场景 tmp = left// 临时场景使用 修改建议 tmp–>修改为具体场景的意义tmp---->user_info tmp---->tmp_file # 加一个后缀
3.循环迭代器 (1) 表示迭代器的词不要表示其他含义 i,j, k, iter, it (2)根据场景变为更加精确的名字 i, j, k----->clud_i, members_i //增加前缀 4.用具体的名字代替抽象的名字 (1)例子1 ServerCanStart----->CanListenOnPort (2)例子2
#define DISALLOW_EVIL_CONSTRUCTORS(ClassName)
ClassName(const ClassName &);
void operator=(const ClassName&);
class ClassName {
private:
DISALLOW_EVIL_CONSTRUCTORS(ClassName)
};
DISALLOW_EVIL_CONSTRUCTORS------>DISALLOW_COPY_AND_ASSIGN //EVIL这个词太抽象 (3)例子3 —run_locally 当作为可选打印日志意义时:–extra_logging 当—run_locally还有其他意义时:分两种写法–extra_logging、–use_local_database
5.为名字附带更多信息
变量--------》等价于一个小注释 (1)例子1,包含16进制 string id; ----->hex_id (2)单位 start---->start_ms (3)url—>untrustedUrl\trustedUrl 原则:需要理解的关键信息,放在名字里面,不提倡每个变量都加
6.名字应该有多长
原则: 在小的作用域里面用短名字 输入长名字,可以利用软件的补全功能 首字母缩写原则:团队其他人员均理解 丢掉没用的词:ConvertToString----->toString 利用名字的格式来传递含义----符合编程规范
|