首页 > 其他 > 详细

我的开发“五步曲”

时间:2019-10-20 11:17:47      阅读:46      评论:0      收藏:0      [点我收藏+]

  开发过程中,难免会遇到各类问题,现将我在工作中的开发流程整理成文分享给大家,抛砖引玉,希望能对大家有所帮助。

  整理来讲,我的流程为五个部分,开发->自测->提交->上线->复盘->...以此循环往复。

 

  开发

  当收到一个需求时,先充分理解需求,同时要对需求可能带来的影响点有个大概的认知。与产品及相关测试进行沟通,罗列出功能点清单,有不确定的点及时提出,并把最终理解好的需求与产品、测试复述沟通一遍,达成最终共识。

  理解了需求后,可在草纸上画出大致草图或相关流程设计图,原功能点是怎样的,现需求如何,两者之间的异同点,调整后所影响的范围;或者大致列列实现步骤,先XXX,再XXX,接着XXX,最后XXX,借此把需求进一步理清楚。

  实现同一需求,可能有多种实现方案。对于影响比较大或使用频率比较高或改动范围广的需求动作,先找相关同事花几分钟讨论并确立下技术实现方案,避免方向的失误或在选择那种实现方案上纠结过长。

  确定了技术方案,在时间紧迫的情况下,可按照先正确快速实现,后调优效率的原则进行开发。

  从线上(或已指定)分支最新代码拉取一个分支,并通知相关协作开发伙伴及测试,大家在此基础上进行相应的代码开发。

  开发过程中,可善用IDE工具,譬如错误提示、代码自动补全、查找替换、统一编码格式等功能,减少初级问题的出现。

  尽可能按照通用的,大家普遍认可的编码规范进行代码的书写。可以多借鉴下文档或大厂写的开源代码; PHP 可参考看下 PSR 规范(https://www.php-fig.org/psr/),JAVA 可参考看下阿里新版java开发手册-华山版;良好的编码习惯需要不断的自我训练,多次重复,慢慢形成习惯。

  写好注释,重要逻辑或方法可写下实现思路,并在适当的出入参节点或其他重要节点,输出日志,方便日后定位排查问题。

 

  自测

  代码完成后,对照需求文档,进行自测。是否如实还原实现了需求?有没有遗漏点?免得遗漏开发项。

  对各个实现的功能模块进行单元测试,查看常规参数、临界参数的影响?正常流程化操作、跳跃性操作的影响?

  前后端页面配合,F12打开控制栏,进行相应的查看、修改、提交等操作,看看接口的传参,请求方式,响应,展示,日志的输出等是否有异常?

  切换不同的账户,查看是否有异常?

  按照测试(功能)用例,测试一遍,查看是否有异常。

 

  提交

  对于自己目前所处的开发分支,可能是多人协同,每次提交之前,先拉取最新代码,再进行提交以避免冲突。提交时,可借助TortoiseGit软件花几分钟进行提交文件的比对和校验,避免少提交代码或把不需要的代码提交至远程分支。本次不需要提交的,可暂时放在暂存区。

  与相关开发及测试人员沟通可以合并的代码功能、时机和具体分支。譬如这个功能是本次上线吗?什么时候可以合并?可以合并到那个分支进行测试环境的测试?提前把事情沟通清楚,避免把本次不需要的代码合并错,同时只需将本次需要的代码合并到相应分支即可。

  将代码合并至测试分支时,先拉取最新的开发分支代码,拉取最新的测试分支代码,先将测试分支代码合并至开发分支,如有冲突,解决冲突,合并完毕,本地进行预编译,预编译无误,进行提交至远程开发分支。切换至测试分支,拉取最新代码(避免最近几分钟有人提交代码),将开发分支合并至测试分支,(如有冲突,解决冲突,预编译无误)提交至远程测试分支。

  通知测试人员及协作伙伴,已将代码合并并放在测试环境运行。

  登陆测试环境,观察页面功能是否正常,查看相应功能点是否实现,非流程化操作的影响,切换不同账户,查看是否有异同。观察相应的数据表数据变化及相应日志输出,对照是否达到预期。

 

  上线

  上线前:

  根据前期功能的实现,归纳整理,提前做好的相应调整。

  数据库、数据表的备份。

  数据库、数据表的结构调整,新增表,或者调整表。

  数据表的数据调整。默认字段填充调整等

  定时脚本的触发,一次性脚本还是循环脚本,触发的机制(条件,异常补救措施)。

  通知合作的相关业务部门或人员。

  其他需要做的操作等。

  上线后:

  线上环境的复查,页面的展示,相关的功能点实现,log日志的输出及后期的用户和数据反馈。

 

  复盘

  对于本次开发过程中遇到的问题进行分类记录和总结,以便不断的学习和成长。可根据自己的实际需要进行分类,我的分类是:

  需求理解类

  这个需求,和产品沟通了四个小时,依然没有完全理解产品的切实需求。

  问题剖析为沟通方向不对,不在同一频道上。需要我不断加强与产品的沟通,锤炼沟通的技巧,提问的方式,回答的方式,明确要点,避免无方向的讨论,尽早尽快达成共识,缩短沟通时长。

  开发实现类

  方案设计时的逻辑错误,流程错误,业务不熟悉,应用场景未明确,业务数据增量的影响,更新数据的先后方式等。

  解决方法为加强业务流程的学习,多多使用开发的软件功能或产品,多与产品测试及业务合作部门进行沟通,加深对业务内容的理解和认识。同时不断学习编程语言的设计及原理,提升业务水平和开发水平。

  代码规范类

  没有建立正确的索引方式,导致数据重复,或者查询缓慢。

  对于异常没有捕获,导致正常流程挂掉。

  变量类型的定义不规范,异常参数引发异常数据。

  一些方法函数的默认值。

  方法的调用方式和时机条件。

  查询时的where条件及limit限制。

  运行环境的差异。

  ...等。

  解决方法为可以多多看看相应的代码规范,模仿加练习,逐步养成规范,避免出现类似的问题。

  其他问题类

  譬如难以预料的用户操作习惯、环境、网络,服务器供应商的限制等因素。开发实际遇到的问题千奇百怪,难以归类的,都暂属其他。

 

  虽然在开发过程种各种考虑周全、小心谨慎,依旧难免会出现其他难以预料的问题;以上措施不是为了杜绝问题发生,只是为了减少问题发生,不要慌张,保持良好心态,找到自己可以实施的模型,不断完善及反复训练,以期达到最优效果。

我的开发“五步曲”

原文:https://www.cnblogs.com/liyingwei/p/11706828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!