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

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"
},
相关推荐
搜狐技术产品小编20231 小时前
搜狐新闻直播间适配HarmonyOs实现点赞动画
华为·harmonyos
zhanshuo4 小时前
ArkUI 玩转水平滑动视图:超全实战教程与项目应用解析
harmonyos·arkui
zhanshuo4 小时前
ArkUI Canvas 实战:快速绘制柱状图图表组件
harmonyos·arkui
zhanshuo18 小时前
手把手教你用 ArkUI 写出高性能分页列表:List + onScroll 实战解析
harmonyos
zhanshuo18 小时前
深入解析 ArkUI 触摸事件机制:从点击到滑动的开发全流程
harmonyos
i仙银1 天前
鸿蒙沙箱浏览器 - SandboxFinder
app·harmonyos
Georgewu1 天前
【HarmonyOS】鸿蒙应用开发中常用的三方库介绍和使用示例
harmonyos
AORO20251 天前
遨游三防平板|国产芯片鸿蒙系统单北斗三防平板,安全高效
5g·安全·电脑·制造·信息与通信·harmonyos
HarmonyOS小助手1 天前
“秒开”时代,HarmonyOS预加载让应用启动快如闪电
harmonyos·鸿蒙·鸿蒙生态