Soft_Job 板


LINE

※ 引述《VScode (VSisBestIDEinTheWorld)》之铭言: : 假设以下情境 : 有个功能A、B都会用到相同逻辑,且有两份重覆的code : (没有unit test保护,而且年久失修 要加入unit test会需要更多时程) : 现在要加入C,也会用到相同逻辑 : 身为合格的工程师 应该会把ABC重覆的部份提取出来 : 而不是让这逻辑重覆三次 : 但以公司营运的角度来看 这次专案就只会测试C的部份 : 不应该动到A、B : 这时就要冒着A、B坏掉风险重构,或是因为来不及加入unit test : 就乾脆让相同逻辑存在三个地方 : 身为专业工程师,我很想选择重构 : 但过去的经验告诉我 : 绝对要以kpi为最优先考量 : 於是程式充满了注解、重覆片段 : 虽然靠着笔记、git log,能还原当时写code的思路 : 但这些脏code就会永远留存在程式里 : 想问大家遇到这情况会怎麽做? 如果 A, B 都没有任何 tests,建议不要动他。 帮 C 实做这个功能的时候,把 unit test 写好写满,确保 C 是对的 行有余力,针对 A, B 的使用情境也加上 test case,确保未来在 A, B 确实能重用 (这点很重要,否则很容易程式长得很像你以为可以重用,实际上根本不能) 就先做到这样就好,确保 C 的品质,同时你获得了高品质的 reusable 模组 随着时间推演,有几种情况: 1. A, B 的生命周期已经结束,直接淘汰,不用 refactor (这超常发生) 2. A, B 只是在维护修 bug,不会再有新功能,那通常也不值得花时间去弄 但若经常造成 bugs 的地方,正是跟 C 共用的那段程式, 那 refactor 就很有商业价值,长官也不会反对你做。 这种时候 refactor A, B 会变成重要的工作,你就不会没时间做。 Refactor 完毕之後改善多少,就可以变成 Kpi,做起来名正言顺 3. 如果真的发展到有机会 refactor A, B,这时就先帮最主要商业逻辑加上 "大范围" 的 "integration tests" (不用花时间补写 A, B 的 unit tests) 接着把 A, B 重复的逻辑抽换成 C 的 (之前开发 C 已 unit test 过,确保正确) 抽换完毕後,大范围整合测试确认整体行为没改变,就可以收工了 上线後持续监测,万一遇到问题,直接 rollback 回上一版 专业的工程师,在开发的时候也会考虑实务面,以及这些 code 的商业价值, 来决定事情的先後顺序,帮助产品获得成功。 好的外科医师,手术开刀,目标是病人要治好,而不是手术成功,病人死亡。 -- Sent from PCMan on PCMan's PC --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.249.169.220 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1645890217.A.B0F.html ※ 编辑: HZYSoft (111.249.169.220 台湾), 02/26/2022 23:46:42
1F:推 accessdenied: 讲得太好! 02/27 00:26
2F:推 GLaDOS1105: 推这篇 02/27 00:57
3F:推 Raymond0710: 正确观念!推PCMan 02/27 01:01
4F:推 worf: 有道理 02/27 02:06
5F:→ netburst: 就是因为东西常常不上线 才狂重构啊 02/27 02:08
6F:推 za075056: 推 02/27 09:54
7F:推 xvid: 推 02/27 12:31
8F:推 MelLynce: 推 02/27 13:37
9F:推 wahaha279: 推 02/27 13:54
10F:推 viper9709: 推这篇 02/28 00:02
11F:推 wulouise: 商业价值真的是重点 02/28 00:12
12F:推 cool9203: 推pcman!! 02/28 06:49
13F:推 FatFatPig: 推 02/28 08:38
14F:推 shieldsky: 推这篇! 02/28 09:09
15F:推 ccnancy: 推 谢谢分享 02/28 17:53
16F:推 sharku: 推 02/28 19:35
17F:推 JackLeeing: 推 02/28 21:04
18F:推 tomroy: 推 03/01 15:52
19F:推 s29940: 推 03/02 08:34
20F:推 assembler80: 推 03/02 10:10
21F:→ ches728ter: 偷问哪种成功的手术是病人死亡的? 03/03 17:18
22F:推 repeat: 推 03/06 21:52
23F:推 rrefK31: 推 03/31 00:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP