这是我参与「第四届青训营 」笔记创作活动的第18天。
关键词:代码质量、代码评审、重构、代码上线,CI,CR,技术债,Code Smell
代码评审:
CR的某一实例:
- Code Review
- 代码重构
重构实践:
- 技术债:理解它、处理它
- 重构是在有限范围内运用一定的方法
代码上线
代码质量
- 优秀代码特质:明确的语义,代码即注释;无联想、无泛指;便于调试
- 满足边界条件、功能变更只进行较小变动。会报错、自我纠正,应对新场景、安全攻击
- 代码维护
- 统一的代码规范:命名、格式、注释。。。
- 稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限控制。。。
- 复用代码
- 添加新的依赖
- 依赖项稳定
- 优秀方案实现:文档、用例、可测性、高内聚低耦合。。。
- 架构设计思想:Binder IPC通信、IoC/SPI解耦
- 自动化测试手段,保障重构正确性
- 充分考虑场景用例
- 统一的代码规范:命名、格式、注释。。。
- 圈复杂度:条件复杂度 = num(deges)-num(nodes)+2
结果为1-10为好
- 顺序执行:圈复杂度1
- if-else:圈复杂度2
- while:圈复杂度2
- (简单判断方法:)圈复杂度:判定条件+1
代码评审(code review)简称CR
通过阅读源代码来检查代码是否符合编码规范,前置发现代码质量问题。
- 代码规范
- 功能设计
小CR-better(控制)
好处:审查更快,更彻底,更容易融入代码,如果被拒绝,可以快速返工。
实例:
重构实践
-
技术债:未采用最佳方案造成未来负担
- 公开技术债
- 消费技术债
-
重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
- 封装成员变量 (函数参数太多)
- 方法提取(函数太长)
- 一般化类型(处理重复代码)
- 父子类之间的函数转移
- 方法更名
- 隐藏中间人调用:针对长调用链(避免加判空太多
-
Code Smell 代码的坏味道,预示着即将变坏,重构是不断对抗Code Smell
代码上线
-
分支开发模式
-
持续集成概念CI
- 将代码频繁的集成到代码仓库中持续集成并不能消除Bug,而是让它变得容易发现和修正
-
灰度发布
- 逐步扩大使用的用户群体
-
AB实验
- 排除干扰因素,环境相同的条件下做实验,选取更优的结果