从接到一个新需求到完成交付,我做了这些工作

简介: 从接到一个新需求到完成交付,我做了这些工作

大纲

一、需求分析

二、Bug处理

三、新功能实现

四、测试



一、需求分析


需求分两种,一种是Bug处理,就是处理程序的报错行为;另一种是新功能的实现,包括现有功能改进(Enhancement),修改功能等。


1.Bug处理。当测试跟你反馈有bug的时候别紧张,先观察一下报错,是不是程序的报错,有可能是测试的环境问题,集群部署问题等等。如果是自己的程序出错,接着看下文。


2.新功能的实现。跟提需求的人多确认几遍需求,最好有明确的PRD(product requirement document) 或者邮件等说明。先聆听需求,别急着反驳能不能实现。这也是我在工作初期犯的错,经常心太急急着去反驳能不能实现。正确的做法应该是先听完全部需求,自己梳理一下,再去针对具体需求进行分析实现的可行性。



二、Bug处理


1.观察报错。俗话说的好:日志打的好,处理Bug没烦恼。除了打好log之外,对程序异常的正确处理也非常重要,但这个属于代码规范的范畴,后续针对打log和代码规范再写文章。


2.精读代码。许多人一遇到报错,立马就上debug,debug本身没错,但至少先定个范围,而且有些Bug根本用不着debug。正确的做法是对着这段出现Bug的代码进行精读,一行也别落下,在一些判断或者传参的时候是否考虑空值情况,是否包括了临界条件等等。先把大段的代码缩小为可疑的一个小区间,后面再针对性的debug。


3.谷歌。有些报错可以直接复制黏贴搜索栏上,但有些报错需要自己先把问题抽象出来再进行搜索。搜索遵循由精确到模糊,当精确查找的方案不能解决你问题的时候,需要通过关键字搜索,让其他方案给你思路。举个例子:


a.精确:cause by ***。类似这种报错直接贴在搜索栏上,会针对性给你解决方案。


image.png


b.模糊:Zookeeper + timeout。


image.png


4.Stack Overflow定制化提问。针对你的问题,先去Stack Overflow搜一圈,优先看votes和answer多的。如果都没有的话,可以把你代码和问题贴上面,没过几分钟就会有热心的外国小哥来给你解答的,顺便纠正你的语法错误。



三、新功能实现


1.借鉴现有项目或其他好的项目源码。如果你现在的项目是一个大型项目,并且这个新功能跟之前的类似,那么直接找到那部分代码直接模仿就可以了。我在我电脑保存着很多优质的开源代码,当遇到一些类方法不会使用时,也会直接进行搜索借鉴。


2.官方文档。当需要使用一个技术栈去实现某个功能的时候,可以先去查阅官方文档,根据文档写个demo。多花点心思看官方文档,就可以节约大把查阅博客的时间。demo一定要投入最少的精力,保证方案的可行性就可以。


3.Github。Github有两种搜索方法,一种是针对项目功能,一种是针对技术栈的。当你知道什么样的项目有你想要的功能的时候,可以用项目去搜索,然后再分析里面的实现。当你知道实现的技术栈的时候,直接用技术栈去搜索更加精确。以登陆功能举例:


a.功能搜索:


image.png


image.png


四、测试


测试分为功能测试和代码质量测试等,具体测试的粒度和方法根据公司的要求和开发者的习惯。

1.针对Bug的测试,只需要按照原来的报错步骤再走一遍,看是否报错即可。


2.针对新功能的测试,开发者除了补上完整的UT之外,应该给予测试同事一些测试用例,对新功能进行完整测试,而不是简单的happy path。



你的开发流程是怎么样的呢?欢迎留言谈谈你的看法~

相关文章
|
Java Spring 容器
一文带你深入理解SpringBean生命周期之Aware详解
一文带你深入理解SpringBean生命周期之Aware详解
2135 2
一文带你深入理解SpringBean生命周期之Aware详解
|
7月前
|
API Python
python泛微e9接口开发
通过POST请求向指定IP的API注册设备以获取`secrit`和`spk`。请求需包含`appid`、`loginid`、`pwd`等头信息。响应中包含状态码、消息及`secrit`(注意拼写)、`secret`和`spk`字段。示例代码使用`curl`命令发送请求,成功后返回相关信息。
157 5
|
安全 架构师 中间件
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
谨以此文,分享一些我加入阿里云后,我和我所在团队的成长经历。这里既有我个人如何从程序员成长为一个技术经理,也有我的团队如何把事情越做越大的过程和思考,希望能够帮到有需要的人。
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
|
9月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
8月前
|
Web App开发 数据安全/隐私保护 开发者
Firefox Add-ons 插件上架发布全流程指南
本文详细介绍了如何将浏览器插件上架到 Firefox Add-ons,涵盖从注册开发者账号、打包插件、提交审核到最终发布的全流程。与 Chrome Web Store 类似,但 Firefox 的流程更为简化,注册免费且对权限审查相对宽松。文章还对比了两者的关键差异,帮助读者更快上手 Firefox 插件的发布。如果你已经熟悉 Chrome 的上架流程,这篇文章会让你更轻松地在 Firefox 平台上发布插件,触达更多用户。
325 0
|
10月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
2326 2
|
10月前
|
安全 UED 开发者
鸿蒙开发:沉浸式效果实现
沉浸式效果实现后,一定要注意安全区域的内容避让,防止内容延伸后被导航条或者状态栏遮挡,具体是选择安全区域或者窗口管理方式,按照需求进行处理,如果仅仅是某个页面,直接安全区域即可。
291 0
鸿蒙开发:沉浸式效果实现
|
SQL 关系型数据库 MySQL
常用的数据库链接工具都有哪些
常用的数据库链接工具都有哪些
1405 2