看板 Soft_Job 關於我們 聯絡資訊
※ 引述《VScode (VSisBestIDEinTheWorld)》之銘言: : 假設以下情境 : 有個功能A、B都會用到相同邏輯,且有兩份重覆的code : (沒有unit test保護,而且年久失修 要加入unit test會需要更多時程) : 現在要加入C,也會用到相同邏輯 : 身為合格的工程師 應該會把ABC重覆的部份提取出來 : 而不是讓這邏輯重覆三次 : 但以公司營運的角度來看 這次專案就只會測試C的部份 : 不應該動到A、B : 這時就要冒著A、B壞掉風險重構,或是因為來不及加入unit test : 就乾脆讓相同邏輯存在三個地方 : 身為專業工程師,我很想選擇重構 : 但過去的經驗告訴我 : 絕對要以kpi為最優先考量 : 於是程式充滿了註解、重覆片段 : 雖然靠著筆記、git log,能還原當時寫code的思路 : 但這些髒code就會永遠留存在程式裡 : 想問大家遇到這情況會怎麼做? 感覺這個標題就是個假議題,你說不重構A、B因為Unit test來不及寫,那你新寫的C就不 用unit test了? 然後你又說三個code一模一樣,假設你幫C寫完unit test了,那你不就也把AB搞好了嗎? 再退一萬步來講,AB沒有unit test大家用的那麼爽你還硬要去動也只是吃飽太閒,不如 好好寫你C的unit test,寫完大家就用C就好啦 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.207.136.165 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1645837075.A.310.html
mmonkeyboyy: 推02/26 09:11
xam: 他是說ABC其中各有一小塊重複的,變abc..02/26 10:07
如果是不同東西的話也完全沒必要動 ※ 編輯: handsomeLin (98.207.136.165 美國), 02/26/2022 10:13:05
jlhc: 這篇正解... 所謂的專業不是自己想怎麼搞就怎麼搞... 02/26 10:44
pttano: 評論要不要重構不能只看程式碼的邏,原原po應該是菜鳥 02/26 11:34
pttano: .......................................邏輯 02/26 11:35
knives: 菜鳥最喜歡重構了,以為很行 02/26 14:09
abccbaandy: 推樓上,一堆沒經驗的整天在那邊重構,搞出一堆問題 02/26 14:41
lovdkkkk: 不過就是要這樣 才會有經驗啊 02/26 14:44
t64141: 怎麼推文說得像是重構像是一種錯誤行為一樣... 02/26 15:01
sniper2824: 不好說 02/26 15:24
fadeawaygod: 重構只在有完善測試的情況下才能安全進行,測試越少 02/26 15:30
fadeawaygod: 風險越大,故重構並不是在每個context下都是好的行為 02/26 15:30
nh60211as: 有些人重構跟亂寫沒兩樣 02/26 15:34
now99: 現有測試再來重構 02/26 17:16
wulouise: 重構跟砍掉重練不一樣,一次改太多又沒測試沒bug才奇怪 02/26 21:34
CaptainH: Code的價值不在優不優雅 在於有沒有帶來新利潤 02/26 22:49
CaptainH: 請問你重構的目的是為了節省記體?為了執行更快?為了 02/26 22:51
CaptainH: 未來擴展性?還是為了規模化? 02/26 22:51
CaptainH: 不要只為了code不合"優雅"的定義而重構 02/26 22:53
mmonkeyboyy: 重構有時比砍掉重練難多了= =" debug 不如 delete 02/26 23:54
mmonkeyboyy: code 優不優雅這回事 可以加上註解 最終還是看出來 02/26 23:54
mmonkeyboyy: 的東西是什麼鬼 沒利潤真的懶 除非是要改架構再說 02/26 23:55
mmonkeyboyy: 不然光去找人協調就幾個月過去了 02/26 23:55
superpandal: 重構要看你有沒有這個決定權以及是誰想要重構 有時候 02/28 20:23
superpandal: 你想要重構上頭不准 有時候你不想重構上頭想 XD 02/28 20:23
superpandal: 通常上頭想的不是上頭自己也操刀 02/28 20:25