一张草稿纸

架构-MVVM:

View

View层负责应用程序的UI展示和与用户的交互。

它只关注如何渲染用户界面和展示数据,不包含业务逻辑。

所有的数据状态和逻辑都来自ViewModel层,View层通过接收ViewModel传递的状态数据进行渲染,确保视图和数据分离。

Model

Model层 Model层负责管理应用的数据及其业务逻辑,通常与后端或数据存储进行交互。

Model层的主要职责是存储任务数据、加载任务列表,并提供数据操作的接口,而不直接涉及UI展示。

ViewModel

ViewModel层管理UI状态和业务逻辑,连接Model和View。

通过监控Model数据变化,处理应用逻辑,将数据同步到View层,从而实现UI的自动更新。

使用ViewModel实现数据与视图解耦,提高代码可读性和可维护性。


命名规范:

一、通用原则

  • ✅ 逻辑直白 > 注释,避免复杂绕的写法
  • ✅ 使用 IDE 格式化(快捷键:Ctrl + Alt + L
  • ✅ 不为快而牺牲健壮性和可读性
  • ✅ 新增代码必须遵循规范;老代码修改时同步整改
  • ✅ 禁止"魔鬼数字/字符串",统一使用常量
  • ✅ 除 build() 外,每行必须以分号 ; 结束
  • ✅ 三次以上复制逻辑 → 提取公共函数/组件复用

二、命名规范

1. 变量 / 常量
  • 变量 :小驼峰 let accountBalance
  • 常量 :全大写+下划线 const MAX_TRANSACTION_AMOUNT
  • 枚举 :全大写 enum TRANSACTION_TYPE { TRANSFER = 1 }
  • ❌ 禁止拼音、无意义缩写(如 shouyi, acc
  • ✅ 用完整、明确的英文单词(如 profit, account
  • ✅ 布尔命名用正向词 hasError, isValid
2. 类 / 接口 / 方法
  • 类名 :大驼峰,带语义后缀 BankAccountManager
  • 接口名 :形容词+able 结尾 SecureStorageable
  • 方法名 :小驼峰,动词短语 calculateInterest()
    • 布尔函数:isValidTransaction()
    • 初始化:initPaymentConfig()
    • 回调:onPaymentCompleted()
3. 注意事项
  • ❌ 避免系统关键字命名(如 onClick, padding
  • ✅ 成员变量名要更详细,小函数局部变量可简短

三、注释规范

  • ❌ 不写无意义的翻译注释

  • ✅ 注释只写命名无法体现的复杂逻辑/业务规则

  • ✅ 推荐格式:

    ts 复制代码
    /**
     * 计算理财产品利息(复利方式)
     * 利息 = 本金 × (1 + 日利率)^天数 - 本金
     * 节假日不计息
     */

四、代码数量限制

  • ✅ 单个函数 ≤ 80行
  • ✅ 嵌套层级 ≤ 4层(推荐用"提前返回"简化)
  • ✅ 重复逻辑:
    • ≥3行重复3次
    • ≥5行重复2次
      → 必须提取函数/组件复用

五、权限使用规范

  1. 最小化原则:只申请业务必要权限
  2. 动态申请:敏感权限在功能触发时申请
  3. 权限拒绝:不影响其他无关功能
  4. 拒绝且不再提示:用界面文字引导用户去系统设置授权
  5. 自定义权限名 :禁止使用 ohos. 前缀,推荐用包名前缀
    • com.company.financialapp.permission.READ_FINANCIAL_DATA