# CH2 ###### tags: `Refactor` `Book` <i class="fa fa-book fa-fw"></i> 重構的時機與實作|五行程式碼規則 <br/> 深入了解重構的原理 --- :::info :bulb:重構的目的是讓程式碼更好、不改變其功用。 ::: ### :eyes: **那什麼是好的程式碼呢?** 1. 可讀性 (Readability) - 容易清楚知道程式碼在做什麼? - 什麼是==好讀==的函式?那==難讀==的函式? <br/>  2. 可維護性 (Maintainability) - 修改錯誤或加入新功能,如何==安全、快速、輕鬆==地修改? - 可維護性就表示需要調查的程度 - 系統脆弱 (systems fragile) - 修改推薦功能,導致付款系統出問題? - 脆弱性的根源通常是「==全域狀態==」 - 不變條件是怎麼破壞的 ### :eyes: **維護程式碼但沒有變更原本的功用** 1. 程式碼視為黑盒子 2. 重構的三大基石 - 清晰表達意圖提高==可讀性== - 局部化不變條件提高==可維護性== - 不影響關注範圍之外程式碼完成以上兩點。 ### :eyes: **善用組合而非繼承** 1. 大部分的重構模式和規則,都是用來協助程式使用==物件組合== - 範例:企鵝是不會飛的鳥類 - 彈性:就像玩樂高積木一樣 <br/>  <br/> 2. 以新增而不是修改的方式來變更程式碼 - 組合好處是透過==新增附加的方式來變更==系統 ### :eyes: **以「重構」當作學習的方法** 1. 重構就像許多事情一樣,需要花費時間來學習,然後就習慣了? ### 領域 1. 通常會有==使用者==和==專家==,還會有自己的語言和文化。 ### 討論 :one: 你不是沒時間重構,你就是都不重構才會沒時間?
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up