软件工程
测试
- 单元测试
- 自动测试
- 持续集成
重构
- 一切没有自动化测试的代码重构都是耍流氓。
- 自动化测试
- 提高测试覆盖率
- 重构的时机: 重构代码最佳的时间点:撰写每行代码的时候,而非火烧屁股的时候。
- 一. 当你写一段代码时,不得不从别处拷贝粘贴代码(第二次拷贝还可, 当第三次拷贝时, 就要考虑了). DRY(Don't repeat yourself)
- 二. 你修改已有代码添加新功能时,发现已有代码总感觉哪里不对, 比如说,逻辑写得太绕,太复杂,太难以理解,循环太多,分支太多,状态太多等等
- 三. 当你调用已有的代码时(函数,类),不得不阅读被调用的代码才能确定怎么调用时
- 四. 当你写一段代码时,连带着要改很多代码
- 严格自律与他律, 人性本懒, 需要 role model (初始从自己做起,再带动团队) 与 团队气氛.
项目工具推荐
- IDE/代码编辑器
- 代码版本管理
- 代码Review
- Gerrit[可自建]
- 测试
- CI/自动化
- 文档
- Confluence [可自建]
- Showdoc [可自建] [国内]
- 语雀[线上] [国内]
- Apipost[线上] [国内] [自建收费] 专注api文档
- Outline[可自建] 团队知识库,自建认证也需要可团队认账的账号,google workspace, slack 等。
- Docmost[可自建] 团队文档,安装简单,文档编辑丰富,不依赖第三方账号,界面纯英文
- Docusaurus[可静态部署] 直接生成静态文件web,可作为对外的技术文档,挺好用的。
- 产品设计/代码设计
- 画图:ProcessOn [在线] [国内]
- 画图:diagrams.net [在线]
- 任务管理
项目结构
- Monorepo: monorepo 指多个相关项目放在同一个代码仓库里面,链接介绍相关的知识与工具。