鸿蒙开发文档——命名规范文档

1. 单层项目架构

ts 复制代码
ets
├── apis                        //网络层
├── abilitystage                //应用程序页
│   └── AtourAbilityStage.ets
├── base                                                //基础模块
│   └── manager                                                                        // - 基础模块,管理类
├── common                      // 通用模
│   ├── builders                // - 通用组件 @Builder
│   ├── components              // - 通用组件 @Component
│   ├── constants               // - 常量数据
│   ├── images                  // - 图片资源
│   └── utils                   // - 工具类
├── datasource                  // List懒加载datasource目录
├── entryability                // 入口UIAbility
│   └── EntryAbility.ets
├── models                      // 数据模型
│   └── request                 // - 请求数据模型
│   └── response                // - 响应数据模型
│   └── bean                    // - 其他数据模型
│   └── enum                    // - 枚举数据模型
│   └── interface               // - 接口数据模型
│   └── parmas                  // - 参数数据模型
│── pages                       // 页面组件
│   ├── HomePage.ets 
│   └── index.ets
  • 目录名要小写,类名第一个字母大写

  • 所有自定义@Builder放到builders目录下

  • 所有自定义@Component放到component目录下

  • 所有数据实体类放到models目录下

    • 所有的请求数据模型放到request目录下
    • 所有的响应数据模型(后台返回结果)放到response目录下
    • 其他数据模型(和网络无关的)放到bean
    • 和无网络无关的请求参数放到parmas
  • 所有常量类放到constants目录下

2. 三层项目架构

arduino 复制代码
project-root
├── commons                     // 基础层(通用组件、工具类、资源)
│   └── basic                   // - 通用模块
├── features                    // 需求层(业务组件)
│   ├── home                    // - 首页模块
│   └── mine                    // - 我的模块
│   └── hotel                   // - 酒店模块
│   └── order                   // - 订单模块
└── products                    // 入口层(页面)
    └── phone                   // - 设备模块
    └── watch

3. ets文件命名规范

3.1. 命名规则:

  • 类名首字母大写,使用驼峰命名法。
  • 类名应描述类的作用或用途,避免使用过于抽象或模糊的名称
目录名 描述 例如
apis目录 Api作为后缀标识 HotelListApi
abilitystage目录 AbilityStage为后缀标识 AtourAbilityStage
manager目录 Manager作为后缀标识 HomeManager
helper目录 Helper作为后缀标识 HotelHelper
builders目录 Builder作为后缀标识 FeatServiceBuild
components目录 Component作为后缀标识 CouponComponent
constants目录 Constants作为后缀标识 CommonConstants
images目录 Image作为后缀标识 BasicImage
utils目录 Utils作为后缀标识 DownloadUtils
datasource目录 DataSource作为后缀标识 CityListDataSource
entryability目录 EntryAbility作为后缀标识 PageEntryAbility
request目录 Request作为后缀标识 HomeRequest
response目录 Response作为后缀标识 MarketingConfigResponse
bean目录 Bean作为后缀标识 LoginBean
enum目录 Enum作为后缀标识 CityListEnum
interface目录 I开头/able/ible结尾 IHomeView、Runnable
page目录 Page作为后缀标识 HotelDetailPage、HotelListPage
params目录 Params作为后缀 SearchParams

3.2. 导出文件规范:

  • 在每个模块的一级目录下(main/ets/下的目录为一级目录),都必须新建一个名为 index.ets 的文件,这个文件的作用是把该目录下所有需要导出的组件统一导出,方便其他地方引用
  • 若本目录下没有任何导出文件,可无index.ets,如 pages目录
  • 在项目的根目录下,也要有一个名为 Index.ets 的文件,用来导出所有模块的 index.ets 文件。这样,整个项目的所有模块和组件就都能通过这个文件来统一管理和引用。

4. 属性命名规范

  • 若不涉及数据更新,只是简单的展示,可直接使用「interface」,变量不需要初始化
  • 若涉及数据更新,推荐使用「class」,变量需要初始化
  • 所有的名字不要用""、''来修饰,直接使用名字加类型,如下面代码
typescript 复制代码
export interface LoginInfo {
  cookString: string | null;
  encryptedOpenId: string | null;
  personalInfoResponse: LoginData;
  oid: string | null;
  thirdToken: string | null;
  token: string;
  userKey: string;
  userMarketFlag: boolean
}
  • 使用时若声明全局对象,需要进行初始化,设置为null即可
java 复制代码
  @State userInfo: LoginInfo | null = null

5. 方法命名规范

5.1. 方法命名

  • 方法名应该是动词或动词短语,简洁明了,符合功能。

  • 方法名使用驼峰命名法,首字母小写。

  • 用于UI更新的

    • updateHotelList():更新酒店列表的方法
    • showErrorMessage():显示错误消息的方法
  • 用于数据处理的

    • processOrderData():处理订单数据的方法
    • fetchHotelDetails():获取酒店详情的方法
  • 用于事件响应的

    • onLoginSuccess():登录成功后的回调方法
    • onOrderSubmitted():订单提交后的回调方法

5.2. 参数命名

  • 参数名应该具描述性,避免使用ab等无意义的命名。

    • fetchHotelDetails(hotelId: number):获取酒店详情的方法,参数为hotelId
    • submitOrder(order: OrderModel):提交订单的方法,参数为order

6. 常量命名规范

6.1. 常量命名

  • 常量使用全大写字母,并用下划线连接单词。

  • 常量类命名使用Constants作为后缀。

    • BASE_URL:基础URL常量
    • TIMEOUT_DURATION:请求超时时间常量
    • USER_ID:用户ID常量
    • DEFAULT_PAGE_SIZE:默认分页大小

6.2. 枚举类命名

  • 枚举类使用Enum后缀,枚举项通常用全大写。

    • OrderStatusEnum:订单状态枚举类
    • PaymentMethodEnum:支付方式枚举类

7. color资源

  • 一般公司颜色资源都是固定的那几套

  • color资源是以#AARRGGBB为格式,写入module对应下的colors.xml中,所以使用命名可以使用格式

    • color_RRGGBB_透明度 (透明度可不加)

      • 如:
json 复制代码
{
  "name": "color_B59E6D_alpha_6",
  "value": "#0FB59E6D"
}
  • 或 颜色_alpha_透明度

    • 如:
json 复制代码
{
  "name": "black_alpha_10",
  "value": "#1A000000"
},
相关推荐
遇到困难睡大觉哈哈11 小时前
HarmonyOS 公共事件机制介绍以及多进程之间的通信实现(9000字详解)
华为·harmonyos
幽蓝计划14 小时前
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
开发语言·harmonyos
伍哥的传说14 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
Georgewu17 小时前
【HarmonyOS】应用开发拖拽功能详解
harmonyos
塞尔维亚大汉17 小时前
鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程
源码·harmonyos
kumalab19 小时前
HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
华为·harmonyos
别说我什么都不会20 小时前
【OpenHarmony】鸿蒙开发之xml2jsDemo
harmonyos
HarmonyOS_SDK1 天前
HarmonyOS免密认证方案 助力应用登录安全升级
harmonyos
zhanshuo1 天前
鸿蒙操作系统核心特性解析:从分布式架构到高效开发的全景技术图谱
harmonyos
塞尔维亚大汉1 天前
鸿蒙内核源码分析(编译过程篇) | 简单案例窥视编译全过程
源码·harmonyos