编码规范
规范从质量经济学上看,短期需要付出一定成本,但长期来看,不仅有助于项目交接维护、避免低级错误,长期是具有收益的
命名
当很难找到一个合适的名称的时候,表明可能是对问题域理解的还不够透彻
- 有意义的命名
- 命名一致性
- 自说明性
规范
代码规范
- 格式
- 空行
- 命名
- 日志
- 注意日志级别
- 异常
- 统一异常处理
- 错误码
埋点规范
架构规范
破窗效应
适合自己的规范
- 迭代速度
- 技术债务
- 人员水平
规范不是推出来就完事了 还需要推动 周期性答疑
规范的落地需要进行试点,使用数据驱动评判规范的有效性,同时以核心系统及核心链路优先,优化这些核心点的质量
配合代码评审及静态代码检查
函数
- 通过函数封装判断
- 避免过长的函数参数列表
- 避免过长的函数
- 单一职责原则
- 精简辅助代码
- 判空
- 鉴权
- ...
- 组合函数
- 公有函数的语义是其实现的概要
- 函数式编程
设计模式
一种工具或手段,提供了公认的话语概念
模型
- UML
- 领域模型
DDD
- 数据驱动:对数据库建模->编写业务逻辑
相对于传统的贫血过程式编程
DDD充分利用了面向对象的优点,实体拥有行为,语义化更高
一些概念:
- 领域实体
- 聚合根
- 领域服务
- 领域事件
- 边界上下文
规范的执行
对于规范的强制执行 不能只靠人来执行 还要依赖工具进行检查 像idea的p3c插件 又或者是前端工作里的eslint 也可以是git推送前的检查