松饼 QML 代码规范
© 2017 - 2018 Rolevax,保留所有权利。
元规范
- [MT-1] 严格遵守本规范。极少数情况下,如果规范导致问题,可暂时打破规范。
- [MT-2] 本规范仅约束新增的代码。
- [MT-3] 本规范可能随时更新,更新随 Gitter 群聊内通知生效。
通用
- [GN-1] 代码可维护性比性能重要,除非性能影响实际体验。
- [GN-2] 空格、换行、大括号的使用方式与现有代码保持一致。
注释
- [CM-1] 通过自解释性代码避免注释。
- [CM-2] 仅使用
//
注释,禁用/* */
注释。 - [CM-3] 删除代码时直接删除,禁止通过注释屏蔽代码。
命名
- [NM-1] 一般情况下,基于英文命名。 日麻术语基于日文罗马音, 国标术语基于拼音。 人名、校名基于本国语言拼写方式。
- [NM-2] 大小写方式参照 Qt 官方范例。
- [NM-3] 仅在单个 QML 文件内部使用的
function
与property
以_
开头。 - [NM-4] 全大写的单词在驼峰记法中当作普通单词处理
- 不要:
HTTP
- 要:
Http
(大驼峰),http
(小驼峰)
- 不要:
- [NM-5] 鼓励使用短命名与常见的缩写。
- [NM-6] 命名需带有自解释性,禁止使用无意义命名。
语句风格
- [SM-1] 禁止将多条语句挤进一行。
- [SM-2]
if
语句体结尾包含必经的break
,continue
,return
时, 除非有利于对齐,否则不接else
。 - [SM-3] 用
// fallthrough
标注switch
中的 fall-through - [SM-4] 避免超长函数定义和超深缩进结构。
表达式风格
- [EX-1] 避免 Javascript 的各种 WTF 特性,例如魔性的真值表。
- [EX-2] 禁用 Yoda 大法。(例如
3 === b
) - [EX-3] 禁止依赖
&&
与||
之间的优先级。- 不要:
a && b || c
- 要:
(a && b) || c
- 不要:
其它
- [OT-1] 单行字符上限110,鼓励截到80字符以内。