public:cs:software_engineering

这是本文档旧的修订版!


软件工程

  • 单元测试
  • 自动测试
  • 持续集成
  • 一切没有自动化测试的代码重构都是耍流氓。
    • 自动化测试
    • 提高测试覆盖率
  • 重构的时机: 重构代码最佳的时间点:撰写每行代码的时候,而非火烧屁股的时候。
    • 一. 当你写一段代码时,不得不从别处拷贝粘贴代码(第二次拷贝还可, 当第三次拷贝时, 就要考虑了). DRY(Don't repeat yourself)
    • 二. 你修改已有代码添加新功能时,发现已有代码总感觉哪里不对, 比如说,逻辑写得太绕,太复杂,太难以理解,循环太多,分支太多,状态太多等等
    • 三. 当你调用已有的代码时(函数,类),不得不阅读被调用的代码才能确定怎么调用时
    • 四. 当你写一段代码时,连带着要改很多代码
  • 严格自律与他律, 人性本懒, 需要 role model (初始从自己做起,再带动团队) 与 团队气氛.
  • IDE/代码编辑器
  • 代码版本管理
    • github [在线]
    • Bitbucket [在线]
    • gitlab [可自建]
    • onedev [可自建]
    • Gitee [在线] [国内] 开始有预审查,不推荐。
    • SourceHut [在线] [可自建] 介绍
    • soft-serve [可自建] 只需在命令行执行一条命令,就能自己搭建 Git 服务器,简单易用
    • Gitness [可自建] 除了首次加载网页比较慢(需要下载十几M),其它都很符合自建git服务的需求。
  • 代码Review
  • 测试
    • 禅道 [可自建] [国内]
    • TAPD [在线] [国内]
  • CI/自动化
  • 文档
    • Confluence [可自建]
    • Showdoc [可自建] [国内]
    • 语雀[线上] [国内]
    • Apipost[线上] [国内] [自建收费] 专注api文档
    • Outline[可自建] 团队知识库,自建认证也需要可团队认账的账号,google workspace, slack 等。
  • 产品设计/代码设计
  • 任务管理
    • 敏捷 scrum
    • Planka[开源] [自建] 类似 trello 的开源版
    • leangoo [在线] [国内]
    • TAPD [在线] [国内]
  • Monorepo: monorepo 指多个相关项目放在同一个代码仓库里面,链接介绍相关的知识与工具。
  • public/cs/software_engineering.1721366263.txt.gz
  • 最后更改: 2024/07/19 13:17
  • oakfire