00: 算法面试中的 Coding Quality
Coding Style:
-
function keyword argumen 和定义 default parameter value 的时候
=
两边不加空格def complex(real, imag=0.0): return Magic(r=real, i=imag)
-
sequence slicing
:
两边正常情况不加空格ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[lower:upper]
, 如果两边有复杂运算可以加空格也可以不加,ham[lower+offset : upper+offset]
-
花括号
}
和圆括号(
之间加空格 (Java),if, for
和圆括号之间加空格 -
逗号、分号后面加空格
-
用空行分割不同的逻辑块
Readability:
-
使用易理解的变量命名 (1-2 个单词作为变量名称)
-
确保一个函数内部不超过 3 层缩进 (indention)
-
把 function 中的独立功能模块拆分为 sub-function 减少入口函数的代码量
-
不在代码中用 magic number
Bug Free:
-
不管有没有可能出问题,都要对入口函数的参数进行边界检测和异常处理
-
访问下标的时候,首先确保下标不会越界
-
访问一个对象的属性或者方法的时候,首先确保该对象不为空
-
尽量不用全局变量