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

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"
},
相关推荐
鸿蒙布道师1 小时前
鸿蒙NEXT开发动画案例2
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei
HMS Core7 小时前
【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
华为·pdf·harmonyos
二蛋和他的大花8 小时前
HarmonyOS运动开发:如何集成百度地图SDK、运动跟随与运动公里数记录
华为·harmonyos
SuperHeroWu78 小时前
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
华为·harmonyos·鸿蒙·自定义组件·页面·生命周期函数
HarmonyOS小助手9 小时前
Flutter适配HarmonyOS 5开发知识地图
harmonyos·鸿蒙·harmonyos next·鸿蒙flutter
搞瓶可乐10 小时前
鸿蒙ArkTs实战之截图保存图片到相册,详细教程,不使用SaveButton的方法,附上源码和效果图
华为·harmonyos·arkts·保存图片·操作沙箱·鸿蒙解决方案·媒体操作
__Benco11 小时前
OpenHarmony平台驱动开发(九),MIPI DSI
人工智能·驱动开发·harmonyos
深海的鲸同学 luvi12 小时前
【HarmonyOS 5】App Linking 应用间跳转详解
华为·harmonyos·applinking·应用间跳转
Bruce_Liuxiaowei12 小时前
HarmonyOS NEXT深度解析:自研框架ArkUI-X的技术革命与跨平台实践
华为·harmonyos
仓颉编程语言1 天前
南京大学OpenHarmony技术俱乐部正式揭牌 仓颉编程语言引领生态创新
harmonyos·鸿蒙·仓颉编程语言