--- robots: noindex, nofollow tags: refactoring --- # Mutable Data  ## 徵兆與症狀 程式裡面的資料或狀態,出乎意料的被其他程式修改了,甚至非常難以找到怎麼發生的。 ## 出現原因 當資料在較大作用範圍的程式內被反覆操作時,隨著作用範圍越來越大,往往會產生很多風險。 ## 處理方法 - 使用 `Encapsulate Variable` 來確保所有更新都通過特定 function 處理,以方便監控。 - 如果變數會被不同功能更新,可以使用 `Split Variable` 來隔離。 - 使用 `Slide Statements` 及 `Extract Function` 來把更新資料的邏輯單純化。 - 使用 `Separate Query from Modifier` 來確保呼叫端只在真的需要更新資料的時候才呼叫。 - 有時候,需要用 `Remove Setting Method` 來減少意外更改欄位的機會。 - 若 Mutable data 可以在其他地方計算出來,可以使用 `Replace Derived Variable with Query` 來取代。 - 若 Mutable data 作用範圍太大,可以使用 `Combine Functions into Class` 或 `Combine Functions into Transform` 來限制資料可被存取的範圍。 - 若 Mutable data 使用到某些資料結構,與其直接更改,不如使用 `Change Reference to Value` 傳遞值。
×
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