合理有效的软件开发流程对于软件开发人员来说至关重要,它决定了开发是痛苦的挣扎还是不断进步的喜悦。 目前,软件开发的一般流程包括以下几个步骤:了解需求、架构设计、单元测试、监视和控制点、集成测试、性能测试、文档样本、在线流程和变更管理。 下面我就以上步骤进行详细说明。 精心制作的。
了解需求
需求一直是软件开发过程中最难描述清楚且不稳定的部分。 对于一个新的需求(或产品),我们首先应该问自己为什么要做这个需求(产品),并且更多地问自己为什么。 如果我们做出需求(产品),会给公司或者客户带来什么价值,解决什么痛点? ,而不是仅仅问怎么做、做什么。
架构设计
刚接触建筑设计的孩子会关注细节。 这里我想给大家灌输的理念是:Think Big, But act Small(Think Big, But act Small),也就是说软件开发者首先要理清整体架构,否则做出来的东西可能无法满足我们的需求。
单元测试
当你的老板要求你编写单元测试时,你可能会想,这不是降低你的代码生产力吗? 事实上,从长远来看,编写单元测试是必要的。 如果以后我们需要更改或者扩展代码,这些单元测试可以帮助我们做回归测试,开发效率也会逐渐提高。 如果没有单元测试,项目初期的编码效率可能会相当快。 但随着代码越来越复杂,项目代码出现问题的概率也会越来越高。 即使我们想扩展原来的代码,却发现根本无法扩展。 因此,软件开发人员必须编写单元测试来进行测试驱动开发(TDD,Test)。
监控隐藏点
与传统软件公司更注重单元测试相比,互联网公司更注重实时监控。 我们知道,互联网时代的流量非常大,用户需求随时都会发生变化。 无论我们花多少时间进行测试,我们仍然很难发现代码中的缺陷。 这就要求我们不仅要做单元测试,还要求我们做监控(核心指标、框架调用链、日志、报警通知等)。 监控其实就是在线测试、在线反馈,可以实时告诉我们系统的健康状况。
集成测试
各个模块的开发和测试完成后,需要对各个模块进行集成。 这里需要注意的是,各个模块单独测试的时候是没有问题的,但是集成的时候可能会出现问题,这就需要集成测试了。 集成测试涉及到不同团队成员之间的沟通和协调,这就要求我们具有良好的沟通能力。
性能测试
性能测试包括Load(负载测试)、(压力测试)、Spile(峰值测试)、(可扩展性测试)等。性能测试在互联网时代非常重要。 就像我们人类一样,当我们不给自己施加压力时,我们不知道自己的潜力有多大,同时,我们的缺陷也会##出来。 只有通过多轮细粒度的性能测试,才能确保产品上线后不会出现任何问题。
文档样本
我认识的许多开发人员认为编写文档示例没有用。 但我们生产的产品最终还是被用户使用的。 用户从不关心架构设计得如何,代码写得如何。 他们只关心文档样本写得如何,因为这些是他们想要使用的。 ,如果我们不提供明确的例子,会让他们更难理解。 这就需要我们在日常生活中培养产品思维。
在线流程
完成上述步骤后,下一步就是将产品上线。 产品上线也需要一套流程: 1、开发者将最终版本推送到版本控制系统; 2.构建服务器()会定期从版本控制器抓取代码进行单元测试。 如果没有问题,则将代码发送到测试环境。 测试环境通过后,将代码发送到性能测试服务器进行非功能性能测试; 3.最后将代码发布到生产环境。
更换管理层
如果我们需要对在线代码进行更改,就需要进行更改管理。 变革管理要求我们评估变革的影响以及谁将受到影响。 同时,你还需要有一个应急计划以及如果更改失败如何回滚。 尝试通过以上的方法,让改变尽可能的可控。
总结
介绍完软件开发的一般流程后,我们发现这个流程适合大多数情况,但在一些特殊情况下,比如紧急发布、明显的线上事故等,我们需要快速灭火。 在这种情况下,我们将绕过启动这些进程。