作者TurtleGods (我阿肥拉)
看板Soft_Job
標題Re: [心得] 花了很多時間重構卻被打槍用舊code
時間Thu Sep 18 22:02:50 2025
既然有人發文了,那我也來閒聊閒聊
程式碼阿,就不斷地推陳出新
新架構淘汰舊架構,舊架構不重構也遲早因為各種理由被砍掉
前公司很有遠瞻性
他們終於發現.Netframework 4.0 這東西不行了(大約20年)
webform搭配jQuery,連一個打後端API的功能都沒有
我剛到的時候看到 PageLoad() 一臉黑人問號
然後也去了解,為啥我們客戶十幾萬,使用網站的比率不到2成
用那不到2成的功能
甚至很有心的實地訪談,出題目去找客戶使用,找找問題在哪裡
簡單說結論:
因為難用到不行啊
介面老舊,轉圈圈超久,功能分類奇差無比
還會從.cs 檔案傳字串回去前端組元件(懂得都懂)
然後就報錯
回來主題,所以他們花了三年的時間準備、規劃
找了廠商重新設計UI,請了新的前端工程師套用Angular前端頁面
搭配.Net Core 8 想要重新改革
改成微服務架構跟上雲端
這一切都是上面有心要改革想要做好的內容(畢竟花了三年)
上工做了半年以後
來了一個新長官
新來的長官覺得這太浪費時間了,『啪! 沒了!』
但是他還是想要有新的功能
所以最後他決定把Angular鑲嵌進去webForm裡面
就是某些新功能點進去,畫面是由Angular來做的
後端API改成中台架構那是另一個故事
最終結論
沒錯,要不要重構不是我們這些小工程師決定的
就算長官決定要做了,而且也已經開始做了
也是有可能新來的長官一來你就GG
畢竟大家都是出來混口飯吃的
真的不爽逃命比較實在
重構做好了沒有KPI,做壞了全部算你頭上
說來說去每間公司都是洞
就自己挑一個比較舒服的洞蹲著吧
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.194.218 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1758204173.A.566.html
1F:推 CRPKT: 整套翻新就儘量用 strangler fig pattern 吧09/18 23:09
2F:推 brucetu: 中台就是個傻逼架構09/18 23:36
3F:→ brucetu: 真正該解決的問題不去解 引入更多的複雜度以為可以解決09/18 23:37
4F:→ brucetu: 問題 實際上只是騙開發經費 早晚要整套打掉重做09/18 23:37
我完全同意你說的
目前的這一大包,就是因為以前不願意升級架構
一堆程式碼跟開發流程為了將就這坨垃圾
導致後續開發維護上的一大困難
好不容易有人要出頭要做事情
又被收回去惹
5F:推 qqqlll666: 新長官就敏捷啊 前任那套瀑布開發 三年規劃 半年開發09/19 05:41
6F:→ qqqlll666: 上線日不知道哪時候 你怎知道你做的是顧客要的 上線09/19 05:41
7F:→ qqqlll666: 後流量到縮怎辦?09/19 05:41
8F:→ qqqlll666: 升級架構本來就是要漸進式 慢慢把webform 邏輯抽成獨09/19 05:41
9F:→ qqqlll666: 立api 用現代框架疊新頁面 迭代交付才能控制風險09/19 05:41
10F:→ qqqlll666: 大破可能大立 但更多的是直接死給你看09/19 05:41
11F:→ qqqlll666: 當然啦敏捷對工程師通常不是啥好事 大家都想重寫 誰想09/19 05:41
12F:→ qqqlll666: 去改別人留的坑09/19 05:41
半年開發是因為新的主管砍掉專案了,不是只開發半年就要上
原本的目標是要逐漸拆功能,跟舊的併行
慢慢引導客戶到新的網頁去
然後,這網站沒有量縮問題
因為本來就沒流量
13F:推 pmove: 同意樓上,09/19 08:48
14F:→ pmove: 大家都想重寫,09/19 08:48
15F:→ pmove: 只有少數人想看前人的code09/19 08:48
這不是大家想重寫
是上面有心想重寫
就是那堆疊迭代的思維
不把問題根除,反正總是有更重要的事
造就了我上次的文章結果
老實告訴你,這公司大家只想養老退休
那一堆爛扣是給後來的人看的
16F:→ brucetu: 這不叫敏捷喔 把 angular 鑲嵌到 webform,以後要改成正09/19 09:21
17F:→ brucetu: 常的spa有多少工要做XD 差不多又是重寫一整套的工作量09/19 09:21
18F:→ brucetu: 甚至超過 因為你要釐清在webform生命週期下的這些頁面09/19 09:21
19F:→ brucetu: 行為 確保你新的常規spa應用是否有相同的行為。不是你把a09/19 09:21
20F:→ brucetu: ngular component 拿出來兜一兜就好了09/19 09:21
我就不懂這維護到底要怎麼做
有問題到底要算在哪邊,要怎麼去抓問題
真的到時候要翻,還是要全翻
21F:推 s0914714: 有賺錢就好 網站沒人用大家更輕鬆09/19 11:32
22F:→ s0914714: 就算新的網站上線 團隊開發的思維沒變一樣會搞爛09/19 11:34
對啊有賺錢就好
反正公司不是靠你的網站賺錢的
你網站怎樣都沒差
23F:→ doo102510: 當你東湊西湊 東西還是可以運行 無形間你的功力就大增09/19 17:59
24F:→ doo102510: 了 下次面試你就多了一堆東西可以講09/19 17:59
你確定你要拿webform跟別人談嗎?
25F:推 abc21086999: 怎麼聽起來是金融業09/19 18:44
這個我們有機會再談
26F:推 p62448: 這故事看一看覺得很熟悉,有機會說說中台架構的故事嗎09/19 19:03
下次吧
我之後整理整理再來聊聊
27F:→ dildoe: 結果都是人跟管理問題最大 企業IT 沒比較多都 呵呵09/19 20:43
28F:推 TAKADO: 台灣style的敏捷開發基本上只是用來榨乾PG的工具09/20 01:02
29F:→ dildoe: 管理層自己都搞不定了 帶大家瞎忙最實在了XD09/20 06:40
30F:→ MOONY135: Hotfix跟需求我全都要 才是台灣敏捷的style09/20 08:38
我覺得需求都只剩fix
然後搭配一些無關緊要的功能
例如法規之類的
31F:→ airtsubasa: CRM本來就不管客戶啦09/20 08:42
網路銀行
有沒有都沒差,反正都能分行端處理
32F:推 umum29: 你是不是再說長榮航空的網路訂票系統 ?09/20 12:37
33F:→ umum29: 每次看到那個aspx副檔名我就搖頭09/20 12:38
34F:→ umum29: 內部系統用老舊framework就算了 但公開的網站需要高安全性09/20 12:40
35F:→ umum29: 舊的框架有其安全侷限 security scan就一堆安全性問題09/20 12:42
安全性問題
小聲說,這是另一個笑話了
36F:推 abccbaandy: 那又怎樣? 你還不是乖乖用,而且有出問題嗎?09/20 15:31
看你要出什麼樣的問題
說的也沒錯,沒人用就是沒人用
反正不用,就去分行叫分行用
37F:推 aass5576843: 換個工作09/20 16:26
對啊,一個蘿蔔一個坑
找個自己喜歡的蹲
38F:推 jacky841224j: 雖然不同產業,但也遇過一模一樣的狀況09/24 09:10
39F:推 Nitricacid: angular + webform 太美了吧 笑死09/24 21:58
我其實有跟他講過
這以後維護上是找自己麻煩
不過喊了半天放了一年多,什麼都沒做
也可以當他只是說說而已
公司大,不怕不怕
40F:→ AvatarH: 我會看前人的code,想知道做了些什麼09/25 08:16
我也會看啊
到職的時候先把git history看一下
我只看到
「20230501程式上線」
的log紀錄
41F:推 NDark: 我猜這個上線的說不定是把開發好的另外commit到新repositor09/25 11:12
42F:→ NDark: 正確來做也要用push的。這樣歷史會保留下來09/25 11:12
43F:→ NDark: 當然也可以把歷史都壓掉 有些公司的merge 會這樣做09/25 11:13
44F:→ NDark: 我個人是喜歡看那些每一筆做了什麼09/25 11:13
我可以斬釘截鐵地告訴你,不是
版控是跟後中台一樣的另一個章節
我有發過文,你可以去看看
※ 編輯: TurtleGods (49.218.147.44 臺灣), 09/25/2025 12:02:30