Soft_Job 板


LINE

我這篇寫的跟原原PO的狀況無關 ※ 引述《tbpfs ( http://pse.is/tbpfs )》之銘言: : 其實我真的不懂為什麼要急著重構 : 有好處嗎? : 一般而言,重構都是發生在農閒的時候 重構有好處, 而且有不得不做的狀況 我曾經遇到效能瓶頸, 發現是在整個流程順序上只要重新調整並安插幾個預處理的階段就能大幅提升效能 但原本的code就不是很clean, 隨便一個method破500行, 一個class有7、80個method 有二十多個boolean變數當作flag在控制狀態(但其實只要用3個變數就能搞定) 並且沒有unit test作保護 所以: 1. 花時間補unit test、再重構 2. 重寫 2當然最不實際, 1很多公司也不會認同, 所以最後就是直接做重構, 效能最後當然是有出來, 可讀性也提升很多 但老實講, 做的真的很痛苦 平時順手整理code那當然是舉手之勞 用千行來計的重構絕對不想再做一次, 重構完bug還算你頭上, 爽只有爽到別人而已 很多老鳥應該都知道了,這邊建議剛出社會的新鮮人: 就算你知道重構能夠大幅提升效能改善可讀性, 也要裝作不知道, 更不要主動提出重構 被你重構code的人可能會不爽你, 自己做了工作還變多 錢還是一樣, 爽只有爽到其他同事而已 公司大家寫哪種code就跟著寫哪種, 寫爛code搞得難維護更顯得你重要, 反正pm也不懂 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.112.12 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1593049606.A.118.html
1F:→ leo5916267: 我個人很難對這種無可奈何妥協,所以我寧願改的很痛 06/25 10:32
2F:→ leo5916267: 苦,我也不寫糞扣,反正大不了就開除我也沒差 06/25 10:32
3F:推 ura1210: 大家好像很害怕重構 如果是以TDD開發的話 重構只是其中 06/25 10:36
就我所知國內不少公司是沒有在run tdd, 就算有, 稍有年紀的公司還是會有legacy code
4F:→ ura1210: 一個步驟而已 如果重構沒有建立在單元測試上 那重構可能 06/25 10:36
5F:→ ura1210: 會提早結束你的職業生涯 06/25 10:36
重構當然還是從簡單的整理開始做起, snippet內的邏輯是能夠確認的; 我覺得把單元測試與重構的成功與否畫上等號是有點詭異的 ※ 編輯: EricTCartman (36.231.112.12 臺灣), 06/25/2020 10:47:11
6F:推 Nitricacid: 台灣應該是要重構就塊陶吧= = 單元測試只能保護你加 06/25 11:07
7F:→ Nitricacid: 功能的時候不要弄壞 06/25 11:07
8F:推 ura1210: 依據Martin Fowler的定義「在不改變軟體外部行為的前提 06/25 11:10
9F:→ ura1210: 下,改變其內部結構,使其更容易理解且易於修改 」,我 06/25 11:10
10F:→ ura1210: 的認知是重構並不是效能優化而是增加可閱讀性,如果沒有 06/25 11:10
11F:→ ura1210: 以單元測試案例為基礎,那麼重構就是在增加引入bug的機 06/25 11:10
12F:→ ura1210: 會 06/25 11:10
假設有10000行code, 流程會參考某個物件的狀態而變化, 今天重構其中100行, 在這100行內改變該物件的狀態, 補了測試也證明該單元沒有錯 但除此之外還有9900行, 實務上你也會把那9900行的測試補完才繼續重構嗎? ※ 編輯: EricTCartman (36.231.112.12 臺灣), 06/25/2020 11:22:56
13F:推 TAKADO: 原po的例子應該是他要先重構別人的code才有辦法加優化的功 06/25 11:21
14F:→ TAKADO: 能進去,這種就常常改也不是,不改也不是。但是”在台灣” 06/25 11:21
15F:→ TAKADO: ,要嘛重構就默默做完不要聲張,頂多就是簽入時留個到此一 06/25 11:21
16F:→ TAKADO: 遊註解深藏功與名,要嘛就是你位置足夠高,可以主導架構或 06/25 11:21
17F:→ TAKADO: 專案方向跟時程,不然很多時候都是自找麻煩。 06/25 11:21
18F:推 vi000246: 只能在開發相關功能時順手改 這樣才會測到比較保險 06/25 11:36
19F:→ ura1210: 如果我要重構1萬行的程式 我還是會先寫單元測試 但如果 06/25 11:45
20F:→ ura1210: 考慮時程壓力 這種技術債的東西誰接誰倒楣 06/25 11:45
21F:推 Csongs: 推先寫測試再重構,上線沒寫測試重構根本搞事 06/25 12:03
22F:推 jack529: 有測試重構才舒服啊,改完跑測試全過就舒坦,但寫測試才 06/25 12:05
23F:→ jack529: 是真正地獄XD 06/25 12:05
24F:推 Csongs: 另外接收別人的code重構 ,根本吃力不討好 06/25 12:07
25F:推 kingofsdtw: 雖然閉著眼睛良心上很痛苦... 06/25 12:11
26F:→ kingofsdtw: 但是也只能等產品整個周命期過.. 06/25 12:12
27F:→ MOONY135: 我有看過拿著重構去跟公司要時間的人,通常都是..... 06/25 12:14
28F:→ MOONY135: 上面會說你想重構是你的事情 但時間到東西還是要出來 06/25 12:15
29F:推 devilkool: 個人滿喜歡加新功能時順便重構 還好本來就有unit test 06/25 12:15
30F:推 seal0112: 重構如果不算考績, 然後還被靠腰說那是你自己平常就要維 06/25 12:25
31F:→ seal0112: 護的 你就不會想重構了 06/25 12:25
32F:推 comicat: 但有些code一整包雜在一起,很難在重構前先有單元測試.. 06/25 12:26
33F:推 yamakazi: 我們公司反而很鼓勵重構,因為產品已經發展成熟沒什麼事 06/25 12:26
34F:→ yamakazi: 做,只好常常重構來硬擠出一點事做 06/25 12:26
35F:→ comicat: 測試如果寫得比待測程式更複雜,也只會增加維護困難吧.. 06/25 12:27
36F:推 tvbic: 這才是職場真實環境 06/25 12:45
37F:→ t64141: 增改需求時順便重構,這樣出 bug 比較好解釋,否則就只能 06/25 14:44
38F:→ t64141: 特別找出維護/效能上的改善點來說 06/25 14:44
39F:推 Gaitz: 這跟重構的定義不一樣吧 根本不是重構 已經是為了效能提升 06/25 17:08
40F:→ Gaitz: 做的新功能了 06/25 17:08
不是重構; 但沒重構很難做改善. 重構途中也有可能踢掉重複、冗餘的計算部分
41F:→ Gaitz: 這只說明你們公司在開發 feature 根本沒有做測試而已 XD 06/25 17:09
是針對10年前的code進行效能提升, 我不覺得提升效能算是做一個新feature legacy code沒做測試這是大家都知道的事
42F:→ TonyQ: 是說寫 test 也只能測到已知的問題, 我意見跟樓上一樣, 06/25 18:10
43F:→ TonyQ: 這是重新開發新功能了. XD 06/25 18:10
44F:→ TonyQ: 另外重構不會碰到一萬行還是一千行的問題,重構就是涵蓋問題 06/25 18:11
45F:→ TonyQ: 一萬行或一千行沒有差別, 做法都是一樣的. 06/25 18:11
做法一樣, 時間跟規模不會一樣, 這你認同吧 ※ 編輯: EricTCartman (36.231.112.12 臺灣), 06/25/2020 21:01:02
46F:→ viper9709: 推一樓 06/27 01:27







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

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP