HarmonyOS 鸿蒙Next 项目级别的注释规范

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 项目级别的注释规范

HarmonyOS Next 项目级别的注释规范

程序员箴言

我最讨厌世界上的两种人:

  1. 第一种是不写注释的人
  2. 第二种是让我写注释的人

前言

随着HarmonyOS NEXT的发展加快,不少的公司已经陆续加大了资源来开发软件项目。那么伴随项目的发展,项目团队也需要按照一定的规范来编写项目注释或者代码的说明文档。

我认为编写项目注释或者代码的说明文档最小的代价就是 直接通过编写注释的方式来实现代码的使用文档。

目前主流的IDE都会支持 jsDoc 或者 TypeDoc。 我们按照规定的格式编写代码注释,便能获得以下好处:

当我们想要调用 全局函数 px2vp时,提示工具会很清晰的给我展现出相关的使用说明。另外,如果是编写一个工具类库,还能基于相关工具生成好看的说明文档。

/**
 * 一个工具人类
 *
 * [@since](/user/since) 11
 */
export class Person {
  /**
   * 年龄
   */
  age: number = 18

  /**
   *
   * 计算两个年龄相加的和
   * [@param](/user/param) {number} n1 年龄1
   * [@param](/user/param) {number} n2 年龄2
   * [@returns](/user/returns) {number} 总年龄
   */
  calcAge(n1: number, n2: number) {
    return n1 + n2
  }
}

DevEco Studio 自带的语法提示

jsDoc提供了对 常量、类、函数、接口、枚举等的修饰符,一般情况下不需要主动添加,因为 DevEco Studio 可以自动识别

枚举

并且,在你引入代码提示的时候,也可以直观的观察这里来判断它是什么类型

常见代码提示修饰符

如图,如果我们想要实现上图右侧的一些语法提示功能,那么就需要自己编写合适的代码提示修饰符了

通过编写一个类来演示,首先我们提供以下基本结构

export class Person {
  age: number = 18

  protected static async calcAge4(n1: number, n2: number) {
    return n1 + n2
  }

  calcAge1(n1: number, n2: number) {
    return n1 + n2
  }

  async calcAge2(n1: number, n2: number) {
    return n1 + n2
  }

  protected async calcAge3(n1: number, n2: number) {
    return n1 + n2
  }
}

快速生成特定的注释

如我们想要给 Person添加一些备注说明,那么我们不能使用以下这种注释

// 这个单行注释不行

/* 这个普通的多行注释也不行 */

我们只能使用这种

/**
*  这个是OK的
*/

