命名规范
变量
- 使用名词来命名变量,不要使用动词,适当使用缩写。
- 变量名要一眼看得出用途,避免使用无意义的变量名。
拼写错误死全家,不要用拼音来命名变量。- 数组名用复数。
// 正确
const issues: Issue[] = [];
const isLoggedIn: boolean = false;
// 错误
const issuee = [];
const logined = false;
函数
- 函数名使用动词或动宾结构
// 正确
function addIssue(issue: Issue): void {
// ...
}
function submit(): boolean {
// ...
}
// 错误
function add(issue: Issue): void {
// ...
}
function doSubmit(): boolean {
// ...
}
变量名命名习惯
二维数组
自定义的二维数组可以按照以下一种习惯来,但其他API中的二维数组用法可能不一样,因此在实际代码中还是要标注好注释。是 [y][x]
型,还是 [x][y]
型
这两种型,有优缺点,yx型在直观表示上符合逻辑,但写起来要反一下。xy型恰恰相反。
下面是 [y][x]
型的介绍。
arr = [
[1, 2, 3],
[4, 5, 6],
]
假设有上面二维数组
那么循环的时候就这样写
for (let y = 0; y < arr.length; y++) {
for (let x = 0; x < arr[0].length; x++) {
println(arr[y][x]);
}
}
实际上完全可以用增强 for 循环代替等等,上面只是伪代码,意在表示如果必须要用数字循环的时候,第一个中括号的循环变量用 y 表示,第二个用 x 表示。因为 y 是竖着的坐标,x 是横着的坐标
1┼2┼3────────► x
┼
4 5 6
│
▼
y
上面 1 2 3 4 5 6 的位置用坐标表示就可以看成这样。这个横 x 竖 y 的坐标系恰好也能和 javascript 的 canvas 渲染坐标、PyQt5 的 paint 保持理念上的协调。
位置与坐标
优先用 location,不用 position,但尽量不要用简写 loc,location 已经很简单了,再简写就有点像残破一样的感觉了。
location 是多年来的习惯,能一眼就想到坐标相关。po 两个单词一开始还要用小拇指和无名指,还是 lo 可能更顺手一些(强行解释)。
实际上坐标位置可能还分世界坐标位置和渲染坐标位置。
world_location 和 view_location。
在 CannonWar2 由于有摄像头的存在,摄像头能移动和缩放画面,所以就需要区分开来了。world_location 是指世界逻辑坐标中的位置,view_location 指的是在屏幕上渲染绘制的,相对绘制区域左上角的位置坐标。
数值与比率
比率:rate 通常表示 0~1,肯定不是 int 类型。ratio 表示 0~100,可能是个百分数,可能是 int 类型。
目标值与当前值:current、target,这两个单词很不错,可以和别的单词组合命名成变量名。
用简写的情况
- 某个单词非常长并且容易拼错。
- 变量所在的生命周期非常短。
- 该简写已经成为行业共识,即使简写大家也都知道,比如
docs
,表示文档