交流|给前端后端善后的日常
2507
2021.12.12
2021.12.28
发布于 未知归属地

给前端后端善后的日常
这个大概会更新十几篇,都在这一个文章里面。主要就是开发的而低光狗血时刻。
一直丢评论,我可能会发两次。


先吐槽一下我们的前端。

我们的前端框架是c#写的, c/s架构。
有人说:C#写前端?还c/s架构????我是面试官必然把你这个不学无术的人说一顿!!
我们真的是用c#写的c/s架构!!!!!用的是flamework4.0这个框架。

给大家讲两个笑话:
第一,flamework框架互不兼容。(这个去问微软)
第二,当安装最新的版本以后,就无法安装旧的版本了(会提示:已经安装flamework)

用户投诉过来:我们无法运行。
我就告诉用户:你把flamework卸了,重新安装我们的老版本才能够运行。
用户:我们不会卸载。
项目经理:我也不会卸载。
开发:前端的事情找前端。
前端:用户连flamework都不会卸载?

很久之前,有几个项目组过来,几个开发安装我们的环境,他们也不会卸载!!!!
项目经理:你们自己研究一下,互相交流,一个人卸载成功了其他的也就会了。

——————————————————————
我们前端用的flamework,可是前端水平有限,所以偶尔前端会崩溃。

flamework崩溃会打一个报错信息,我问用户要过来以后给项目经理。
于是项目一看,给我表态:flamework崩了。(拼音似乎叫他忒头,我不知道,可能是flamework的一个框架)
于是我说:那么为啥这个服务崩了?第二咋给用户回?
于是项目经理表示我不知道,去问开发。
后端表示:我不知道,去问前端。
前端:我和你不熟,你转给我干嘛??

报错第一,堆栈溢出,估计是内存泄漏,第二个空指针,全是代码里面的锅。

于是我:你们爱咋咋地把,我和你们不熟。

————————————————————————

我们前端用的是flamework。有一个内存锁大概是2G。(如果一次申请内存超过2G会白屏)

我们数据量很大,有的用户想批量导出几十万和几百万条数据。到几十万直接白屏。
于是前端说了:不能支持。后端做。
后端:我们支撑不了,数据库会挂。
项目经理:我不管,我只要一个结果。

可是比较有趣的事情是:我们前端支持导出几十万条(开放了端口)于是用户就开始导出,导出到20W前端崩了。
后来项目经理过来问前端。
两个前端一句话:做不了。框架不支持。
于是项目经理问后端,后端表示:数据库就挂了,我们不能做。

我:我不管,我是个维护。
——————————————————————
前端在测试环境写了一个环境,需要测试一下。
可是我们没有测试啊!!!!!(不是没有测试,是测试需要干别的)
前端拍胸脯:我做的不错!随便看。

于是项目安排了我去做,我就测试了一下(手工点点点的测试)。
点了七八分钟,发现了一个恶性bug。
于是找前端,前端表态:后端传入的数据有误。
可是有这个恶性bug已经无法测试了。

点了一个小时,测试了出了大概十几个bug。于是给前端说了。
前端表示:这个不是bug,那个不是bug。那个我知道没做,那个我也知道没做。

我:前端我和你不熟。
——————————————————————————————
另一个系统

做运维,数据量过大导致卡单,于是项目经理表态:让我手工补录。
我说:这个补不了。
于是找后端,后端表示:这个我也做不了。
于是项目经理拿着数据左补右补,不得要领,补了3个小时。

于是我看得难受,给他补,补了十几个表的数据。
可是:一不小心补录错了,差了一个字段,几百万的业务没汇总出来。

于是项目经理表示:你这个不行啊。
我:我和你项目经理不熟,以后补录数据别找我,十几个表咋补?????(XXX的第三范式)

我给他说:手工补录肯定有问题啊!!!人肯定会出错的,你还是找开发修bug去吧。
————————————————————————————————

