BUG项目管理

最近只要改项目就有可能产生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,也没听他说有这么多事情。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

64.【C语言】再议结构体(下)

本文衔接第63篇63.【C语言】再议结构体(上) 目录 目录 6.复习 7.修改默认对齐数 8.结构体传参 01.传递非指针参数 02.传递指针参数(传递地址) 03.对比 9.结构体实现位段 01.位段的定义 02.格式 03.例题 答案速查 分析 10.位段跨平台问题 11.位段的应用 12.其他…

scrapy 爬取微博(五)【最新超详细解析】: 爬取微博文章

1 读取配置参数 爬取微博文章首先需要读取settings.py中的设置的配置变量,然后编写爬虫,读取的配置变量主要有爬取的关键词、时间范围、爬取区域等。 class WeiboSearchSpider(scrapy.Spider):name weibo_searchallowed_domains [weibo.com]settings…

完成UI界面的绘制

绘制UI 接上文,在Order90Canvas下创建Image子物体,图片资源ui_fish_lv1,设置锚点(CountdownPanelImg同理),命名为LvPanelImg,创建Text子物体,边框宽高各50, ,重名为LvT…

影刀---如何进行自动化操作

本文不是广告,没有人给我宣传费,只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作(非标准下拉框和上传下载)非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…

css 中 ~ 符号、text-indent、ellipsis、ellipsis-2、text-overflow: ellipsis、::before的使用

1、~的使用直接看代码 <script setup> </script><template><div class"container"><p><a href"javascript:;">纪检委</a><a href"javascript:;">中介为</a><a href"javascript:…

架构师:消息队列的技术指南

1、简述 消息队列(Message Queue, MQ)是一种异步通信机制,允许系统的各个组件通过消息在彼此之间进行通信。消息队列通过解耦系统组件、缓冲高峰期请求和提高系统的可扩展性,成为分布式系统中不可或缺的一部分。 2、工作原理 消息队列的基本工作原理是生产者将消息发布到…

python爬虫案例——抓取链家租房信息(8)

文章目录 1、任务目标2、分析网页3、编写代码1、任务目标 目标站点:链家租房版块(https://bj.lianjia.com/zufang/) 要求:抓取该链接下前5页所有的租房信息,包括:标题、详情信息、详情链接、价格 如: 2、分析网页 用浏览器打开链接,按F12或右键检查,进入开发者模式;因…

Axure-本地发布,局域网内用户访问

目录 前言内容一. 选择Axure发布路径&#xff0c;进行相应配置二.添加IIS服务配置&#xff08;不在这里赘述&#xff01;&#xff09;三&#xff1a;添加IIS配置&#xff0c;创建网站四.添加安全策略&#xff1a;实践&#xff1a; 前言 最近加入了公司的积分系统&#xff0c;由…

Qt网络编程——QUdpSocket

文章目录 Qt网络编程QUdpSocketUdp回显服务器Udp客户端 Qt网络编程 网络编程本质上是写应用层代码&#xff0c;需要传输层提供支持。 而传输层最核心的协议就是UDP和TCP&#xff0c;这两个协议有较大差别&#xff0c;所以Qt提供了两套API。 要是有Qt网络编程的API&#xff0…

【CSS Tricks】css动画详解

目录 引言一、动画关键帧序列二、动画各属性拆解1. animation-name2. animation-duration3. animation-delay3.1 设置delay为正值3.2 设置delay为负值 4. animation-direction5. animation-iteration-count6. animation-fill-mode7. animation-play-state8. animation-timing-f…

Kubernetes云原生存储解决方案之 Rook Ceph实践探究

Kubernetes云原生存储解决方案之 Rook Ceph实践探究 除了手动部署独立的 Ceph 集群并配置与Kubernetes进行对接外&#xff0c;Rook Ceph 支持直接在 Kubernetes 集群上部署 Ceph 集群。 通过Rook Ceph云原生存储编排平台&#xff0c;使得 Kubernetes 集群中启用高可用的 Ceph…

RabbitMQ常用管理命令及管理后台

RabbitMQ管理命令 1、用户管理1.1、新增一个用户1.2、查看当前用户列表1.3、设置用户角色1.4、设置用户权限1.5、查看用户权限 2、RabbitMQ的web管理后台2.1、查看rabbitmq 的插件列表2.2、启用插件2.3、禁用插件2.4、访问RabbitMQ的web后台2.4、通过web页面新建虚拟主机 ./rab…

【计算机网络】详解HTTP请求和响应格式常见请求方法Header报头响应报文状态码URL

一、HTTP协议的定义 在互联网世界中&#xff0c;HTTP &#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一个至关重要的协议。它定义了客户端&#xff08;如浏览器&#xff09;与服务器之间如何通信&#xff0c;以交换或传输超文本&#xff08…

如何选择合适的跨境网络专线?

选择合适的跨境网络专线对于保障企业的国际业务顺畅运行至关重要。以下是一些选择跨境网络专线时可以参考的关键点&#xff1a; 服务商的信誉和经验&#xff1a;首先考察服务商的市场声誉和行业经验。一个好的服务商应该拥有良好的客户评价和成功案例&#xff0c;这表明他们有能…

【4.5】图搜索算法-BFS和DFS求岛屿的最大面积

一、题目 给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个岛屿是由一些相邻的 1 (代表土地)构成的组合&#xff0c; 这里的「相邻」要求两个1必须在水 平或者竖直方向上相邻 。你可以假设 grid 的四个边缘都被0&#xff08;代表水&#xff09;包围着。 找到给定的二维…

4.数据结构与算法-线性表的顺序表示和实现

2.1 线性表的定义和特点 线性表例子 线性表的逻辑特征 2.2 案例引入 案例2.1 案例2.1&#xff1a;一元多项式的运算 案例2.2&#xff1a;系数多项式的运算 用时间换取空间--线性数组相对链式访问速度快 但这种方法链式更节省空间&#xff0c;所以用时间换取空间 案例2.3&…

Hbase要点简记

Hbase要点简记 Hbase1、底层架构2、表逻辑结构 Hbase HBase是一个分布式的、列式的、实时查询的、非关系型数据库&#xff0c;可以处理PB级别的数据&#xff0c;吞吐量可以到的百万查询/每秒。主要应用于接口等实时数据应用需求&#xff0c;针对具体需求&#xff0c;设计高效率…

Arm Linux 交叉编译openssl 1.1.1

一、openssl 源码下载 OpenSSL的官方网站或源代码仓库下载最新或指定版本的OpenSSL源代码。 官网地址&#xff1a; https://openssl-library.org/source/index.html 旧版本下载&#xff1a; https://openssl-library.org/source/old/index.html 这里以 1.1.1 为例 国内git…

plt.bar函数介绍及实战

目录 plt.bar() 函数实战 plt.bar() 函数 plt.bar() 函数是 Matplotlib 中用于创建柱状图的函数。它用于在图形中绘制一个或多个柱状图&#xff0c;通常用于展示类别型数据的数量或大小的比较。 基本语法&#xff1a; plt.bar(x, height, width0.8, bottomNone, aligncenter…

归并排序,外排序,计数排序(非比较排序)

归并排序&#xff1a;&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序…