这是我参与「第四届青训营 」笔记创作活动的第8天 主要为思维导图大纲,收集课堂要点和一些补充知识 欢迎补充&指正
成为一个好RD,你应该具备的研发素质
1.代码质量
1.优秀代码应当:明确的语义,无联想、泛指,便于调试
2.满足边界条件、功能变更只进行较小变动,会报错、自我纠正,应对新场景、安全攻击
3.代码维护
-
1.统一代码规范:命名、格式、注释
-
2.稳定的工程结构:目录清晰、模块化、组件化、依赖可控、访问权限控制
- 复用代码、添加新的依赖
-
3.优秀方案实现:文档、用例、可测性、高内聚低耦合
- 架构设计思想:Binder IPC通信、IoC/SPI解耦
- 自动化测试手段,保障重构正确性
- 考虑场景用例
4.圈复杂度:条件复杂度=num(edges)-num(nodes)+2(1-10比较清晰)
- 顺序执行:圈复杂度:1
- if-else:圈复杂度:2
- while:圈复杂度:2
- (简单判断方法:)圈复杂度:判定条件+1
2.代码评审(code review)
(部署、测试)提交前发现问题
-
1.代码规范
- 命名
- 描述
- 风格
- 文档
-
2.功能设计
- 设计
- 功能
- 简洁
- 测试
小CR-better(控制)
- 正视批评
- 修复代码
- 自我反思
3.重构实践
技术债:未采用最佳方案造成未来负担
- 公开技术债
- 消费技术债
重构:调整内部结构(不跨进程),不改变软件可观察行为
- 封装成员变量 (函数参数太多)
- 方法提取(函数太长)
- 一般化类型(处理重复代码)
- 父子类之间的函数转移
- 方法更名
- 隐藏中间人调用:针对长调用链(避免加判空太多)
4.代码上线
分支开发模式
持续集成概念CI
- 将代码频繁的集成到代码仓库,便于维护管理
灰度发布
- 逐步扩大使用的用户群体
AB实验
- 排除干扰因素,环境相同的条件下做实验,选取更优的结果