ArkTS语言OpenHarmony/HarmonyOS项目代码规范

911 阅读3分钟

ArkTS语言OpenHarmony/HarmonyOS项目代码规范

作者:坚果

团队:坚果派

公众号:“大前端之旅”

润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领100+队员完成Pr的提交合入。 欢迎通过主页或者私信联系我,加入坚果派,一起学习OpenHarmony/HarmonyO应用开发。

1.所有文件,包括自动生成的编译文件package.json都要格式化(IDE快捷键Ctrl+Alt+L);

2.函数命名,C++大驼峰,TS、JS小驼峰,函数命名注意动宾结构;

3.静态常量需使用全大写,文件目录使用全小写(不建议包含特殊字符如"-"和"_"等);

4.类名使用大驼峰,函数的参数、全局变量和局部变量都使用小驼峰,命名要规范化,见名知意;

5.if语句后必须跟“{”,哪怕只有一行代码;

6.有break或return的条件,先break或return再走其他的逻辑;

7.条件判断,当一个分支达成条件时及时返回,不需要再走其他分支;

8.代码中避免出现魔鬼数字,需补上注释,或者用符合语义的名词常量代替,如下:

  // One minute has 60 seconds.
  let time = 60
​
  const ONE_MINUTE = 60
  let time = ONE_MINUTE

9.字符串拼接使用模板字符串;

10.组件使用,除了宽高属性可以在一行,其他的属性必须换行;

11.TS、JS中关于是否添加";"的问题,风格要统一,建议添加";";

12.字符串和图片资源等的使用,支持"r"使用的,全部使用"�"使用的,全部使用"r"引用;

13.新增文件注意开源协议、版权检查;

14.截图要使用真机效果图;

15.readme中使用“.”,不要用“、”,检查错别字;

16.异步方法中需要返回方法的返回值,不用声明变量,直接return,如下:

  return await this.mediaTest.getFileAssets(fetchOp)

17.方法中的参数需要类型声明;

18.import 文件顺序,同类型放一起;

19.string.json中description要写简要描述,zh下要用中文;

20.TS、JS语言缩进为2格,C++语言缩进为4格;

21.涉及应用截图时,图片不能包含人物、关键信息、网络等有侵权风险的资源;

22.工程中不要配置签名信息,禁止上传local.properties和package-lock.json等系统自动生成的文件;

23.规范日志格式,统一用[Nust_包名]开头,日志打印需要使用Hilog接口,建议封装单独的Logger类 ,示例如下:

import hilog from '@ohos.hilog'export class Logger {
  static PREFIX: string = '[Nust_Weather]'
  static DOMAIN: number = 0xFF00
  static FORMAT: string = '%{public}s, %{public}s'
​
  static debug(...args: any[]) {
    hilog.debug(Logger.DOMAIN, Logger.PREFIX, Logger.FORMAT, args)
  }
​
  static info(...args: any[]) {
    hilog.info(Logger.DOMAIN, Logger.PREFIX, Logger.FORMAT, args)
  }
​
  static warn(...args: any[]) {
    hilog.warn(Logger.DOMAIN, Logger.PREFIX, Logger.FORMAT, args)
  }
​
  static error(...args: any[]) {
    hilog.error(Logger.DOMAIN, Logger.PREFIX, Logger.FORMAT, args)
  }
}

24.注释“//”后要加一个空格;如果注释跟在代码后面,则“//”前要加一个空格;

  // 正确示例
  let a = 10let a = 10 // 正确示例

25.代码中避免出现中文字符,要使用资源代替,符合国际化开发标准;

26应用包名统一使用“com.nust.xxx”,“xxx”为特性名称;