技术
技术

高效开发流程

作为程序员,日常的工作大部分都是在进行开发工作,一个优秀的开发流程,能够很好的提高开发的效率以及质量。

第一步:问题定义

每一个开发任务,必然都是为了解决某个问题的。所以,在进行开发工作前,首先要明确的就是为什么要进行开发。

问题的定义,一般都来自于目标用户,毕竟所有的软件系统面向的群体就是用户。

举例来说:

  1. 我想要看我自己以前发布的评论
  2. 这个人发布的内容我很喜欢,我想以后他发布内容我能够第一时间看到
  3. 路边叫车太麻烦了,要是能够通过手机直接叫车就好了
  4. 这个excel表格太乱了,排个序就好了

这些就是问题定义,从用户的角度出发,用户实际遇到的需要解决的问题。

那么明确问题定义,这对程序员来说有什么用呢?

首先,你能够知道进行开发工作要解决的实际问题是什么。

其次,有些问题实际上根部就不需要开发,就像第四个示例,excel自身一个简单的排序就可以了,耗费时间编程实现,成本和收益无疑是不成正比的。

第二步:需求定义

在开发之前,必须要有一个正式的需求文档,明确具体要实现的功能。

一般而言,需求文档是产品根据第一步从用户角度出发的问题定义,进行整理归纳成,从产品角度出发的需求定义。

而对于程序员来讲,有的程序员,拿到需求文档后就会开始进行开发工作(方案设计,编码等等),不会关心需求文档是否合理,也不会关心该需求来自用户提出的什么问题(问题定义),更不会关心需求文档是否符合问题定义,是否是解决问题的最佳方案。

而这些,恰恰是一名优秀的程序员所必需要考虑的事情,有句话说的好,“没有产品思维的程序员不是好程序员”,而对于一些不合理的需求进行驳回,或者跟产品进一步讨论确定新的需求方案,都是一个优秀的程序员所必备的技能。

程序员最大的自我否定就是把自己当成工具人!要从整个产品甚至整个公司的角度宏观的体现自身的价值。

第三步:技术方案设计

明确具体的需求后,接下来就可以进行实际的技术方案设计了。

根据项目需求的大小,此处的方案设计可能包含从宏观的架构设计到具体的每个类,每个接口的功能实现。

这一步是真正开始开发前非常有必要做的准备,可以从整体上把握开发中可能遇到的问题以及开发需要的工作量,实际上,在完成这一步后,给出的排期才是最为合理的。

第四步:编码

此时就可以按照设计的技术方案,进行编码了。

当然,编码中需要考虑的设计模式,代码规范,命名等等,我们这里就不做详细描述了,总之,尽量写优质,易读的代码。

第五步:单元测试

虽然写单元测试,会耗费不少的时间,但与其之后让测试人员不停的找你,你再不断的排查代码,解决bug,这耗费的时间和心力完全是可以接受的。

而且,测试人员测试,有时候并不能完全覆盖你的代码逻辑,但单元测试却能够很大程度上覆盖大部分的逻辑,能够避免出现一些意料之外bug。

还有一点就是,如果以后代码上有什么变更,变更完直接跑一遍已经写好的单元测试,是非常的方便而且舒心的,至少可以知道变更并不会对原先的逻辑造成什么影响。

第六步:提交测试

自测完,实际上就已经可以提交测试了。

提交测试的前提是,你自己已经能够确保代码不会有什么bug,测试人员测试的目的,是为了做上线前的最后核验,找到那些漏网之鱼的bug,而绝不应该是一大批的显而易见的bug。

第七步:上线

大型上线前,一定要有一个checklist:

  • 明确需要上线的代码模块
  • 如果有多个模块的话,上线的顺序是怎样的
  • 是否有诸如数据库表,队列等的依赖,相关配置是否完备
  • 如果依赖其他服务,是否提前周知
  • 相关的监控图表是否已经配置可用
  • 等等

总结

以上就是开发常见的阶段步骤,很笼统,但却是最核心的几个步骤,希望大家的开发过程中能够做些参考 ,优质高效的工作。


精品课程


guest

0 评论
内联反馈
查看所有评论