代码规范

代码应当易于理解

关键思想:代码应当易于理解

0

关键思想:代码的写法应当使别人理解它所需的时间最小化

0

表面层次的改进

把信息装到名字里

选择专业的词

get 与 fetch

size() 与 NumNodes()、MemoryBytes()

stop() 与 Kill()、Pause()、Resume()

选用更有表现力的单词:

0

避免泛泛的名字

因为懒惰而使用:tmp retval result

result 与 userList orderList cateList

循环迭代时的 i j k 变成更有意思的 cateLength xxxLen

用具体的名字代替抽象的名字

在给变量、函数或其它元素命名时,要把它描述得更具体而不是更抽象。

DISALLOW_EVIL_CONSTRUCTORS

DISALLOW_COPY_AND_ASSIGN

使用前缀或后缀来给名字附带更多信息

如果变量是一个度量,最好把名字带上单位

0

附带其它重要信息:

0

决定名字的长度

0

BEManager与BackEndManager

小的作用域可心使用短名字

经验原则:团队新成员是否能理解这个名字的含义?

doc document eval evaluation

丢掉没用的词:

convertToString() 与 ToString()

long2Str

利用名字的格式来表达含义

这个比较成熟,遵照规范和团队约定即可

不会误解的名字

0

0

关键思想:名字不要有歧义

objList.filter(“age > 18”);

objList.leaveAdults(“age>18”);

给布尔值命名

userIsAuthentiated

0

与使用者的期望相匹配

0

审美

0

0

来比较一下下面的代码 :

0

0

用换行来保持一致和紧凑

用方法来整理不规则的东西

在需要时使用列对齐

把代码分段落

使用一致的风格

0

该写什么样的注释

0

0

不要为了注释而注释

不要给不好的名字加注释——应该把名字改好

记录你的思想

加入“导演评论”

为代码中的瑕疵写注释

给常量加注释

意料中的提问

公布可能的陷阱

“全局观”注释

最后的思考-克服“作者心理阻滞”

0

0

写出言简意赅的注释

简化循环和逻辑

把控制流变得易读

0

条件语句中的参数顺序

0

if/else语句块的顺序

0

?:条件表达式

0

0

避免do/while循环

从函数中提前返回

0

0

最小化嵌套

通过提前返回来减少嵌套

减少循环内的嵌套

总结:

0

拆分超长表达式

0

用作解释的变量

0

0

总结变量

0

0

使用德摩根定理

0

0

0

0

找到更优雅的方式

拆分巨大的语句

优雅的例子:

0

0

变量与可读性

0

减少变量

没有价值的临时变量

0

0

减少中间结果

0

0

减少控制流变量

缩小变量的作用域

0

只写一次的变量更好

0

重新组织代码

0

抽取不相关的子问题

0

纯工具代码

其它用途代码

意料之外的好处

创建大量通用代码

项目专有的功能

简化已有接口

0

一次只做一件事

0

0

任务可以很小

应用“一次只做一件事情”原则

把想法变成代码

0

清楚的描述逻辑

用自然语言描述解决文案

少写代码

0

0

质疑和拆分你的需求

删除没用的代码

熟悉你周边的库

0

0