作者alihue (wanda wanda)
看板Soft_Job
標題Re: [討論] 前人的code 後人翻寫的機率高嗎?
時間Mon Sep 24 21:23:23 2018
會重構的專案最後都是同一種原因:
降低維護成本
諸如
1. 重構雜亂無章的偷渡資料
2. 每次一加欄位可能會從頭壞到尾
3. ...
會重構的契機通常是隨著專案越來越肥大,小需求的開發時間越來越長
重構由小到大,
從重複使用的抽出,
到重新制定 interface / architechture / 前後端分離都有
但重構前請記得為重要的部分寫 unit test,越完整越好,
至少重構完可以比較不用怕哪個環節出差錯。
如果不打算寫 unit test,就請你讓他乖乖在那就好,不要動它
否則你就只是在把坑挖得更深
另外重構很需要好的 IDE,
至少要可以看到此 function 的所有 references/implementation/hierarchy
也可以砍掉完全沒人用的 object / property 等
//------
有另外一種人叫做菜逼八,
重構只是因為太菜看不懂 code,想要自己重頭寫
或是想要盲目用最新技術重寫
重構前請檢視自己是哪種人
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.210.202
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1537795405.A.81E.html
※ 編輯: alihue (36.228.210.202), 09/24/2018 21:26:59
※ 編輯: alihue (36.228.210.202), 09/24/2018 21:28:07
1F:推 kurtsgm: 推最後幾句...盲目想翻code常見於剛畢業的小朋友 09/24 21:31
2F:→ kurtsgm: (其實我年輕的時候也動過類似念頭 ㄎㄎ) 09/24 21:31
3F:推 kewang: 看到「要有很好的 IDE 」突然想到,如果是 java 用一堆 re 09/24 21:44
4F:→ kewang: flection 的話,重構要特別注意這塊啊啊啊! 09/24 21:44
5F:推 vi000246: 有那麼好重構的話銀行就不會用古老語言了 09/24 21:46
感覺還是看公司風氣,
像是證交所應該一天到晚都隨著改法規在改扣,
最近又要改成即時撮合,
應該也是有經歷過重構的日子
※ 編輯: alihue (114.136.141.252), 09/24/2018 21:50:14
6F:→ MOONY135: Trace完之後我就乖乖放棄了 09/24 22:15
7F:推 tennyleaz: 以前把一個VC6的一個功能用C#重寫,用起來神清氣爽很多 09/24 23:11
8F:推 banqhsia: 雖然要重構前要先加test,實際上舊系統如果這麼好測試的 09/24 23:20
9F:→ banqhsia: 話,後人通常也不會想重構… 耦合度太高,想重構發現整 09/24 23:21
10F:→ banqhsia: 個系統都要改… 09/24 23:21
11F:→ banqhsia: 應該說,如果非常 testable 的話,通常也不需要重構… 09/24 23:21
12F:→ bndan: 推最後4句...有些時候 在沒完備測試支援下 舊的程式可靠度 09/25 13:08
13F:→ bndan: 至少有時間的檢驗... 09/25 13:09
14F:→ l3161316: 重寫跟重構是兩回事吧 09/26 19:10
15F:推 Sex5F: 科科過去我也是小白看不懂 10/16 11:21
16F:→ Sex5F: 現在爛code照樣能改 10/16 11:22
17F:→ Sex5F: 我沒說code寫的好喔,高手強在爛code也能改 10/16 11:22