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

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"
},
相关推荐
蓝枫Amy43 分钟前
鸿蒙应用程序包HAP的开发与使用
harmonyos
别说我什么都不会3 小时前
OpenHarmony源码分析之分布式软总线:trans_service模块(1)/认证通道管理
分布式·嵌入式·harmonyos
全栈若城4 小时前
84.HarmonyOS NEXT 路由导航与页面管理:构建清晰的应用架构
华为·架构·harmonyos·harmonyos next
全栈若城5 小时前
87.HarmonyOS NEXT 单元测试与自动化测试指南:构建可靠的测试体系
华为·单元测试·harmonyos·harmonyos next
没有了遇见5 小时前
HarmonyOS学习ArkUI之线性布局 (Row/Column)
harmonyos·arkts
别说我什么都不会6 小时前
OpenHarmony轻量系统服务管理|鸿蒙业务模型重要概念详解
物联网·嵌入式·harmonyos
枫叶丹47 小时前
【HarmonyOS Next之旅】DevEco Studio使用指南(三)
华为·harmonyos·harmonyos next
个案命题9 小时前
打造流畅的下拉刷新与轮播交互:HarmonyOS手势识别与组件协同实战
华为·harmonyos·鸿蒙
我爱鸿蒙开发9 小时前
一文带你深入了解Stage模型
前端·架构·harmonyos
林钟雪9 小时前
HarmonyNext实战:基于ArkTS的跨平台文件管理系统开发
harmonyos