【HarmonyOS】代码规范参考

【HarmonyOS】代码规范参考

一、通用原则

  1. 直白简单的逻辑代码比起注释来的更有意义;

  2. 空格、换行相关的规范,需使用IDE自带的格式化,快捷键是 Ctrl+Alt+L , 快速对代码进行格式化;

  3. 开发者不能为了快速开发而牺牲了代码的健壮性和可理解性;

  4. 新增代码要完全遵守规范;老代码不符合规范,则在有相关功能时同步修改; 避免魔鬼数字,如if(res.result == 99),99应该用变量赋值代码,如if(res.result == MAX_COUNT);

  5. 关键字、对照值一类的数值或字符串应尽量用常量表示,最大程度降低手误导致的bug;

  6. 代码编写过程中,除buid()外,其它部分代码每行必须要以分号( ; )结束。

  7. 代码逻辑如果复制三次以上,需要提取共有函数,进行复用。【重要】

二、编码规范

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开头为系统权限),建议以应用包名或公司反域名为前缀,防止与系统或其他应用定义的权限重名。

相关推荐
dawn5 小时前
鸿蒙ArkTS中的获取网络数据
华为·harmonyos
桃花键神5 小时前
鸿蒙5.0时代:原生鸿蒙应用市场引领开发者服务新篇章
华为·harmonyos
鸿蒙自习室5 小时前
鸿蒙多线程开发——并发模型对比(Actor与内存共享)
华为·harmonyos
JavaPub-rodert6 小时前
鸿蒙生态崛起:开发者的机遇与挑战
华为·harmonyos
帅比九日8 小时前
【HarmonyOS Next】封装一个网络请求模块
前端·harmonyos
yilylong10 小时前
鸿蒙(Harmony)实现滑块验证码
华为·harmonyos·鸿蒙
baby_hua10 小时前
HarmonyOS第一课——DevEco Studio的使用
华为·harmonyos
HarmonyOS_SDK10 小时前
融合虚拟与现实,AR Engine为用户提供沉浸式交互体验
harmonyos
- 羊羊不超越 -11 小时前
App渠道来源追踪方案全面分析(iOS/Android/鸿蒙)
android·ios·harmonyos
Industio_触觉智能12 小时前
OpenHarmony4.1蓝牙芯片如何适配?触觉智能RK3568主板SBC3568演示
openharmony·rk3568·开源鸿蒙·鸿蒙开发板·触觉智能