我维护的这个系统有bug,大bug小bug无数。
有一次维护会议的时候,我给各个维护吐槽我们系统有bug。

他们说了:有bug一定要修啊。愿闻其详。
我一口气说了45分钟。

于是领导挂不住了:哥们你别说了,写个excel吧。你说了几个??
有个记录的说:大概20个。

我:差不多,我发现的大概三十几个。

于是找项目经理,项目经理表态:
第一,我是第五任项目经理了,接手的时候就有这么多bug。
第二,我们没钱,所以没有人才。
第三,负责人呢?早走了,外包写的,离职了两年了。

到现在bug修了没?没有修。
————————————————————————————

我们MySQL挂了,所以我们前端后端一起挂了,定时任务也挂了。
我们分布式系统的一台服务数据挂了,所以这台服务器对应的数据丢了。(你这还分布式个X)
我们HBASE数据库挂了一台,整个集群都起不来了。

磁盘满了,所以我们的短信监控也挂了:因为需要写入到磁盘。故障了大概18个小时发了一封告警短信。
我们drop了一个以为没用的数据库,于是连接数泄漏,把MySQL搞挂了。
我们的zookeeper有偶数个节点。

我们主节点磁盘有200g,其中100G是日志,15G是备份,5G是有效数据。
——————————————————————————————————————

我们有个业务,是很复杂的一个业务逻辑,项目经理表示:这个东西很科学。
于是我去爬数据库,发现
这些数据混乱的没法看。
总的来说,如果你做的是坨X,那么开发的人是啥呢?维护是啥呢?他是啥的项目经理呢?

先说一下为啥混乱::这个数据是用户自己维护的,而用户不懂业务,他写的数据很可能是乱写的!!!!
只有增加,没有修改和下线的流程,导致大量重复数据。而我们业务是如何处理的:随机取一条!!!!

用户过来问:这个东西已经下线了,为啥还是他的?
项目经理很硬气的说:这个数据不是你自己写进去的吗???????

一个外省的开发过来,表态:你们这个业务逻辑维护的不错!!!!
我:这还不错啊????
于是我离职前一个周直接怼脸:你懂个XX的业务!你知道你们做的东西给我加了多少工作量吗?

有一次,用户以为业务逻辑是这个样子的,所以修改资源数据了,导致出现了异常。
用户问责,我找开发,开发表示:你们不懂业务,改回去。
于是用户表态:这是甲方让我们这么做的!!!!你们改!!!!这是bug!!!
开发:是你们不懂业务!

于是领导吵架,我是看戏的维护。
——————————————————————————————————
很久之前,查出用户有一些人的权限过高。和项目经理表态建议降低权限。
项目经理表态:知道了。可是他啥都没做。

我们有个业务价值2W。有个用户误删除了。于是数据不一致了。
于是项目经理表态:查。
于是我就忙了一天,查出来了是用户删除的。于是回了邮件。

还有一个项目,数据量价值一个月几百万。流程不支持,所以项目经理用自己三脚猫的功夫导入了数据。拍胸脯的说:出了问题我负责
可是:他不知道excel会数据做处理,导致数据不一致。
于是项目经理表示:查。
加班5天查出来了。项目经理全锅。

项目经理:我不懂啊!!!
我表示:你不懂你就敢做????????


还有一次,需要改一个几百万的业务。 我说:不能做。这个有风险。 项目经理说了:用户说了,不能不做,并且邮件抄送我要求我做。我把邮件删了。 项目经理表态:你不做就闭嘴。 于是:我提前一个月离职。皆大欢喜。

——————————————————————————
我们系统以卡顿和慢闻名。
主要是因为我们框架的缘故:我们加载需要5分钟!!!!!!

第二个是:我们系统做了一个功能,可以自定义窗口数目,所以有的用户就新增了500个窗口(就是每次需要更新500个数据源)卡死了找到我们询问原因。
于是项目经理和开发讨论了一下,得出结论:这个用户是个XX,他要500个窗口干嘛???


