监控埋点
相较于传统软件公司更加注重单元测试,互联网公司更加强调实时监控。我们知道互联网时代的流量非常大,而且用户需求会随时发生变化,即使我们花再多的时间去做测试,我们还是很难找到代码中的缺陷。这就要求我们不仅要做单元测试,还要求我们去做监控(核心指标、框架调用链、日志、告警通知等埋点)。监控其实是线上测试,线上反馈,它可以实时的告诉我们系统的健康状况。
集成测试当各个模块开发测试完成之后,就需要整合各个模块。这里需要我们注意的是每个模块单独测试时没问题的,但是整合时可能存在问题,这就要求做集成测试。在做集成测试时涉及到不同团队成员的沟通协调,这就要求我们具有良好的沟通能力。
性能测试性能测试包括Load Testing(负载测试)、Stress Testing(压力测试)、Spile Testing(尖峰测试)、Scalability Testing(扩展性测试)等。在互联网时代性能测试是非常重要的,就如同我们人类一样,当我们不给自己施加压力,我们都不知道自己的潜力有多少,同时,也会暴露出自己的缺陷。只有经过多轮的、细粒度的性能测试才能保证产品上线后不会出现问题。

文档样例
在我认识的很多开发人员中,他们认为编写文档样例没什么用。但是,我们生产出来的产品最终是要给用户使用的,用户从来不关心的架构设计的如何好、代码写的如何好,他们只关心文档样例写的怎么样,因为这些是他们要用的,如果我们不提供清晰的样例,就会提高他们的理解难度。这就要求我们平时要养成产品思维。
上线流程经过上述这些步骤之后,接下来就是将产品推上线。而产品上线也需要一套流程:1. 开发人员将最终版本推送到版本控制系统中;2. 构建服务器(Jenkins)会定期的从版本控制器中抓取代码来做单元测试,如果没有问题,则将代码发送到测试环境中,测试环境通过之后,再将代码发送到性能测试服务器进行非功能性的性能测试;3. 最后,将代码发布到生产环境中。
变更管理如果我们需要对线上代码进行修改,就需要变更管理。变更管理需要我们评估一下变更的影响, 对哪些人会有影响。同时,还需要有应急预案,如果变更失败怎么回退。通过上述方式尽量让变更变得可控。
总结介绍完软件开发的一般过程之后,我们发现这个过程适合大部分情况,但在一些特殊情况,比如紧急发布、线上有明显事故等,需要我们快速的救火,在这种情况下我们就会绕开上述这些流程。