你可以在想要修饰的代码上方 输入 /** + tab 开快速生成

在带有参数的函数上方,它会自动添加参数的修饰符,包括返回值

@param@returns

@param 修饰函数的形参

@returns 修饰返回值

@async

@async 修饰 异步函数

@public

@public 公开

@protected 受保护

@private 私有

@static

其他的jsDoc规范的修饰符总览

修饰符 含义
@abstract 表示一个抽象的成员,不能被直接实例化。
@access 用于指定成员的访问级别。
@alias 定义一个别名。
@async 表示一个异步函数。
@augments 指示一个类继承自另一个类。
@author 作者信息。
@borrows 表示从另一个模块借用的函数或属性。
@callback 表示一个回调函数。
@class 用于定义一个类。
@classdesc 类的描述。
@constant 表示一个常量。
@constructs 指示一个函数是构造函数。
@copyright 版权信息。
@default 默认值。
@deprecated 表示已弃用的成员。
@description 描述信息。
@enum 定义一个枚举。
@event 表示一个事件。
@example 示例代码。
@exports 用于指定要导出的成员。
@external 表示外部模块的成员。
@file 文件信息。
@fires 表示触发的事件。
@function 定义一个函数。
@generator 表示一个生成器函数。
@global 表示全局成员。
@hideconstructor 隐藏构造函数。
@ignore 表示忽略的部分。
@implements 表示实现的接口。
@inheritdoc 继承文档说明。
@inner 内部成员。
@instance 实例成员。
@interface 定义一个接口。
@kind 类型种类。
@lends 将属性借给另一个对象。
@license 许可证信息。
@listens 表示监听的事件。
@member 成员。
@memberof 属于某个对象的成员。
@mixes 混合多个类的特性。
@mixin 定义一个混入。
@module 定义一个模块。
@name 名称。
@namespace 命名空间。
@override 表示重写的成员。
@package 包信息。
@param 函数参数说明。
@private 私有成员。
@property 属性。
@protected 受保护的成员。
@public 公共成员。
@readonly 只读属性。
@requires 表示依赖的模块。
@returns 函数返回值说明。
@see 参考信息。
@since 从某个版本开始。
@static 静态成员。
@summary 摘要信息。
@this 当前对象。
@throws 抛出的异常说明。
@todo 待办事项。
@tutorial 教程信息。
@type 类型说明。
@typedef 类型定义。
@variation 变化情况。
@version 版本信息。
@yields 生成的值说明。

DevEco Studio 支持自定义修饰符

DevEco Studio 是支持自定义修饰符的,比如

虽然是可以随便自己设定,但是为了团队开发保持一致,还是建议按照一定的规范来编写。如 遵循 上述jsDoc的一些规范

DevEco Studio 快速生成说明文档

DevEco Studio NEXT Beta1(5.0.3.814)

  • 当前支持对工程或目录下.ets/.ts/.js/.md格式文件生成ArkTSDoc文档。
  • 文件中export的变量、方法、接口、类等将生成相应的ArkTSDoc文档,未export的对象不支持生成。
  • 若选择对工程/目录整体导出ArkTSDoc文档,生成后的ArkTSDoc文档目录和原目录结构一致。

参考链接

  1. [@use JSDoc](https://jsdoc.app/)
  2. 生成ArkTSDoc文档

更多关于HarmonyOS 鸿蒙Next 项目级别的注释规范的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS 鸿蒙Next 项目级别的注释规范主要涉及以下几个方面:

  1. 文件头注释:每个文件开头应包含文件头注释,内容包括文件名称、作者、创建日期、修改记录、文件描述等。格式如下:

    /**
     * 文件名称: Example.h
     * 作者: 张三
     * 创建日期: 2023-10-01
     * 修改记录:
     *   2023-10-05 李四 修改了XXX功能
     * 文件描述: 本文件用于实现XXX功能
     */
  2. 类/接口注释:每个类或接口定义前应添加注释,描述其功能、使用场景、注意事项等。格式如下:

    /**
     * 类名: ExampleClass
     * 功能描述: 该类用于实现XXX功能
     * 使用场景: 适用于XXX场景
     * 注意事项: 使用时需注意XXX
     */
  3. 方法/函数注释:每个方法或函数定义前应添加注释,描述其功能、参数、返回值、异常等。格式如下:

    /**
     * 方法名: exampleMethod
     * 功能描述: 该方法用于实现XXX功能
     * 参数: 
     *   param1: 参数1的描述
     *   param2: 参数2的描述
     * 返回值: 返回值的描述
     * 异常: 可能抛出的异常描述
     */
  4. 属性/变量注释:每个属性或变量定义前应添加注释,描述其用途、取值范围、默认值等。格式如下:

    /**
     * 属性名: exampleProperty
     * 用途: 该属性用于存储XXX
     * 取值范围: 0-100
     * 默认值: 0
     */
  5. 行内注释:在代码行内添加注释,解释复杂逻辑或关键步骤。格式如下:

    int result = a + b; // 计算a与b的和
  6. TODO/FIXME注释:标记待完成或待修复的代码。格式如下:

    // TODO: 需要实现XXX功能
    // FIXME: 需要修复XXX问题
  7. 版本控制注释:在代码中添加版本控制信息,记录修改内容和版本号。格式如下:

    // 版本: 1.0.0
    // 修改内容: 初始版本
  8. 模块注释:在模块或功能块前添加注释,描述模块的功能、依赖关系等。格式如下:

    /**
     * 模块名: ExampleModule
     * 功能描述: 该模块用于实现XXX功能
     * 依赖模块: ModuleA, ModuleB
     */

以上是HarmonyOS 鸿蒙Next 项目级别的注释规范,确保代码的可读性和可维护性。

更多关于HarmonyOS 鸿蒙Next 项目级别的注释规范的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next项目中,注释规范应遵循以下原则:

  1. 文件头注释:每个文件开头应包含文件描述、作者、创建日期、修改记录等信息,格式如下:

    /**
     * 文件描述:简要说明文件功能
     * 作者:开发者姓名
     * 创建日期:YYYY-MM-DD
     * 修改记录:
     *   YYYY-MM-DD 修改人 修改内容
     */
  2. 类/接口注释:每个类或接口前应包含描述、作者、版本等信息,格式如下:

    /**
     * 类描述:简要说明类功能
     * 作者:开发者姓名
     * 版本:1.0
     */
  3. 方法注释:每个方法前应包含描述、参数、返回值、异常等信息,格式如下:

    /**
     * 方法描述:简要说明方法功能
     * @param 参数名 参数描述
     * @return 返回值描述
     * @throws 异常类型 异常描述
     */
  4. 行内注释:在代码行后或代码块上方添加简短说明,格式如下:

    int count = 0; // 初始化计数器
  5. TODO/FIXME注释:标记待完成或需修复的代码,格式如下:

    // TODO: 待完成的功能
    // FIXME: 需修复的问题

遵循这些规范,确保代码可读性和可维护性。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!