【互联网产品的诞生和演化】快速迭代和持续集成

在互联网产品开发过程中,效率和稳定性始终是核心问题。

开发效率决定了产品的迭代速度。当一个产品需要与市场上同类产品竞争时,迭代速度就会显得尤为重要。
别人新上了一个很受欢迎的功能而你没有在几天之内跟上,那么你的用户将会大规模流失。

同时,如果你的服务不稳定,就会给用户一种不信任的感觉,进而动摇用户留下来的信心,也会造成用户流失。

因此,在保证系统稳定性的同时尽可能加快项目开发速度就是我们所追求的极致。

通常来讲需要考虑以下一些过程。

单元测试

单元测试是指针对代码的测试,以确保每一行代码都能按照预想的方式执行。

任何一个系统功能,都应该有完整的单元测试。单元测试可以使开发者减少大量维护已有系统的精力,同时保证发布新功能时的稳定性。

这里我们要求单元测试的覆盖率尽可能达到100%。

这里推荐使用go语言http服务单元测试组件

功能测试

功能测试是面向功能的测试,在互联网服务中,通常以接口或者接口组为单位进行。

所有功能测试的测试用例应当紧跟产品需求,作为系统发布的最终屏障,来保证系统稳定性。

自动发布

发布是系统交互的一个过程。当一个互联网产品开发完成后,通常都需要集成发布,包括但不限于:

  • 编译
  • 打包
  • 更新版本
  • 更新文档
  • 更新日志

自动部署

让一个互联网产品能够被用户所使用,需要将指定的发布版本部署到服务器上,这个过程包括但不限于:

  • 运行指定发布版本
  • 新建或修改数据表
  • 新增或修改数据
  • 新增或修改配置等