前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漫谈软件开发过程

漫谈软件开发过程

作者头像
木可大大
发布2018-07-25 15:06:51
3490
发布2018-07-25 15:06:51
举报
文章被收录于专栏:木可大大木可大大

背景

一个合理而又有效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。目前软件开发一般过程包含以下几个步骤:理解需求、架构设计、单元测试、监控埋点、集成测试、性能测试、文档样例、上线流程和变更管理,下面我将针对以上几个步骤进行详细阐述。

理解需求

需求向来就是软件开发过程中最不好明确描述、易变的东西。对于一个新的需求(或产品),我们应该先问自己为什么要做这个需求(产品),多问自己why,如果做了需求(产品),会给公司或客户带来什么价值,解决什么痛点,而不是一上来就问怎么做以及做什么。

架构设计

刚接触架构设计的童鞋,会专注于细节中,我在这里想向大家灌输的理念是:大处着眼,小处着手(Think Big,But act Small),也就是说软件开发者首先要理清整体架构,否者,做出来的东西可能不能满足我们的需求。

单元测试

当领导让你写单元测试时,你可能会想这不是降低你的代码生产率吗?其实,长期来看,写单元测试是很有必要的。如果后期我们需要对代码进行变更或扩展时,这些单元测试能够帮助我们做回归测试,而且开发效率也会慢慢提高。如果没有单元测试,可能在项目刚开始时编码效率挺快的,但是随着代码越来越复杂,项目代码出问题的概率会越来越高,甚至于当我们想扩展原来的代码,发现根本不能扩展。因此,软件开发者必须要写单元测试,以测试驱动开发(TDD,Test Driven Development)。

监控埋点

相较于传统软件公司更加注重单元测试,互联网公司更加强调实时监控。我们知道互联网时代的流量非常大,而且用户需求会随时发生变化,即使我们花再多的时间去做测试,我们还是很难找到代码中的缺陷。这就要求我们不仅要做单元测试,还要求我们去做监控(核心指标、框架调用链、日志、告警通知等埋点)。监控其实是线上测试,线上反馈,它可以实时的告诉我们系统的健康状况。

集成测试

当各个模块开发测试完成之后,就需要整合各个模块。这里需要我们注意的是每个模块单独测试时没问题的,但是整合时可能存在问题,这就要求做集成测试。在做集成测试时涉及到不同团队成员的沟通协调,这就要求我们具有良好的沟通能力。

性能测试

性能测试包括Load Testing(负载测试)、Stress Testing(压力测试)、Spile Testing(尖峰测试)、Scalability Testing(扩展性测试)等。在互联网时代性能测试是非常重要的,就如同我们人类一样,当我们不给自己施加压力,我们都不知道自己的潜力有多少,同时,也会暴露出自己的缺陷。只有经过多轮的、细粒度的性能测试才能保证产品上线后不会出现问题。

文档样例

在我认识的很多开发人员中,他们认为编写文档样例没什么用。但是,我们生产出来的产品最终是要给用户使用的,用户从来不关心的架构设计的如何好、代码写的如何好,他们只关心文档样例写的怎么样,因为这些是他们要用的,如果我们不提供清晰的样例,就会提高他们的理解难度。这就要求我们平时要养成产品思维。

上线流程

经过上述这些步骤之后,接下来就是将产品推上线。而产品上线也需要一套流程:1. 开发人员将最终版本推送到版本控制系统中;2. 构建服务器(Jenkins)会定期的从版本控制器中抓取代码来做单元测试,如果没有问题,则将代码发送到测试环境中,测试环境通过之后,再将代码发送到性能测试服务器进行非功能性的性能测试;3. 最后,将代码发布到生产环境中。

变更管理

如果我们需要对线上代码进行修改,就需要变更管理。变更管理需要我们评估一下变更的影响, 对哪些人会有影响。同时,还需要有应急预案,如果变更失败怎么回退。通过上述方式尽量让变更变得可控。

总结

介绍完软件开发的一般过程之后,我们发现这个过程适合大部分情况,但在一些特殊情况,比如紧急发布、线上有明显事故等,需要我们快速的救火,在这种情况下我们就会绕开上述这些流程。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木可大大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 理解需求
  • 架构设计
  • 单元测试
  • 监控埋点
  • 集成测试
  • 性能测试
  • 文档样例
  • 上线流程
  • 变更管理
  • 总结
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档