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

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"
},
相关推荐
lqj_本人7 小时前
鸿蒙OS&UniApp PWA开发实践:打造跨平台渐进式应用#三方框架 #Uniapp
华为·uni-app·harmonyos
lqj_本人7 小时前
鸿蒙OS&UniApp集成WebAssembly实现高性能计算:从入门到实践#三方框架 #Uniapp
uni-app·harmonyos·wasm
二流小码农8 小时前
鸿蒙开发:hvigorw,一个你不得不去了解的神器
android·ios·harmonyos
lqj_本人8 小时前
鸿蒙OS&UniApp声纹识别与语音验证:打造安全可靠的跨平台语音应用#三方框架 #Uniapp
华为·uni-app·harmonyos
lqj_本人9 小时前
鸿蒙OS&UniApp内存管理优化实战:从入门到精通#三方框架 #Uniapp
华为·uni-app·harmonyos
SuperHeroWu710 小时前
【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解
游戏·华为·harmonyos·laya·鸿蒙构建
lqj_本人11 小时前
鸿蒙OS&UniApp开发跨平台AR扫描识别应用:HarmonyOS实践指南#三方框架 #Uniapp
uni-app·ar·harmonyos
lqj_本人12 小时前
鸿蒙OS&基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
uni-app·webrtc·harmonyos
上海张律师13 小时前
如何导出Excel文件 -- excel_hm介绍 ##三方SDK##
harmonyos
lqj_本人15 小时前
鸿蒙OS&UniApp离线优先数据同步实战:打造无缝衔接的鸿蒙应用体验#三方框架 #Uniapp
华为·uni-app·harmonyos