Soft_Job 板


LINE

事情是这样的 小弟最近接到使用者需求 要增加几个跟之前很像的功能 旧的那只程式已经历经许多测试 目前正稳定的运作中 但最初的需求很单纯 因此设计得不是很有弹性 不利於扩充及更改 第一次接到需求的时候 我想了一下觉得重构有点麻烦 於是直接复制了一份然後改了需要改的地方 变成两只有八成像的程式 各做各的 但最近又要再增加一个 於是我开始犹豫该不该整个打掉重构 避免程式码继续这样扩张下去 感觉很不专业 之後再有需求也比较好调整 但如果复制改一改大概只要一个小时 打掉重构可能要一个礼拜 还不保证会不会有甚麽多出来的bug 想请教大家在类似的情况 都用哪些标准来决定甚麽时候应该重构 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.156.195
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1541959482.A.056.html
1F:→ kissmickey: 上面看你没事找事做的时候 11/12 02:20
2F:→ alog: 做事情是这样 如果你觉得某些事你这样做可以省到後面很多时 11/12 02:26
3F:→ alog: 间你可以做 但实际效果没有符合预期/有机会搞砸/婊到别人/ 11/12 02:26
4F:→ alog: 自己扛责/你没有你想像中的专业有把握 你就不该随便乱动已经 11/12 02:26
5F:→ alog: 跑的很稳定的东西 11/12 02:26
6F:→ alog: 还有不要用感觉来判断专不专业 应该要仔细分析优缺点再来抓 11/12 02:28
7F:→ alog: 一个正确的作法 11/12 02:28
8F:推 gs8613789: 没事做的时候 11/12 08:25
9F:推 Masakiad: 你的状况应该是因为没写测试案例才会觉得重构容易有bug 11/12 08:36
10F:推 t64141: 维护越来越痛苦的时候 11/12 09:04
11F:推 ripple0129: 写久了都会有感觉哪边是应该要事先提出来复用的部分, 11/12 09:06
12F:→ ripple0129: 很不科学但是真的是很吃肌肉记忆 11/12 09:06
13F:→ ripple0129: 抽象一点的说就是会自动分类可变动与不可变动的部分吧 11/12 09:08
14F:推 s89162504: 千万不要refactor 除非你吃饱了没事干 11/12 09:09
15F:→ t64141: 然後不要习惯复制贴上改一行,很可怕 11/12 09:21
16F:推 Argos: 看了上面一堆人排斥重构 就知道台湾软体业只会继续腐烂 11/12 09:41
17F:推 MixBear: 重构是持续进行的 比如你现在这时候遇到这状况 就要拉正 11/12 09:41
18F:→ MixBear: ,而不是持续放任歪楼 11/12 09:41
19F:→ Argos: 重构这种事有时根本就举手之劳而已 顺手改一点改一点 11/12 09:42
20F:→ Argos: 老实说 会不会想去重构 跟工程师自身的修养有很大的关系 11/12 09:43
21F:→ Argos: 你够不够认真看待你的专业 就决定你对重构的态度 11/12 09:43
22F:→ Argos: 回到现实面 你要重构当然要跟上级讨论并且获得许可及时间 11/12 09:44
23F:→ Argos: 如果上面管理方都同意 你当然应该要开始重构 11/12 09:44
24F:→ Argos: 但这件事应该是由工程师自己发现问题 并主动向上面提出 11/12 09:44
25F:推 MixBear: 最讨厌维护复制贴上一堆相似程式,然後同样逻辑要改漏东 11/12 09:45
26F:→ MixBear: 漏西的 11/12 09:45
27F:→ Argos: 如果上面死都不愿给时程 那你还有藉口让它放着烂没关系 11/12 09:45
28F:推 MixBear: 造成後人不便,自己也常埋地雷的程式片段 11/12 09:46
29F:→ Argos: 而不是听到要改Legacy就避之为恐不及 11/12 09:47
30F:推 menshuei: 大部分只会重建不会重构。 11/12 09:47
31F:→ Argos: 我讲的是态度方面 至於执行细节 原本Legacy连测试都没 怎麽 11/12 09:48
32F:→ Argos: 改 严格来说都不算是重构就是了 XD 11/12 09:48
33F:推 ghmsxtwo: 离职前 11/12 09:49
34F:推 benqm300: http://i.imgur.com/i6k6k2F.jpg 11/12 09:59
35F:→ x000032001: 推文就推文 推一张图干嘛? 11/12 10:16
36F:→ benqm300: 字太多有时会被切断跳行 11/12 10:19
37F:嘘 alihue: 一堆人排斥重构,然後又嫌台湾软体业烂 11/12 10:40
38F:→ alihue: 反正到最後也是牵拖到老板,不检讨自己 11/12 10:41
39F:→ alihue: 市面上很多重构的方法,包含写完整的测试与ci/cd,确定你 11/12 10:42
40F:→ alihue: 在可控的风险下重构。不重构只会让後人东补西补,踩地雷 11/12 10:43
41F:→ alihue: 让台湾的软体缺一个比一个还屎 11/12 10:43
42F:→ vi000246: 重构没那麽简单 做得好没人理 出错被钉到死 11/12 10:45
43F:→ vi000246: 这是政治问题 不是软体问题 11/12 10:45
44F:推 devilkool: 新学到东西然後想起过去的code写得有够烂时 11/12 10:49
45F:推 cphe: 打掉重练政治问题比较多,做久就知道为什麽,有时候不是你想 11/12 11:05
46F:→ cphe: 做就有办法执行 11/12 11:05
47F:→ cphe: 除非上面决策的人打从心里想这麽做 11/12 11:05
48F:→ testPtt: 重构最基本要有明确的spec 11/12 11:13
49F:→ IDL: 想离职时 11/12 11:24
50F:→ alihue: 重构是一群小修改的集合...稍微抽出method或rename都算 11/12 11:36
52F:→ alihue: 虽然繁中译本已经绝版,但简体书大家也可以加减看一下 11/12 11:39
53F:→ alihue: 作者就是定义重构的人 11/12 11:40
54F:→ alihue: Its essence is applying a series of small 11/12 11:41
55F:→ alihue: behavior-preserving transformations, each of which 11/12 11:42
56F:→ alihue: "too small to be worth doing". 11/12 11:42
57F:→ vi000246: 我是会考虑重构对我是否Z>B 如果以後能省很多时间 11/12 11:48
58F:→ vi000246: 我就会重构 而不是以公司角度考量 11/12 11:49
59F:推 Argos: 政治的确才是真正的问题 但我上面在说的是工程师本身的态度 11/12 12:01
60F:→ Argos: 一堆人就是宁可放在那边烂也不想去动 甚至上面给你时间叫你 11/12 12:02
61F:→ Argos: 改你都千推万推找一堆藉口 这种就是垃圾 软体界的毒瘤 11/12 12:02
62F:→ Argos: 你想重构但上面不给你时间和资源那就算了阿 至少你提过了 11/12 12:03
63F:→ Argos: 有想要重构的态度出来就行了 至少在这种心态下 你新产出的 11/12 12:03
64F:→ Argos: 程式不会差到哪里去 因为过去的垃圾你都看不顺眼了 11/12 12:03
65F:→ Argos: 但如果懒得去管过去垃圾 那非常有可能未来也是继续出垃圾 11/12 12:04
66F:推 a926: 重构很难? 11/12 12:06
67F:→ alog: 没有人排斥重构 是你本不该就随便乱动已经final的code 这种 11/12 13:33
68F:→ alog: 都是团体内有共同共识考量到长期维护同案/持续上线营运的才 11/12 13:33
69F:→ alog: 会慢慢修改 你一人专案或完全你负责要怎样改都是你的事 11/12 13:33
70F:→ alog: 只要是在合理的时间范围完成你要自high/练功都行 11/12 13:34
71F:→ alog: 重构都是会发生在有必要做的时候 而有必要做的时机是在你真 11/12 13:37
72F:→ alog: 的有看到明确的问题时候 11/12 13:37
73F:→ alog: 你知道怎麽改比较正确 跟获得更大效益 11/12 13:37
74F:→ alog: 不是你在那里自high想改就在那里下刀动手 11/12 13:38
75F:→ alog: 小弟做系统帮专案做重构改了数百组核心也写了数百组测试不 11/12 13:39
76F:→ alog: 知道这个心得不知道够不够格 11/12 13:39
77F:→ alog: 上次一位只是改个function觉得没问题也测过了上线直接当天 11/12 13:40
78F:→ alog: 飞起来 你以为没压力啊 11/12 13:40
79F:→ robber1234: 加薪的时候 11/12 13:41
80F:→ alog: 我刚好朋友也有主力的产品 一个系统的营收是用千万在计算 开 11/12 13:42
81F:→ alog: 个 Basecamp 看到满满记载要重构的地方 都是有原因跟理由的 11/12 13:42
82F:→ alog: 真的从来没看过用感觉在做事 干这件事的人已经飞上去了 11/12 13:43
83F:→ alog: (上述那位) 11/12 13:43
84F:→ massrelay: 需要花多久时间才是重点 11/12 14:19
85F:推 diabloevagto: 要离职的时候,重构爆掉就不用救了 11/12 18:11
86F:推 iamshiao: 随时 11/12 18:12
87F:推 SHANGOYANYI: cp改一改就好了 别没事找事 没人会感谢你的 11/12 18:53
88F:推 YAYA6655: 退休後 11/12 22:06
89F:推 clamperni: 神明托梦说改就改 11/12 22:14
90F:推 solonwu: 有把握不会出包的话我会重构 11/12 22:39
91F:→ windlll: 旧的不动,新的慢慢写,然後拿之前的test跑三次 11/12 23:09
92F:→ windlll: 确定没问题後才拿出来 11/12 23:09
93F:推 new122851: 自己的扣才会 别人的扣一不小心没用好 自找麻烦 11/13 00:21
94F:推 ppHomer: 重构有很多层次 只是约分/提出一个共用的func 也算重构 11/13 11:50
95F:→ ppHomer: 将某变数或函式 rename成比较有意义看得懂的名称也是重构 11/13 11:53
96F:→ ppHomer: 将重覆出现的字串 改成const variable来使用也是重构 11/13 11:54
97F:→ ppHomer: 虽然都是小小的整理 都算是重构, 也都需要进行测试 11/13 11:56
98F:→ vul3kuo: 长官看你都准时下班的时候 11/13 13:27
99F:→ bobju: 既然你会犹豫,那就是想得不够彻底,想到你决定要做(或不要), 11/13 15:45
100F:→ bobju: 那就对了 11/13 15:45
101F:推 tvbic: Never 11/13 19:43
102F:→ loadingN: 吃饱太闲? 自己开个branch去玩啦 11/14 01:15
103F:推 lnmlee: 你想要长期领养这只野猫的时候你就会想为他洗澡 11/15 15:10
104F:推 ak2840: 打掉就不是重构了 那是重练 11/16 14:46
105F:嘘 THEWORLDS: 复制一份 11/18 09:33
106F:→ lp2650056: 大程式重构...?呵呵 11/26 16:08







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灯, 水草

请输入看板名称,例如:Boy-Girl 或 站内搜寻

TOP