Soft_Job 板


LINE

事情是這樣的 小弟最近接到使用者需求 要增加幾個跟之前很像的功能 舊的那隻程式已經歷經許多測試 目前正穩定的運作中 但最初的需求很單純 因此設計得不是很有彈性 不利於擴充及更改 第一次接到需求的時候 我想了一下覺得重構有點麻煩 於是直接複製了一份然後改了需要改的地方 變成兩隻有八成像的程式 各做各的 但最近又要再增加一個 於是我開始猶豫該不該整個打掉重構 避免程式碼繼續這樣擴張下去 感覺很不專業 之後再有需求也比較好調整 但如果複製改一改大概只要一個小時 打掉重構可能要一個禮拜 還不保證會不會有甚麼多出來的bug 想請教大家在類似的情況 都用哪些標準來決定甚麼時候應該重構 --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.156.195
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1541959482.A.056.html
1F:→ kissmickey: 上面看你沒事找事做的時候 11/12 02:20
2F:→ alog: 做事情是這樣 如果你覺得某些事你這樣做可以省到後面很多時 11/12 02:26
3F:→ alog: 間你可以做 但實際效果沒有符合預期/有機會搞砸/婊到別人/ 11/12 02:26
4F:→ alog: 自己扛責/你沒有你想像中的專業有把握 你就不該隨便亂動已經 11/12 02:26
5F:→ alog: 跑的很穩定的東西 11/12 02:26
6F:→ alog: 還有不要用感覺來判斷專不專業 應該要仔細分析優缺點再來抓 11/12 02:28
7F:→ alog: 一個正確的作法 11/12 02:28
8F:推 gs8613789: 沒事做的時候 11/12 08:25
9F:推 Masakiad: 你的狀況應該是因為沒寫測試案例才會覺得重構容易有bug 11/12 08:36
10F:推 t64141: 維護越來越痛苦的時候 11/12 09:04
11F:推 ripple0129: 寫久了都會有感覺哪邊是應該要事先提出來復用的部分, 11/12 09:06
12F:→ ripple0129: 很不科學但是真的是很吃肌肉記憶 11/12 09:06
13F:→ ripple0129: 抽象一點的說就是會自動分類可變動與不可變動的部分吧 11/12 09:08
14F:推 s89162504: 千萬不要refactor 除非你吃飽了沒事幹 11/12 09:09
15F:→ t64141: 然後不要習慣複製貼上改一行,很可怕 11/12 09:21
16F:推 Argos: 看了上面一堆人排斥重構 就知道台灣軟體業只會繼續腐爛 11/12 09:41
17F:推 MixBear: 重構是持續進行的 比如你現在這時候遇到這狀況 就要拉正 11/12 09:41
18F:→ MixBear: ,而不是持續放任歪樓 11/12 09:41
19F:→ Argos: 重構這種事有時根本就舉手之勞而已 順手改一點改一點 11/12 09:42
20F:→ Argos: 老實說 會不會想去重構 跟工程師自身的修養有很大的關係 11/12 09:43
21F:→ Argos: 你夠不夠認真看待你的專業 就決定你對重構的態度 11/12 09:43
22F:→ Argos: 回到現實面 你要重構當然要跟上級討論並且獲得許可及時間 11/12 09:44
23F:→ Argos: 如果上面管理方都同意 你當然應該要開始重構 11/12 09:44
24F:→ Argos: 但這件事應該是由工程師自己發現問題 並主動向上面提出 11/12 09:44
25F:推 MixBear: 最討厭維護複製貼上一堆相似程式,然後同樣邏輯要改漏東 11/12 09:45
26F:→ MixBear: 漏西的 11/12 09:45
27F:→ Argos: 如果上面死都不願給時程 那你還有藉口讓它放著爛沒關係 11/12 09:45
28F:推 MixBear: 造成後人不便,自己也常埋地雷的程式片段 11/12 09:46
29F:→ Argos: 而不是聽到要改Legacy就避之為恐不及 11/12 09:47
30F:推 menshuei: 大部分只會重建不會重構。 11/12 09:47
31F:→ Argos: 我講的是態度方面 至於執行細節 原本Legacy連測試都沒 怎麼 11/12 09:48
32F:→ Argos: 改 嚴格來說都不算是重構就是了 XD 11/12 09:48
33F:推 ghmsxtwo: 離職前 11/12 09:49
34F:推 benqm300: http://i.imgur.com/i6k6k2F.jpg 11/12 09:59
35F:→ x000032001: 推文就推文 推一張圖幹嘛? 11/12 10:16
36F:→ benqm300: 字太多有時會被切斷跳行 11/12 10:19
37F:噓 alihue: 一堆人排斥重構,然後又嫌台灣軟體業爛 11/12 10:40
38F:→ alihue: 反正到最後也是牽拖到老闆,不檢討自己 11/12 10:41
39F:→ alihue: 市面上很多重構的方法,包含寫完整的測試與ci/cd,確定你 11/12 10:42
40F:→ alihue: 在可控的風險下重構。不重構只會讓後人東補西補,踩地雷 11/12 10:43
41F:→ alihue: 讓台灣的軟體缺一個比一個還屎 11/12 10:43
42F:→ vi000246: 重構沒那麼簡單 做得好沒人理 出錯被釘到死 11/12 10:45
43F:→ vi000246: 這是政治問題 不是軟體問題 11/12 10:45
44F:推 devilkool: 新學到東西然後想起過去的code寫得有夠爛時 11/12 10:49
45F:推 cphe: 打掉重練政治問題比較多,做久就知道為什麼,有時候不是你想 11/12 11:05
46F:→ cphe: 做就有辦法執行 11/12 11:05
47F:→ cphe: 除非上面決策的人打從心裡想這麼做 11/12 11:05
48F:→ testPtt: 重構最基本要有明確的spec 11/12 11:13
49F:→ IDL: 想離職時 11/12 11:24
50F:→ alihue: 重構是一群小修改的集合...稍微抽出method或rename都算 11/12 11:36
52F:→ alihue: 雖然繁中譯本已經絕版,但簡體書大家也可以加減看一下 11/12 11:39
53F:→ alihue: 作者就是定義重構的人 11/12 11:40
54F:→ alihue: Its essence is applying a series of small 11/12 11:41
55F:→ alihue: behavior-preserving transformations, each of which 11/12 11:42
56F:→ alihue: "too small to be worth doing". 11/12 11:42
57F:→ vi000246: 我是會考慮重構對我是否Z>B 如果以後能省很多時間 11/12 11:48
58F:→ vi000246: 我就會重構 而不是以公司角度考量 11/12 11:49
59F:推 Argos: 政治的確才是真正的問題 但我上面在說的是工程師本身的態度 11/12 12:01
60F:→ Argos: 一堆人就是寧可放在那邊爛也不想去動 甚至上面給你時間叫你 11/12 12:02
61F:→ Argos: 改你都千推萬推找一堆藉口 這種就是垃圾 軟體界的毒瘤 11/12 12:02
62F:→ Argos: 你想重構但上面不給你時間和資源那就算了阿 至少你提過了 11/12 12:03
63F:→ Argos: 有想要重構的態度出來就行了 至少在這種心態下 你新產出的 11/12 12:03
64F:→ Argos: 程式不會差到哪裡去 因為過去的垃圾你都看不順眼了 11/12 12:03
65F:→ Argos: 但如果懶得去管過去垃圾 那非常有可能未來也是繼續出垃圾 11/12 12:04
66F:推 a926: 重構很難? 11/12 12:06
67F:→ alog: 沒有人排斥重構 是你本不該就隨便亂動已經final的code 這種 11/12 13:33
68F:→ alog: 都是團體內有共同共識考量到長期維護同案/持續上線營運的才 11/12 13:33
69F:→ alog: 會慢慢修改 你一人專案或完全你負責要怎樣改都是你的事 11/12 13:33
70F:→ alog: 只要是在合理的時間範圍完成你要自high/練功都行 11/12 13:34
71F:→ alog: 重構都是會發生在有必要做的時候 而有必要做的時機是在你真 11/12 13:37
72F:→ alog: 的有看到明確的問題時候 11/12 13:37
73F:→ alog: 你知道怎麼改比較正確 跟獲得更大效益 11/12 13:37
74F:→ alog: 不是你在那裡自high想改就在那裡下刀動手 11/12 13:38
75F:→ alog: 小弟做系統幫專案做重構改了數百組核心也寫了數百組測試不 11/12 13:39
76F:→ alog: 知道這個心得不知道夠不夠格 11/12 13:39
77F:→ alog: 上次一位只是改個function覺得沒問題也測過了上線直接當天 11/12 13:40
78F:→ alog: 飛起來 你以為沒壓力啊 11/12 13:40
79F:→ robber1234: 加薪的時候 11/12 13:41
80F:→ alog: 我剛好朋友也有主力的產品 一個系統的營收是用千萬在計算 開 11/12 13:42
81F:→ alog: 個 Basecamp 看到滿滿記載要重構的地方 都是有原因跟理由的 11/12 13:42
82F:→ alog: 真的從來沒看過用感覺在做事 幹這件事的人已經飛上去了 11/12 13:43
83F:→ alog: (上述那位) 11/12 13:43
84F:→ massrelay: 需要花多久時間才是重點 11/12 14:19
85F:推 diabloevagto: 要離職的時候,重構爆掉就不用救了 11/12 18:11
86F:推 iamshiao: 隨時 11/12 18:12
87F:推 SHANGOYANYI: cp改一改就好了 別沒事找事 沒人會感謝你的 11/12 18:53
88F:推 YAYA6655: 退休後 11/12 22:06
89F:推 clamperni: 神明託夢說改就改 11/12 22:14
90F:推 solonwu: 有把握不會出包的話我會重構 11/12 22:39
91F:→ windlll: 舊的不動,新的慢慢寫,然後拿之前的test跑三次 11/12 23:09
92F:→ windlll: 確定沒問題後才拿出來 11/12 23:09
93F:推 new122851: 自己的扣才會 別人的扣一不小心沒用好 自找麻煩 11/13 00:21
94F:推 ppHomer: 重構有很多層次 只是約分/提出一個共用的func 也算重構 11/13 11:50
95F:→ ppHomer: 將某變數或函式 rename成比較有意義看得懂的名稱也是重構 11/13 11:53
96F:→ ppHomer: 將重覆出現的字串 改成const variable來使用也是重構 11/13 11:54
97F:→ ppHomer: 雖然都是小小的整理 都算是重構, 也都需要進行測試 11/13 11:56
98F:→ vul3kuo: 長官看你都準時下班的時候 11/13 13:27
99F:→ bobju: 既然你會猶豫,那就是想得不夠徹底,想到你決定要做(或不要), 11/13 15:45
100F:→ bobju: 那就對了 11/13 15:45
101F:推 tvbic: Never 11/13 19:43
102F:→ loadingN: 吃飽太閒? 自己開個branch去玩啦 11/14 01:15
103F:推 lnmlee: 你想要長期領養這隻野貓的時候你就會想為他洗澡 11/15 15:10
104F:推 ak2840: 打掉就不是重構了 那是重練 11/16 14:46
105F:噓 THEWORLDS: 複製一份 11/18 09:33
106F:→ lp2650056: 大程式重構...?呵呵 11/26 16:08







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

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

TOP