Re: [闲聊] 神奇程式

楼主: SuicideComet (|)   2022-08-26 18:16:27
想一下还是贴主管的程式出来给大家笑好了
反正被抓到就辞职==
最近在写银行系统 接一种叫做SWIFT电文的东西
就是国际汇款通用的格式
但问题是里面很多字段然后长得很畸形
旧版SWIFT是纯字串而非XML之类的东西
然后字段很自由 可以选择性放
可以无限换行 可能同个字段有三、四种格式 不同格式放的资料会不同意义
所以变成文字要自己抓
自己照着写得很精简的官方手册解析
解错你家的事
内容可能像这样
:21:blablabla8943
:35:peko
miko
teetee/
每个标签是 :数字: 开头
所以通常会说
“电文里面21字段的内容是..”这样
之前我主管有叫我写这类东西
也写出来了
不过最近她又自己写了一个
https://i.imgur.com/Uqgj2t3.png
总之看起来是把电文完整存著 (this.message)
要用到字段时呼叫getTag21() 之类的
然后get内部就会呼叫上图这种函数
在整个电文里面寻找 :tagNo: 开头
然后把后面的字串切割丢回
寻找的方式是用 String.indexOf()
也就是从头开始搜寻字串直到找到指定的字段为止 O(n)
这个行为每次get会呼叫 一个字段可能在程式前后呼叫多次
并且每个电文可能数十个字段
然后每天下来大概几千、甚至上万个电文要处理
接着找到之后做substring
然后再次用 indexOf 找到下一个换行符号
并且做 substring
每种电文格式
每个字段的get都是类似这样写
看了很想开干
我领junior的薪水 教三个跟我领一样薪水的新人
然后主管领高薪 让我看这种code
可是人家是主管 也不方便吐槽
只是觉得不吐不快==
之前讲那个 DB Lock 土法炼钢的想法
也是他去搞出来的
就觉得很累 到底在干嘛
甲方讲说架构要用微服务
测都没测就开始吐槽 这个架构一定很慢 每个服务之间都要call 来call去
我还想说姜还是老的辣 他们应该有更好解法
结果自己写的code长这样
然后解决 DB Lock 的方法是自己重新造轮子 做一个没保证性的Lock出来
事倍功半
接着在学写 user story 以便之后开始开发
里面要写单元测试 整合测试之类的
他说我们以前单元测试就是一整支业务功能的交易程式 跑测试
(虽然我在这公司待的上一个案子根本没有测试
 现在绝赞开发地狱中)
然后整合测试是整个系统 业务模组之间测试
所以要改 user story 里面的名称
避免混淆
干 他说的那种整支交易程式
包括从DB捞资料 业务逻辑
等于controller service repostitory 全部一起
这样说是单元测试
摆明就以前名词错了 还要继续沿用
以后被甲方问勒 或是到下个案子 下下个案子 
还是要用偏离常识的名词吗
妈的
这案子甲方有特别买课程 然后找我们一起上
学微服务 TDD agile之类的
叫我留下来也是说上这个课可以学到很多ㄚ 对ㄚ
结果上课期间整天发牢骚说讲师上得不好
上完学了很多
接着开始把学到的东西导入以前至今的陋习
继续写四不像的东西
干...
到底为什么活着这么智障
阿共仔可不可以赶快按按钮了
瞄准我家直接炸一发
我早点解脱 看能不能去异世界
不求干巨乳女人
能自己安安静静住在山野里面舒适自在生活
不用面对这些干烂事就好了
作者: Satoman (沙陀曼)   2022-08-26 18:17:00
在山野生活现在就行吧 ==
作者: rockyao   2022-08-26 18:17:00
挖靠 你也太强
作者: Jaka (Jaka)   2022-08-26 18:18:00
一定要吐 因为太烂了 你不反应最后你会被害死这种效率根本智障 你的客户会反应效能太差 10笔资料都做不完为什么不用hashmap呢
楼主: SuicideComet (|)   2022-08-26 18:21:00
连hashmap都不用 一个电文一个class 电文字段设成参数就好了可能这样可以让系统看起来做比较多事

Links booklink

Contact Us: admin [ a t ] ucptt.com