© 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 文件内部使用的functionproperty_开头。
  • [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字符以内。