软件工程基础装备

author:vc
date:Jul 6, 2020

现代软件工程大量依赖工具软件和服务。个人和小组实施软件工程时,这些工具会特别有用,应当考虑配备。

代码协作仓库 (Code Repository)
程序代码是软件的核心。代码不是「写」出来的,是「改」出来的,是一个个更改 (diff) 叠加出来的。 流行的版本控制软件如 git。 基于 git 协议的代码协作托管网站如 GitLab.comGitHub
即时通讯
基于文本和富文本的聊天。 QQ 群当然也不是不能用。 Slack 等服务的设计可能更适合高效组织信息和交流。
缺陷跟踪 (Issue Tracker)
代码是为了修补缺陷,软件是缺陷堆出来的。 不需要太正规的情况下,可以用 Trello 这样的看板 (Kanban) 追踪当前的任务、缺陷和进度。 正规的缺陷跟踪通常会对每个缺陷编号。 GitLab.comGitHub 的代码仓库功能均内建了缺陷跟踪 (Issues) 功能。 成熟的软件选择还有免费的 BugZilla 和付费的 Jira 等。
知识库 (Knowledge Base)
好记性不如烂笔头。 知识库可以通过文档协作工具实现,也可以直接以文本格式保存,和程序代码一起放入代码仓库。
代码评审 (Code Review)
不能自己写了代码就合并到主干,也得让别人看看,挑挑问题。 GitLab.comGitHub 的代码仓库功能集成了合并请求 (merge requests/pull requests) 功能,项目的参与者请求代码合并的时候可以开展讨论,尤其是针对具体代码的点评和迭代。
静态分析工具 (Linter)
典型的静态分析工具包括代码的格式化工具,例如对于 Python 语言的代码,有 autopep8、YAPF 和 Black 等格式化工具。 clang-formatgofmt 分别支持 C 系一系列语言和 Go 语言的格式化。 很多 IDE 也自带或者集成静态分析工具功能,例如 VSCode 对于 Python 语言,内建了多款静态分析工具的支持。 在项目里约定好使用的静态分析工具,使得参与者的代码均符合一定的风格和习惯。
文件分享
TBD
构建工具
TBD
持续集成、持续部署 (CI/CD)
TBD
网站
TBD

请注意,此列表并不详尽。

可以免费使用的服务

这些服务可以免费使用,或者有足够一般小规模使用的免费额度:

  • GitLab.com:托管私有仓库,多人共享,缺陷跟踪
  • GitHub:托管私有仓库,多人共享,缺陷跟踪
  • Slack:多人群聊
  • Trello:多人共享看板