我就傻了:那你为啥给用户500个框架的权限呢???
你给了用户500个窗口的权限,用户用了500个窗口,然后系统炸了找我们系统,我们系统说了:你用户为啥开500个窗口?

————————————————————————————————
我工作了一年,没有登录过服务器,因为就算是日志文件也需要root权限查看。
比如说:MySQL吧,需要登录用户 --切换root ---切换mysql。

我们的服务器接入了一个监控,除了root以外禁止切换用户,所以查日志需要root。
而需要的root权限没给过开发者————因为怕故障root不能给人。所以需要开发申请用户审批。而我的级别不够。

我们自己偷偷摸摸接了跳板机来登陆服务器,可是用户不理解,表示不允许。

还有一次,我们做了一个定时任务去同步一个重要服务器的数据。
过了几天,领导说了:你这个服务,是在攻击我们XX服务器,有攻击倾向!!!!
我们说:这是正常业务。
领导表示:是不是正常业务我们不管,我就要求你们停服务器!
我们表态:停业务谁担责?
领导:我同意的,你停服务就停!
停了服务以后,项目经理问开发:会有啥后果?开发表示:不知道。
多大损失?开发表示:无法估计。

————————————————————————————————
有个系统做了一个功能,它每变更一次就给我们系统推送一次全量信息。
数据量是五万,给我们推送了五万次。把我们系统卡死了。

我给开发说:这不就是时间复杂度O(N ** 2)?
开发表示:我不知道啥叫做时间复杂度。

还有一次,需要去重,于是我写了一个group by。项目经理表示:我不知道group by可以去重。

————————————————————————————————————

很久之前,我们有几个简单的脚本需要写。于是雇了几个大学生去写脚本。
这个代码是开源的,你可以看别人写的代码,于是我去看了一下别人写的代码,一口老血吐了出来:我五行就能解决的问题,你们写了整整十几行????

我写代码从来不用break和continue——除非迫不得已。而这个十几行里面就四个continue和break……

开发看不出问题来,表示让他说一下业务的逻辑,他说了业务逻辑。
所有的人按照他们的逻辑走了一遍,走完以后感叹了一下:没毛病。

哥们……你们做的不错。验证代码的正确性耗费的时间,足够我写一半代码了!!!!

————————————————————————————————————

很久之前,有几个业务按照规范需要凌晨去做。可是问题是:做这些的都是技术骨干!!!他们的评级比我们高!!!
于是他们就不按照规范来做,到了核查的时候,就发一封邮件给我们:你们把数据给我刷了!!!!

比如说:大领导要求我去督办我的直属领导做事,然后直属领导说了:如果大领导督办我,你全锅,所以大领导督办你就负责给我擦干净。
——————————————————————————————————————————

我们系统用户不多,只有几千。(但是每个用户都是很重要)
所以我之前遇见一个问题:就是用户写了一个代码死循环了,每几秒就申请读取几万条数据。

于是另外一个系统就把他的IP封了。

如何封的呢?代码封禁。直接写在代码里面:如果IP地址为XX,那么禁止他登陆。提交git以后他就无法登陆。

之前也遇见过:系统检查的时候提供的账号,在代码里面只显示部分数据。
——————————————————————————————————————————————————————————————————————————————

大多数人调试bug3板斧,第一板斧是查日志。
可是我们有个系统的程序缺失部分日志!!!!

于是项目经理表态:我们需要日志定位故障原因。
要啥?项目经理不知道,程序员也不问,直接做了一个流量核实脚本。
于是打日志了。

过了两天,发现5分钟打了144M的日志,于是找到开发:5分钟你打144M?赶紧麻溜的回滚!!!!我们磁盘不够用!!!

于是回滚。

(其实另外一个系统是只保留3天的,滚动删除,可是你打日志不得打全套???可是项目经理和程序员都菜啊……)

评论 (6)