作为独立开发者,我们在进行项目管理和使用持续集成工具(如 Git、持续集成工具等)时,可能会遇到一些困难。比如,我们可能会觉得这些工具很难上手,对于如何设计持续集成(CI) 方案也感到迷茫,这可能是由于以下两个原因:
-
我不是资深开发者,没有真正理解持续集成的本质,也不了解工具的基本使用方法。
对于独立开发者来说,并不需要掌握复杂的知识,只需理解原理和掌握简单的使用技巧即可。
-
有很多项目管理规范,不知道该使用哪个。
独立开发者进行项目管理的核心原则是自由,我们不必生搬硬套大项目的方案,只需从项目自身的需求出发,满足其需求即可。
软件开发的基本流程
- 开发:编写项目的源代码,源代码是给开发者用的,不是给计算机用的。源代码会使用 Git 进行版本控制。
- 测试:测试在初始项目或小项目中并非必须的,当你需要测试时再测试。
- 构建:将源代码编译打包成开发者看不懂的程序,构建后的程序是给计算机用的。
- 发布:将构建好的软件发布出去,比如发布到服务器(如 AWS EC2)、存储服务(如 AWS S3)、应用商店(如 App Store)、Serverless 平台(如 Vercel, Cloudflare)。
持续集成的本质
持续集成不是必须的,我们完全可以不使用持续集成,纯手动进行测试、构建和发布操作。
不过,在实际项目中,自动化通常是非常必要的。因为在许多情况下,我们希望能够频繁地进行构建和发布操作,每天都可能会发布新版本,甚至有时一天不止一次。如果每次都通过手动完成这些操作,不仅会非常麻烦,而且容易出现错误,所以将构建和发布自动化是很有必要的。
持续集成的本质是将软件开发基本流程中的集成和发布过程自动化。
独立开发者的如何做持续集成
对于独立开发者而言,项目只有自己一个人参与,且项目起步阶段复杂度低,所以持续集成方案可以设计得更简单。
独立开发者做项目管理的目标
- 代码版本管理:目的是清晰地记录代码的历史版本,以便在需要时可以查看或回退到某个历史版本。
- 发布新代码:每次更新代码后,能够快速将其发布上线。
- 回退到上一个版本:当已经部署了新版本却发现问题,并且无法快速修复时,需要能够回退到上一个版本。
独立开发者项目管理的不同阶段
第一阶段:
- 项目刚建立时,仅使用一个主分支即可,代码直接提交到主分支,无需考虑创建其他分支,也不用考虑打 tag。
- 将代码存储在 github 中。
- 对于持续集成,可以有以下两种选择。
- 如果打算将项目发布到 vercel 或 cloudflare 等平台,以 vercel 为例,可使用 vercel 自带的持续集成服务。在开通相应权限后,vercel 会自动接管代码。
- 如果要将项目发布到服务器或其他服务,可以使用 github action 编写构建和发布的脚本。
- 如果打算将项目发布到 vercel 或 cloudflare 等平台,以 vercel 为例,可使用 vercel 自带的持续集成服务。在开通相应权限后,vercel 会自动接管代码。
- 在此阶段,不需要考虑回退操作。
第二阶段:
- 当编写了一些代码,并且只想保存而暂时不想合并到主分支时,需要创建新分支,在新分支上完成代码编写工作,完成后再合并到主分支。
- 为每个版本打 tag,这样做是为了更好地记录代码,当然,如果觉得没有必要,也可以不打 tag。
- 当服务正式发布后,需要做好回退代码的准备,以防意外情况发生。具体操作如下:
- 在 vercel 的后台可以进行代码回退操作。
- 若使用 github action,可以在 github 中操作回退代码
- 也可以在本地手动构建并发布。
- 也可以本地回滚代码后,提交到主分支