Re: [請益] 何時會決定要重構程式

看板Soft_Job作者 (Gnimnek168)時間5年前 (2018/11/15 11:48), 編輯推噓1(101)
留言2則, 2人參與, 5年前最新討論串3/5 (看更多)
重構 (refactoring)主要兩個原則需要遵守: 1. 在不改變程式碼外在行為的前提下,對程式碼做出修正,以改善程式碼內部的結構。 2. 要針對該支程式碼 (一般以類為單位)撰寫白箱的單元測試程式碼 (unit test code) 。 違背上述兩個原則,那就不是稱為重構,而是重寫了。 :-) 何時重構? Martin Folwer 用了非常饒富意蘊的比喻:「嗅出程式碼的壞味道」。 這裡給您參考基本的兩種壞味道,只要有違背,那就是提醒要重構程式碼了。 1. 單一 method 陳述超過 30行 (atomic 原則,一個 method 只負責單一工作)。 2. method 參數不得超過5個。參數眾多肯定是沒有作好參數的資料傳遞物件 (DTO, data transfer object)結構的組織。 重構的目的為何?當然是為了增進程式碼的品質。重構的好處是什麼?當然是讓程式碼更 具彈性可維護與延展性。重構是為了誰?當然要先為了自己,程式碼簡潔易讀好維護,工 作才可能輕鬆有意義,而後才有可能擴展到團隊乃至全公司,形成一種善文化。獨善其身 ,才有可能兼善天下。 ※ 引述《srwhite (阿白)》之銘言: : 事情是這樣的 : 小弟最近接到使用者需求 : 要增加幾個跟之前很像的功能 : 舊的那隻程式已經歷經許多測試 目前正穩定的運作中 : 但最初的需求很單純 : 因此設計得不是很有彈性 不利於擴充及更改 : 第一次接到需求的時候 : 我想了一下覺得重構有點麻煩 : 於是直接複製了一份然後改了需要改的地方 : 變成兩隻有八成像的程式 各做各的 : 但最近又要再增加一個 : 於是我開始猶豫該不該整個打掉重構 : 避免程式碼繼續這樣擴張下去 感覺很不專業 : 之後再有需求也比較好調整 : 但如果複製改一改大概只要一個小時 : 打掉重構可能要一個禮拜 還不保證會不會有甚麼多出來的bug : 想請教大家在類似的情況 : 都用哪些標準來決定甚麼時候應該重構 -- FB社團:軟體設計鮮思維 https://www.facebook.com/groups/softthinking/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.122.227 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1542253705.A.860.html

11/15 18:40, 5年前 , 1F
寫核心 library ok, 只是串串API 寫寫 CRUD 就算了吧
11/15 18:40, 1F

11/19 13:37, 5年前 , 2F
那嗅出程式碼的屍臭味了怎麼辦0.0
11/19 13:37, 2F
文章代碼(AID): #1RxEo9XW (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1RxEo9XW (Soft_Job)