架构-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次
→ 必须提取函数/组件复用
五、权限使用规范
- 最小化原则:只申请业务必要权限
- 动态申请:敏感权限在功能触发时申请
- 权限拒绝:不影响其他无关功能
- 拒绝且不再提示:用界面文字引导用户去系统设置授权
- 自定义权限名 :禁止使用
ohos.
前缀,推荐用包名前缀- ✅
com.company.financialapp.permission.READ_FINANCIAL_DATA
- ✅