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