CodeReview的目的
- 提前暴露未知风险,
- 控制代码质量、代码风格统一、减少后期维护成本,不同的开发者在实现相同的功能时,可能会给出不同的实现方式,后来者在接手相关业务时,如果各个功能相近的模块代码风格迥异,会带来较大的阅读成本。
- 提高开发者的思考能力,知道自己的代码将被评审,会促使开发者在编写代码的时候更卖力的思考,以求更优秀的代码。
- 共享知识,代码审查的一个重要功能是向开发者传递语言、框架、设计原则的知识,(ex: a不太熟悉es新标准,b提供了评论,对于a来说就是新知识)
CodeReview的方式
渐进式优化
注意点 开发自己评审代码
- 单次提交的代码不能过多,建议少于400行
- 单次评审的时间不能过长,建议少于30min
- 适当的撰写注释,便于快速评审 --某些时候因为特定功能而需要专门在已经写好的代码上添加一层处理,注释可以帮助评审者快速带入作者视角
容易出问题的地方
- 函数入参
js编码原则
- 各司其职
- html、css、js各司其职
- 非必要情况不用js操作样式
- 用class表示状态
- 纯展示类交互追求0js方案
- 组件封装
- 过程抽象
组件开发原则
- 高内聚、低耦合
- 职责清晰单一、可维护性高,满足灵活性
- 对组件外部提供简单稳定的接口、对组件内部关注逻辑的实现
- 通用型、易扩展
- 基础组件适用于广泛的业务场景
- 业务组件适用于针对性业务场景
- 如何开发好的组件
- 语义化命名、让其他开发者一眼就能识别组件的用处
- 接口定义、避免遗漏属性、比如定义在props中的属性v-bind解构后不会再传递
- 类名前缀统一、组件使用特殊且统一的类名、降低与用户类名发生冲突的可能性
- 避免行内样式,确保外部可通过类名进行样式覆盖