【HarmonyOS】代码规范参考
一、通用原则
-
直白简单的逻辑代码比起注释来的更有意义;
-
空格、换行相关的规范,需使用IDE自带的格式化,快捷键是 Ctrl+Alt+L , 快速对代码进行格式化;
-
开发者不能为了快速开发而牺牲了代码的健壮性和可理解性;
-
新增代码要完全遵守规范;老代码不符合规范,则在有相关功能时同步修改; 避免魔鬼数字,如if(res.result == 99),99应该用变量赋值代码,如if(res.result == MAX_COUNT);
-
关键字、对照值一类的数值或字符串应尽量用常量表示,最大程度降低手误导致的bug;
-
代码编写过程中,除buid()外,其它部分代码每行必须要以分号( ; )结束。
-
代码逻辑如果复制三次以上,需要提取共有函数,进行复用。【重要】
二、编码规范
1.命名
1.1 命名需要富有含义,尽量能达到见名知义的程度,避免无意义的命名。禁止使用系统关键字,例如: onClick,padding,position,direction等
1.2 变量名详细程度,根据变量作用范围而定,成员变量 > 大函数的局部变量 > 小函数的局部变量,作用域越大,变量名则应更详细。
例如对于一个类型的变量,成员变量命名越详细越好,如命名为updateUserInfo ,小函数的局部变量可以简单命名为info。
1.3 类名
采用大驼峰命名法,尽量避免缩写。Manager、Module、Page等常见类型应添加对应的后缀标识。
类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。
1.4 方法名
- 采用小驼峰命名法,方法名通常是动词或动词短语。布尔类型函数使用谓语动词为前缀。
如initXX()、displayXX()、isXX()。 - 回调类方法,添加On前缀,如onRequestFaild(MobileErrorCode,mobileErrorCode)
1.5 变量名
- 采用小驼峰命名法,常量变量命名,枚举变量名模式为大写,如CONSTANT_CASE。
- 前缀后面,是由表意性强的一个单词或多个单词组成的名字。
- 最后,可以根据情况添加类型、量词后缀
1.6 命名注意事项
- 命名应该使用正确的英文拼写,除常用习惯缩写外应该尽量少用缩写避免混淆,避免使用拼音命名
- 避免使用否定的布尔类型变量名,布尔类型变量名应该加上表达含义的前缀
2.注释 - 不言自明的方法、变量不需要添加注释。
注释主要是为了说明变量名、方法名无法阐述的含义,不要直接翻译。
如果命名足够好,可以不写注释。
3.代码数量限制
3.1 一个函数体不要超过80行
3.2 函数中大括号不要超过4层
3.3 三行以上(包括三行)重复三次(包括三次)以上,或五行以上(包括五行)重复两次(包括两次)以上,代码必须另写出一个函数;如果有一两个地方不同,要考虑使用参数进行概括,而使之成为共用的一段代码
三、应用权限使用原则
(1) 应用申请的权限,都必须有明确、合理的使用场景和功能说明,确保用户能够清晰明了地知道申请权限的目的、场景、用途;禁止诱导、误导用户授权;应用使用权限必须与申请所述一致。
(2) 应用权限申请遵循最小化原则,只申请业务功能所必要的权限,禁止申请不必要的权限。
(3) 应用在首次启动时,避免频繁弹窗申请多个敏感权限;敏感权限须在用户使用对应业务功能时动态申请。
(4) 用户拒绝授予某个权限时,与此权限无关的其他业务功能应能正常使用,不能影响应用的正常注册或登录。
(5) 业务功能所需要的权限被用户拒绝且禁止后不再提示,当用户主动触发使用此业务功能或为实现业务功能所必须时,应用程序可通过界面内文字引导,让用户主动到"系统设置"中授权。
(6) 非系统应用自定义权限名,禁止使用系统权限名前缀(如:以ohos开头为系统权限),建议以应用包名或公司反域名为前缀,防止与系统或其他应用定义的权限重名。