ArkTS 编码风格指南:书写干净、易读且高效的代码

介绍

随着应用开发越来越复杂且跨平台,编写高质量、易维护的代码至关重要。ArkTS作为HarmonyOS生态中的编程语言,提供了强大的特性,但也需要保持一致、严谨的编码规范。本文提供了一系列结构化的推荐,以改善代码的可读性、性能以及可维护性,并突出最佳实践和常见错误。

目的和范围

ArkTS 编码风格指南在业界标准(尤其是TypeScript与JavaScript生态)的基础上,新增了一些专门为ArkTS而设计的规则。其目标包括:

  • 代码标准化
  • 执行效率提升
  • 静态分析能力提升
  • 在协作环境中提高安全性及代码清晰度

本指南适用于ArkTS生态系统中系统级及应用层开发。

命名规范

🟡 使用清晰且描述性的标识符

避免单字母、缩写或使用非英文术语。始终保持标识符能够清楚表达意图。

typescript 复制代码
let userName = 'JohnDoe';
function sendMessage(message: string) { ... }

🟡 类(Classes)、枚举(Enums)、命名空间(Namespaces)使用大驼峰命名法(UpperCamelCase)

typescript 复制代码
class UserProfile { ... }
enum AccountType { ADMIN, USER }
namespace AuthUtils { ... }

🟡 变量、方法及参数使用小驼峰命名(lowerCamelCase)

typescript 复制代码
let maxRetry = 5;
function handleLogin(userName: string) { ... }

🟡 常量使用全大写字母且单词之间用下划线区分(UPPER_CASE_WITH_UNDERSCORES)

typescript 复制代码
const MAX_USER_COUNT = 10000;

🟡 避免使用负面的布尔名称

应采用正面的表达方式,并使用ishascan等明确前缀。

typescript 复制代码
let isEnabled = true;

格式化规则

🟡 使用两个空格缩进

统一使用两空格缩进方式,以提升跨设备及编辑器的可读性。

🟡 单行长度最多120个字符

保持代码行简洁,必要时通过换行保持长条件句或表达式易读。

🟡 所有条件和循环块均使用大括号

即使是一行代码,也需要添加花括号。

typescript 复制代码
if (isValid) {
  process();
}

🟡 switch语句中的casedefault语句应缩进

typescript 复制代码
switch (status) {
  case 0: {
    handleIdle();
    break;
  }
  default:
    break;
}

🟡 表达式换行时,运算符置于行尾

typescript 复制代码
// 正确示例
let result = someCondition &&
             anotherCondition &&
             theThirdCondition;

🟡 每行只声明一个变量

typescript 复制代码
let count = 0;
let isReady = true;

🟡 空格使用准则

  • 运算符两侧以及逗号后应使用空格
  • 逗号或分号前不加空格
  • 方法调用的左括号前不加空格

🟡 字符串统一使用单引号

typescript 复制代码
let message = 'Hello ArkTS';

🟡 超过4个属性的对象字面量使用多行格式

typescript 复制代码
let obj = {
  id: 1,
  name: 'Tom',
  age: 30,
  active: true,
  role: 'admin'
};

🟡 elsecatch关键字位于对应闭括号的同一行

typescript 复制代码
if (isActive) {
  start();
} else {
  stop();
}

🟡 左括号 { 应放于同一行末尾

typescript 复制代码
function init() {
  // ...
}

编程实践

🟡 明确使用访问修饰符(private、protected、public)以表达代码意图

typescript 复制代码
class Counter {
  private value: number = 0;
  public increment(): void {
    this.value++;
  }
}

🟡 清晰书写浮点数

typescript 复制代码
let pi = 3.14;
let ratio = 0.75;

🟡 检查NaN值时应使用Number.isNaN()

typescript 复制代码
if (Number.isNaN(value)) { ... }

🟡 首选数组方法而非循环

typescript 复制代码
const doubled = numbers.map(n => n * 2);

🟡 条件表达式中避免赋值操作

将赋值与条件逻辑分开处理。

typescript 复制代码
let isReady = checkStatus();
if (isReady) { ... }

🟡 在finally块中禁止使用returnthrowbreakcontinue

这些操作可能会压制关键的错误或重写原始返回值。

typescript 复制代码
try {
  return fetchData();
} catch (err) {
  handleError(err);
} finally {
  log('Completed');
}

🟡 避免使用ESObject类型

尽可能使用明确的接口和本地数据类型避免跨语言带来的性能额外开销。

typescript 复制代码
let obj: I = getObject(123);

🟡 数组类型声明优先使用T[],而非Array<T>

typescript 复制代码
let names: string[] = ['Alice', 'Bob'];

结语

在HarmonyOS生态中,开发者遵循ArkTS编码风格指南至关重要,有助于团队减少Bug、提升协作效率及代码质量的长期维护。通过清晰且有意图地编写代码,你不仅仅是在写代码,更是在以ArkTS塑造跨平台应用程序的未来。

相关推荐
廖松洋(Alina)3 小时前
【收尾以及复盘】flutter开发鸿蒙APP之打卡日历页面
flutter·华为·开源·harmonyos·鸿蒙
廖松洋(Alina)3 小时前
【收尾以及复盘】flutter开发鸿蒙APP之本月数据统计页面
flutter·华为·开源·harmonyos·鸿蒙
果粒蹬i4 小时前
【HarmonyOS】DAY8:React Native for OpenHarmony 实战:多端响应式布局与高可用交互设计
react native·交互·harmonyos
讯方洋哥12 小时前
HarmonyOS App开发——职前通应用App开发(下)
华为·harmonyos
摘星编程14 小时前
React Native鸿蒙版:Image图片占位符
react native·react.js·harmonyos
大雷神14 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地-- 第30篇:设置与帮助系统
harmonyos
Swift社区16 小时前
HarmonyOS 自定义组件与布局实践
华为·harmonyos
鸿蒙开发工程师—阿辉17 小时前
让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill
华为·harmonyos
盐焗西兰花17 小时前
鸿蒙学习实战之路-Reader Kit构建阅读器最佳实践
学习·华为·harmonyos
一起养小猫19 小时前
Flutter for OpenHarmony 实战:记忆棋游戏完整开发指南
flutter·游戏·harmonyos