文章目录

每日一句正能量
“允许别人做别人,允许自己做自己,求同存异是最佳的相处之道。”
不试图改造他人,也不为迎合他人而扭曲自己。求同存异不是妥协,而是清醒地知道:不同才是常态,而共同之处是珍贵的连接。
摘要
摘要:在 HarmonyOS 应用开发中,代码规范与工程化配置往往被开发者忽视,直到项目膨胀、团队协作困难时才追悔莫及。本文将从 ArkTS 代码规范、Git 提交约束、模块化管理、CI/CD 自动化流水线到代码审查清单,系统性地构建一套适用于 HarmonyOS 工程的完整工程化方案,帮助开发者实现"零配置上手、一致性体验、可度量质量"的目标。
一、引言:为什么工程化配置是团队效能的倍增器
在 HarmonyOS 开发实践中,许多团队面临以下痛点:
- 代码风格不统一:不同开发者缩进、命名、注释习惯各异,代码库逐渐变成"风格大杂烩"
- 提交记录混乱:
fix bug、update、111等无意义提交信息充斥历史记录,回溯问题困难 - 隐性 Bug 频发:未使用的变量、类型隐式转换、魔法数字等问题在 Code Review 时才暴露
- 构建环境不一致:本地能跑、CI 报错,环境差异导致构建失败率居高不下
- Review 效率低下:人工审查重复性高,核心逻辑审查时间被格式问题挤占
工程化配置的本质,是将个人最佳实践固化为团队标准,通过工具链自动化执行,让开发者专注于业务逻辑而非格式争论。本文基于 HarmonyOS API 12+ 和 DevEco Studio 5.0 环境,提供一套可直接落地的配置方案。
二、ArkTS 代码规范:ESLint + Prettier 双剑合璧
2.1 配置 ESLint 规则集
HarmonyOS 工程默认使用 ArkTS(TypeScript 超集),ESLint 是代码静态分析的核心工具。建议在工程根目录创建 eslint.config.mjs:
// eslint.config.mjs
import js from '@eslint/js';
import tsParser from '@typescript-eslint/parser';
import tsPlugin from '@typescript-eslint/eslint-plugin';
export default [
js.configs.recommended,
{
files: ['**/*.ets', '**/*.ts'],
languageOptions: {
parser: tsParser,
parserOptions: {
project: './tsconfig.json',
sourceType: 'module',
},
},
plugins: {
'@typescript-eslint': tsPlugin,
},
rules: {
// ArkTS 严格类型检查
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/explicit-function-return-type': 'warn',
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
// 代码风格
'indent': ['error', 2],
'quotes': ['error', 'single'],
'semi': ['error', 'always'],
'max-len': ['warn', { code: 120 }],
// HarmonyOS 最佳实践
'no-console': ['warn', { allow: ['error', 'info'] }],
'prefer-const': 'error',
'no-var': 'error',
},
},
];
2.2 Prettier 格式化配置
Prettier 负责代码格式化的"最后一公里",与 ESLint 形成互补。创建 .prettierrc:
{
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"quoteProps": "as-needed",
"trailingComma": "all",
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf",
"overrides": [
{
"files": "*.ets",
"options": {
"parser": "typescript"
}
}
]
}
2.3 DevEco Studio 集成
在 DevEco Studio 中配置自动格式化:
- Settings → Languages & Frameworks → Prettier:启用"On Save"和"On Reformat"
- Settings → Editor → Inspections:启用 ESLint 实时检查
- 配置快捷键:
Ctrl+Alt+L(格式化)、Ctrl+Alt+O(优化导入)
配图:代码格式化效果对比

最佳实践:建议在团队内统一 IDE 配置,通过
.idea/codeStyles目录共享代码风格文件,确保所有成员格式化结果完全一致。
三、Git 提交规范:Husky + lint-staged + Commitlint 三重门禁
3.1 提交信息规范(Conventional Commits)
采用 Angular 团队的提交规范,格式为:
<type>(<scope>): <subject>
<body>
<footer>
常用类型定义:
| 类型 | 说明 | 示例 |
|---|---|---|
feat | 新功能 | feat(home): 新增首页轮播图组件 |
fix | 修复问题 | fix(network): 修复弱网环境下请求超时 |
docs | 文档更新 | docs(readme): 更新构建说明 |
style | 代码格式 | style(format): 统一缩进为2空格 |
refactor | 重构 | refactor(store): 抽离全局状态管理 |
perf | 性能优化 | perf(list): 优化长列表渲染性能 |
test | 测试相关 | test(unit): 补充网络模块单元测试 |
chore | 构建/工具 | chore(ci): 配置 GitHub Actions |
3.2 安装与配置 Husky
# 初始化 Husky
npx husky-init && npm install
# 配置 pre-commit 钩子
npx husky add .husky/pre-commit "npx lint-staged"
# 配置 commit-msg 钩子
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}'
lint-staged 配置(package.json):
{
"lint-staged": {
"*.{ets,ts,js}": [
"eslint --fix",
"prettier --write",
"git add"
]
}
}
commitlint 配置(commitlint.config.js):
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'chore']],
'scope-empty': [0],
'subject-full-stop': [0],
'subject-case': [0],
},
};
3.3 提交流程自动化
配图:Git 提交规范自动化流程

