最近只要改项目就有可能产生bug。

目前这项目,从一开始我就参与开发。

很长一段时间都是敏捷开发,有时候连UI图都是后出。

随着时间加长,需求复杂度增加,有时候动下代码就伤筋动骨,事故不断,主要是影响口碑。

首先不替自己辩解,确实是写的时候考虑不全面。

先说下项目使用php开发,而php是个弱语言。

我设置状态一般都不用0,判断起来太麻烦。

而且php写起来比较随意,开发一时爽,维护操碎心。

比如上次bug

判断金额直接用empty,empty("0")是true,而empty("0.00")是false……

从数据库读出来的都是字符串,判断错误导致bug。

empty((int)$price)或者$price>0就能避免。

仔细想想这种其实属于开发规范问题。

比如上上次bug

/(ㄒoㄒ)/~~这次比较严重。

写代码的时候忽略一种业务情况,正巧在一个小长假不断出现错误。

放假回到家有点发烧,又改错了……

导致又产生不同的错误数据。

但好在没有造成平台亏损。

再比如long long ago的一个bug

涉及到微信回执处理。

当时测试是自己编回执测,导致实际运行官方回执解析失败,而且发现的时间比较晚。

而业务上是先解冻冻结金额到用户账户可用金额……

我知道这种脑残的设计不是特别合理,我也纳闷当时我为啥这样写……

总结原因大概是当时业务对于冻结金额的负面反馈太多,索性我就先解冻,好歹是退钱了……

先解冻后处理退款回执,并且回执处理失败,没及时扣除用户金额,就导致平台亏损……

和之前的bug对比,这算是非常大的事故。

现在马上十月一放长假,可恶的补班很多。我们单休,甚至连着上八天……

目前预防错误都已准备好,不上线有数据修改的需求,大概能顺利过完假期。

项目管理

鉴于以上情况,公司最近一直抓项目管理。

根据目前的情况,我认为项目管理的主要内容是流程设计、测试、数据校验、项目管理、代码审计、客户资料管理。

1、流程设计

对于业务,在流程上的设计把好关,能避免很多bug。

主要是流程图。

可以先做流程图,然后按照流程图写。

每次修改也是先改路程图。

过程很麻烦,但是安全。

但主要问题是,像我这种主要写接口,流程图中怎么体现接口……

不然接口管理,或者查对应逻辑的接口都比较麻烦……

2、测试

测试主要是怎么测试全面的问题。

涉及流程分析,和测试工具、需求管理,任务指派等。

前两天领导还想让我弄自动化测试,写脚本弄……我得学……

3、数据校验

数据校验,可以校验平台业务数据的正确性。

难就难在正确性标准。

这点就很看重数据结构的设计。

根据自己的运维经验,业务复杂度高之后,即使是相同功能的不同版本,也要保持数据结构的一致。

不然查数据和开发真的特别麻烦……

4、代码审计

看过一些代码审计的视频,大概都是分析bug。

自己运维的项目里代码审计,一是看编写规范,二是看逻辑漏洞。

涉及开发规范的制定、程序设计(解耦、注入、注释等)、流程设计。

5、项目管理

项目管理就比较简单,比如服务器信息、数据库信息、启动方法、守护进程、注意事项等。

不做管理的话,服务器都不敢重启,生怕哪个项目有问题。

6、客户资料管理

可以将客户对应到项目,这样哪个项目比较紧急就比较好分辨。

工作交接的话,也方便联系。

正在找根据以上内容便于使用的开源项目……

有意向自己写一个,回头自己再整理需求。

话说公司有个大佬,以前也做过不少大项目,都是用java,也没听他说有这么多事情。

一定不是语言的差距,而是我和大佬的差距。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部