书籍网址:https://xiaomi.f.mioffice.cn/file/boxk4cZQDL5sGgXgM6ChQvTtlmf
第一章 代码应当易于理解
- 代码的写法应当使别人理解它所需的时间最小化
- 添加注释
- 采用多行语句完善逻辑
第二章 把信息装到名字里
选择专业的词
将名字描述更加专业:get => fetch/download
将名字描述更加具体:size => Height/NumNodes/MemoryBytes
send => deliver、dispatch、announce、distribute、router
find => search、extract、locate、recover
start => launch、create、begin、open
make => create、set up、bulid、generate、compose、add、new避免泛泛的名字
例如:tmp(临时存储)、retval(返回值)、foo(函数存储)
tmp:只应用于短期存在且临时性为其主要存在因素的变量
retval:用描述变量名字进行替代
循环迭代器的i、j、iter、it…用更加确切的命名表示club_i、menber_i、user_i用具体的名字代替抽象的名字
DISALLOW_EVIL_CONSTRUCTORS(不允许邪恶的创造者)=> DISALLOW_COPY_AND_ASSIGN(不允许复制和分配)
run_locally (运行在本地)=> use_local_database(使用本地数据库)使用前缀或后缀来给名字附带更多信息
为名字附带:具体描述、带单位的值、附带其重要属性决定名字的长度
小作用域:短名字
用缩略词解决名字过长问题
丢掉没用的词利用名字的格式来表达含义
用全部大写的名字代表常量
类成员变量必须以一条下划线结尾
构造函数 => 首字母大写
JQuery中JQ返回结果用$开头
Css中用_分开id的单词;用-分开class的单词第三章 不会误解的名字
防止名字存在被误解的可能
例如:filter()、Clip()等
解决方案:min、max表示(包含)极限;first、last表示包含范围;begin、end表示包含/排除范围
布尔值的命名:加上is、has、can或should等
匹配使用者期望:
get:轻量级访问
component:重量级访问
size():看起来很像轻量级操作时间复杂度O(n)
countsize()/countElements():重量级操作,时间复杂度O(n)
权衡多个备选名字:
选择不会产生误解且描述最为清晰的变量第四章 审美