实战技巧:对于已有项目引入 Husky 时,建议先执行
npx husky install并确认所有团队成员本地 Node.js 版本一致(推荐>=18),避免钩子脚本权限问题。
四、模块化管理与依赖规范
4.1 工程结构最佳实践
HarmonyOS 工程推荐采用模块化架构:
MyApplication/
├── entry/ # 入口模块
│ ├── src/main/ets/
│ │ ├── entryability/ # Ability 生命周期管理
│ │ ├── pages/ # 页面组件
│ │ └── entrybackupability/ # 备份恢复
│ └── oh-package.json5
├── features/ # 特性模块
│ ├── feature_login/
│ ├── feature_home/
│ └── feature_mine/
├── commons/ # 公共模块
│ ├── common_ui/ # 公共 UI 组件库
│ ├── common_net/ # 网络请求封装
│ └── common_utils/ # 工具函数
└── oh-package.json5 # 根依赖管理
4.2 ohpm 依赖管理规范
// oh-package.json5
{
"name": "my-harmony-app",
"version": "1.2.0",
"description": "HarmonyOS 示例应用",
"dependencies": {
"@ohos/network": "^1.0.5",
"@ohos/crypto-js": "4.2.0",
"@types/node": "20.11.0"
},
"devDependencies": {
"eslint": "^8.57.0",
"prettier": "^3.2.5",
"husky": "^9.0.0",
"lint-staged": "^15.2.0"
},
"scripts": {
"lint": "eslint . --ext .ets,.ts",
"lint:fix": "eslint . --ext .ets,.ts --fix",
"format": "prettier --write \"**/*.{ets,ts,json}\"",
"prepare": "husky"
}
}
依赖管理原则:
- 生产依赖使用
^允许补丁更新,核心库锁定精确版本- 定期执行
ohpm outdated检查过期依赖- 第三方库优先选择官方或高 Star 仓库,避免引入未经审计的代码
五、CI/CD 流水线:自动化构建与质量门禁
5.1 GitHub Actions 配置示例
# .github/workflows/harmonyos-ci.yml
name: HarmonyOS CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint check
run: npm run lint
- name: Format check
run: npx prettier --check "**/*.{ets,ts,json}"
- name: Setup HarmonyOS SDK
uses: harmonyos/setup-sdk@v1
with:
api-level: 12
- name: Build HAP
run: hvigor build --mode release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: hap-release
path: entry/build/default/outputs/**/*.hap
5.2 流水线架构设计
配图:HarmonyOS CI/CD 自动化流水线架构

5.3 质量门禁策略
| 阶段 | 检查项 | 失败策略 |
|---|---|---|
| 代码检出 | 分支命名规范 | 警告 |
| 依赖安装 | ohpm audit 安全扫描 | 阻断 |
| 代码检查 | ESLint 0 错误、Prettier 格式一致 | 阻断 |
| 单元测试 | 覆盖率 ≥ 60% | 阻断 |
| 构建阶段 | hvigor 构建成功 | 阻断 |
| 静态扫描 | CodeQL / SonarQube 无高危漏洞 | 阻断 |
| 产物签名 | HAP 签名验证通过 | 阻断 |
六、代码审查清单:从人工到自动化的双重保障
6.1 自动化检查覆盖
通过 ESLint + Prettier + Husky 的组合,以下问题可在提交前自动拦截:
- 代码格式不一致
- 未使用的变量和导入
- 类型隐式转换
- 缺少分号或引号不统一
- 提交信息格式错误
6.2 人工审查关注点
自动化无法替代的领域,需要人工 Code Review 重点关注:
配图:HarmonyOS 代码审查 Checklist

6.3 Review 效率提升技巧
- 小步快跑:单次 PR 控制在 300 行以内,审查时间不超过 30 分钟
- 按模块分配 Reviewer:UI 改动分配给设计师,业务逻辑分配给对应模块负责人
- 使用 DevEco Studio 的 Diff 工具:
VCS → Git → Compare with Branch可视化对比 - 建立 Review 文化:鼓励提问而非指责,"这里为什么要用
@ObjectLink而非@Prop?“优于"这里写错了”
七、工程化配置总览
将以上所有配置整合,HarmonyOS 工程化配置的整体架构如下:
配图:HarmonyOS 工程化配置架构图

八、总结
本文从代码规范、提交约束、模块管理、CI/CD 流水线到代码审查,构建了一套完整的 HarmonyOS 工程化配置方案。核心收益包括:
- 一致性:全团队代码风格统一,降低阅读成本
- 自动化:80% 的规范问题在提交前自动修复,人工 Review 聚焦业务逻辑
- 可度量:通过 CI 门禁和覆盖率报告,量化代码质量
- 可维护:规范的提交记录和模块结构,使项目长期演进成为可能
转载自:https://blog.csdn.net/u014727709/article/details/163174455
欢迎 👍点赞✍评论⭐收藏,欢迎指正
9945

被折叠的 条评论
为什么被折叠?



