作者kingofsdtw (塔綠班)
看板Soft_Job
標題[心得] 花了很多時間重構卻被打槍用舊code
時間Sat Sep 13 19:39:23 2025
最近案子快收尾在收斂bug
身為救援大隊長的老人我被指派到維護一個很老的API
老API的設計已經無法滿足擴充需求
新的擴充功能造成BUG
於是我花了大量時間甚至debug到天亮甚至請無薪假
新的API經過我反覆測試各種case都完美無缺
但是code review卻被質疑:
1. 是不是沒找到root cause
2. 幹嘛改動如此大? 只不過新加一點點功能幹嘛改架構?
心中五味雜陳...
好歹我也是coding master,我說該重構了就是該開始還技術債了
更上頭還是希望用最鴕鳥的方法繼續用舊架構一堆workaound當作root cause
是該離職了嗎? QwQ
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.241.68.207 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1757763572.A.6B3.html
1F:推 cancelpc: 維護的是你,不是他們。所以他們只想安全牌。不會管技術 09/13 19:41
2F:→ cancelpc: 債換人厚,會多難接。一堆不知所以然的code。 09/13 19:41
所以心中五味雜陳
※ 編輯: kingofsdtw (123.241.68.207 臺灣), 09/13/2025 19:43:17
3F:推 SHANGOYANYI: code直接丟github開源全世界共享 然後特休全壓放老 09/13 19:49
4F:→ SHANGOYANYI: 人自己去解root cause啊 這還要教? 09/13 19:49
5F:推 johnbill: 錢給到位嗎 有成長空間嗎 都沒有就走人XD 09/13 19:51
6F:→ dildoe: 公司:能動最重要,你有看過醫院那些名醫看小病就要開刀的 09/13 20:03
7F:→ dildoe: 嗎??XD 09/13 20:03
8F:→ dildoe: 特別是老人家,沒事就別亂開刀了萬一有糾紛 09/13 20:05
9F:→ dildoe: 理由一大堆不用當真 09/13 20:09
10F:→ kissmickey: 一堆公司都這樣 能動就好改這麼大做什麼 出問題你扛得 09/13 20:19
11F:→ kissmickey: 住嗎 09/13 20:19
12F:推 yamakazi: 可以重構啊,你不會等案子結束再重構? 09/13 20:24
13F:→ kissmickey: 問題是你重構完 上頭買單?其他人接手會用會改?要多 09/13 20:29
14F:→ kissmickey: 少時間熟悉你的code 09/13 20:29
就是新人同事(3-5y)解不掉才掉到我頭上的QwQ
※ 編輯: kingofsdtw (123.241.68.207 臺灣), 09/13/2025 20:33:47
15F:→ kissmickey: 以上這只針對公司老人 09/13 20:34
16F:推 hooll111: 可能只是不想要欠這種人情 也不想花錢請你重構 所以才這 09/13 20:35
17F:→ hooll111: 樣回 09/13 20:35
18F:→ kissmickey: 很久以前我也跟你一樣 後來看開了 拿多少錢做多少事 09/13 20:36
19F:→ kissmickey: 除非上頭有交代 09/13 20:36
20F:→ kissmickey: 不然這些重構還是新東西自己改改玩玩 不會放檯面上, 09/13 20:36
21F:→ kissmickey: 頂多找面試拿來講講 09/13 20:36
22F:→ MoonCode: 那你就新舊都兼容啊 你的 pr 應該只有增加的行數沒有砍 09/13 20:44
23F:→ MoonCode: 舊邏輯 09/13 20:44
24F:→ NDark: 專案要先把責任切開 大雜燴下 對專案的風險感就會混雜 09/13 21:08
25F:→ kingofsdtw: 程式已經亂到flag亂跳... 09/13 21:08
26F:→ kingofsdtw: 可讀性0.. 09/13 21:08
27F:推 abccbaandy: 老人還被質疑喔... 09/13 21:29
28F:→ ericthree: 是說派你去救火的人 又不滿意你的方案嗎== 09/13 21:31
29F:推 Bencrie: 他錢有給到你捨不得離職嗎 XD 09/13 21:56
30F:→ kingofsdtw: 上面還有更老的的人啊... 09/13 22:02
31F:→ keke0421: M有要你重構?如果沒有,你要重構,不應該先跟他討論?y 09/13 22:08
32F:→ keke0421: 說到底 IC 也只是 M 的資源,資源怎麼用是M的職責和權力 09/13 22:08
33F:→ keke0421: 事情發生後,建議可以去找M聊,解決問題 而不是想著離職 09/13 22:09
34F:推 arhtur945: coding master是什麼鬼 09/13 22:31
35F:→ GoalBased: 如果你不確定這個決定會不會被靠腰,你可以找比你懂公 09/13 22:40
36F:→ GoalBased: 司狀況的人或者主管討論,而不是自己做決定 09/13 22:40
37F:→ MoonCode: 那你就真擴充而不是順手重構 看行數最快 09/13 22:42
38F:→ umum29: 除非你是決策者否則要重構要看大家意見 這不是技術好不好 09/13 22:45
39F:推 accessdenied: 我有遇到遇到跟你一樣的狀況。明明團隊 wiki 有前人 09/13 22:55
40F:→ accessdenied: 留下 guide line,寫童子軍原則:順手改掉周圍的爛 09/13 22:55
41F:→ accessdenied: code。結果 review 後被要求全部 revert 回去,因 09/13 22:55
42F:→ accessdenied: 為 reviewer 覺得跟需求無關的變動太多,造成他的負 09/13 22:55
43F:→ accessdenied: 擔。 09/13 22:55
44F:→ MoonCode: 順手要能改前提是有測試吧 不然應該是先補測試 09/13 23:21
45F:推 CRPKT: 這是重寫,不是重構 09/14 00:24
46F:推 viper9709: 推一樓~都到master了,講的話還沒人信喔@@... 09/14 00:27
47F:→ bear1414: 原始任務是解bug。要開新任務(重構),請先和派任務的 09/14 01:44
48F:→ bear1414: 人溝通。 09/14 01:44
49F:→ fanatics5566: 上線前:亂一點沒關係先把東西趕出來我們再回頭重 09/14 01:56
50F:→ fanatics5566: 構/ 上線後:好好的你改它幹嘛? 09/14 01:56
51F:推 guanting886: 你的好意可能是他人的災難 有些東西還是要討論一下 09/14 02:21
52F:→ guanting886: 再決定 不要做無效工作 忙的要死得了一個非預期的結 09/14 02:21
53F:→ guanting886: 果 自己很挫折無意義 09/14 02:21
54F:推 WaterLengend: 讓你認清現實這間公司是來甩鍋的不是來貢獻的 09/14 02:57
55F:→ indexcome: 我只覺得coding是你 testing也是你 是一件很奇怪的事 09/14 05:55
56F:→ indexcome: 情 09/14 05:55
57F:推 ku399999: 這件事的問題是 事前溝通。沒說服就做 浪費彼此時間 09/14 08:52
58F:推 hduek153: 你這也不是一天的工作吧 中間沒人反應?? 09/14 09:26
59F:→ VScode: 該離職了 09/14 09:36
60F:→ pot1234: 重構前稍微跟別人提一下吧… 09/14 09:41
61F:推 OriginStar: 看過一些溝通方面的書籍,原PO上層還有決策者的話,要 09/14 09:44
62F:→ OriginStar: 先說服或告知決策者,讓他們心裡有預期,看起來你做的 09/14 09:45
63F:→ OriginStar: 和決策者的預期有所出入,才會被打槍 09/14 09:46
64F:推 longlyeagle: 沒先溝通好的問題 09/14 09:54
65F:推 dream1124: 原始任務是除錯對嗎? 這樣的話,設計爛做不了就回報吧 09/14 10:27
66F:→ dream1124: 不然把除錯做成更花資源且異動更大的重構人家也不領情 09/14 10:28
67F:→ dream1124: 說重構可能還客氣了。如果直接變成新API,那算是改寫或 09/14 10:29
68F:→ dream1124: 重新設計……這樣如果人家不收其實也不令人非常意外 09/14 10:30
69F:→ DrTech: 原本維護API可以很多人維護,你這一改,只剩你知道了。這 09/14 11:23
70F:→ DrTech: 樣真的是只有自己對嗎? 不一定喔。 09/14 11:23
71F:→ DrTech: 你有權限負責整個專案,或整個部門的考績嗎? 沒權限的話 09/14 11:26
72F:→ DrTech: ,這樣改。即即使技術沒問題,千萬不要認為是對的。到任何 09/14 11:26
73F:→ DrTech: 公司都可能得罪人。 09/14 11:26
74F:推 ILoveAMD: 取暖喔 自以為是的重構 09/14 11:29
75F:推 tsaigi: 傻子才自己在那邊重構 09/14 11:33
76F:噓 pig2014: 通常這種情況代表沒實力的怕事裝逼仔在上位,會讓這種逼 09/14 11:44
77F:→ pig2014: 洨上去的部門主管方向感也不是很好,如果薪資不是特別好 09/14 11:44
78F:→ pig2014: 應該可以閃人了 09/14 11:44
79F:→ pig2014: 不過還是要看規模,如果是一千行以內我都覺得還好。超過 09/14 11:45
80F:→ pig2014: 一千行就真的要思考了 09/14 11:45
81F:噓 pig2014: 不用屌樓上一堆嘴重構的嫩逼,techjob都是搞硬體的廢材 09/14 11:47
82F:→ pig2014: ,而且科技業95%都是冗員廢材,所以留言有95%怕事廢材也 09/14 11:47
83F:→ pig2014: 合理 09/14 11:47
84F:→ pig2014: 幹原來是softjob,那更慘了,大部分都是台灣系新創小規 09/14 11:49
85F:→ pig2014: 模公司廢材,薪水大概半導體業1/2,更不能參考 09/14 11:49
86F:→ DrTech: 沒人嘴重構好嗎。我們嘴的是:重構前,不先溝通。 09/14 11:58
87F:推 alihue: 有共識、排進去時程的重構才比較不會出現這個問題。自己 09/14 12:12
88F:→ alihue: 重構通常都是小規模、PR review 容易看懂的規模 09/14 12:12
89F:推 tsaigi: 怎麼有人留言看一看自己破防XDD 09/14 12:24
90F:推 lturtsamuel: 你如果這麼資深了 東西又有做出來 怎麼還會有人在程 09/14 12:49
91F:→ lturtsamuel: 式碼層面質疑你?感覺很怪 是不是有牙膏沒擠 09/14 12:49
92F:→ lturtsamuel: 回到這兩個問題都很合理 而且都不難回答吧 你有沒有 09/14 12:51
93F:→ lturtsamuel: 找到根因?修正那個根因需不需要這麼大的改動?一百 09/14 12:51
94F:→ lturtsamuel: 字以內就應該回答清楚的問題 答不出來先去訓練表達能 09/14 12:51
95F:→ lturtsamuel: 力== 09/14 12:51
96F:推 jimmytzeng: 你上一位接手可能也是這樣想,然後每新來一位每一位 09/14 13:06
97F:→ jimmytzeng: 都在重構,每次專案的程式碼都不一樣 09/14 13:06
98F:噓 watashino: 問題是review前為啥不暴露一下你要做這件事 09/14 13:08
99F:→ watashino: 大家討論一下有沒有價值 09/14 13:08
100F:→ watashino: 你就自己單幹但是上面覺得沒用那就是沒用啊 09/14 13:08
101F:推 crazwade: 老問題了 你想扛上面不想扛 09/14 16:32
102F:→ crazwade: 我也遇過就是做ppt跟上面報告一輪 09/14 16:33
103F:噓 Satomisan: 看到debug到天亮就想笑 09/14 19:32
104F:→ Satomisan: 鬼島慣老闆這麼多就是你這種人養的 09/14 19:32
105F:推 Suleika: 重構要有計畫跟目標,而且定期,不是遇到問題重構 09/14 20:51
106F:→ Suleika: 你這樣搞下去有問題怎麼知道是新問題還是原問題 09/14 20:52
107F:→ Suleika: 跟質疑其實也沒啥關係,就是其他人聽了會覺得很危險 09/14 20:53
108F:→ lucky4283: 沒上頭指示幹嘛重構,不夠忙吧 09/14 21:02
109F:→ cdy815: 如果是我,就先做ppt、拉會議安排code review,最終更上 09/14 21:37
110F:→ cdy815: 面說要怎麼做就怎麼做,反正我把決策責任丟出去了,不重構 09/14 21:37
111F:→ cdy815: 我也樂得輕鬆 09/14 21:37
112F:→ stepnight: 資歷是老人,思維跟做事方式像社會新鮮人 09/14 21:59
113F:→ stepnight: 所以同一間待太久也不好 09/14 21:59
114F:推 justaID: 理解原po的無奈,code落到自己頭上,為了改得動和長久維 09/14 22:01
115F:→ justaID: 護的動,願意吃虧花時間去重構,但反而被不是在第一線負 09/14 22:01
116F:→ justaID: 責維護的reviewer質疑而覺得沮喪。只能說這種情況是政治 09/14 22:01
117F:→ justaID: 和文化問題,開發文化是由有話語權和決策權的人說了算, 09/14 22:01
118F:→ justaID: 如果溝通無果,要就加入這種文化,要不心裡的坎過不去的 09/14 22:01
119F:→ justaID: 話,那就好好打算吧 09/14 22:01
120F:推 stupid0319: 你的實力壓不過別戈才會這樣 09/14 22:27
121F:→ shooter555: 提到老api xxx 看來你這不是重構唷 改api被打槍不是 09/14 23:59
122F:→ shooter555: 很合理嗎 09/14 23:59
123F:推 viper9709: 推justaID 09/15 01:25
124F:推 Aidan79225: 開新api就好 舊的標deprecated 09/15 01:46
125F:推 Csongs: 這行多的是文人相輕 09/15 02:38
126F:→ Csongs: api 改spec 出事一定扛不住 09/15 02:39
127F:推 jamesho8743: 用你的新架構有風險 你要從頭維護到底嗎 再來你明顯 09/15 05:48
128F:→ jamesho8743: 不夠厲害 找不到root cause以及用最小的改動解決問 09/15 05:48
129F:→ jamesho8743: 題 09/15 05:48
130F:→ love99067333: 你以為〈只要能動就不要改〉是開玩笑的時候: 09/15 06:16
132F:推 matrixki: 做改動前有先向上溝通嗎?或是跨組溝通? 09/15 09:58
133F:→ matrixki: 獲得同意才做的還是你就直接做下去了? 09/15 09:58
134F:推 newkkloo2: 這代表你在公司credit還不夠吧..夠力的話誰會擋... 09/15 12:17
135F:推 GooglePixel: 溝通能力有待加強 美其名想解決問題 其實只是底層碼 09/15 13:38
136F:→ GooglePixel: 農的美好幻想 在產品先行/功能先行的團隊就是這樣 09/15 13:38
137F:→ GooglePixel: 也不見得要離職啦 可以找其他方式實現自我 參加程式 09/15 13:41
138F:→ GooglePixel: 小作坊之類的 不要用工作來實現理想 那是賺錢的地方 09/15 13:41
139F:→ ma721: 完美無缺是你自認為的,隱藏沒爆的可能比你想像的多 09/15 15:34
140F:→ windlll: 以前的公司發生過,要求重構→開需求→寫完測完→「還能 09/15 17:18
141F:→ windlll: 跑就不用換了」,浪費我時間 09/15 17:18
142F:→ ssccg: 有給你薪水就沒浪費你時間啦,別學原PO沒事自幹就好 09/15 18:04
143F:推 RINPE: 老氣 沒先確認過就自己改了嗎? 09/16 06:35
144F:推 skizard: 如果已經在公司扛這麼久,說明清楚後還不被上頭信任 我 09/16 23:27
145F:→ skizard: 是會直接走人 09/16 23:27
146F:→ kiwijang: 這種上頭的 code review 當耳邊風就好,看有沒有機會加 09/17 10:16
147F:→ kiwijang: 薪繼續忍上頭,或升遷為上頭,沒機會就換了吧 09/17 10:16
148F:→ popcool: 除非你改的地方code base只有你一個人在寫跟維護,多人都 09/17 15:40
149F:→ popcool: 會動到的地方你翻掉以前都沒先design review過?改完了才 09/17 15:40
150F:→ popcool: 說就是想硬上,本來大家熟悉的東西你確定你改了還有人看 09/17 15:40
151F:→ popcool: 的懂?上面要你修bug結果你整個翻掉,時程上都沒人發現? 09/17 15:40
152F:→ popcool: 整件事都很怪啊 master大大 09/17 15:40
153F:推 Nitricacid: 拿多少錢做多少事 沒要你做的就別做了 09/18 23:30
154F:→ knives: 首先 有人叫你重構嗎?沒有幹嘛做 09/19 16:42
155F:推 prag222: 重構你負責的部份就好,重構主要是為了自己後續方便,自 09/21 01:34
156F:→ prag222: 己舒服而已,搞太多別人酸被人嫌,正常的剛好 09/21 01:34
157F:推 prag222: 說真的不懂設計模式跟oop實際經驗,別跟我提重構兩字,一 09/21 01:39
158F:→ prag222: 律當笑話 09/21 01:39
159F:→ MoonCode: 我最害怕懂設計模式的人了 09/21 01:43
160F:推 okgogogo: 假如原本市場測了10年,你改完經得起考驗嗎? 10/04 19:55
161F:推 new122851: 耍廢擺爛即可,反正公司不能隨便開除 10/06 14:33