# 《設計重構》第一章心得 & 推坑 共筆版/本文連結:https://hackmd.io/nTGlPjHVR0mYRfcaYUmmNQ?view ###### tags: `推書 & 推坑` ---  **何謂技術債** 錯誤或是尚未最佳化的設計決策。 **什麼不是技術債** 並不是你不想做、暫時不能做的問題,都可以甩鍋給技術債、用技術債的方式解決,例如程式的 bug。 會逐漸影響外部品質的內部品質問題,才是技術債、也才適用技術債的還債方式。如果是 bug,當然要立刻解啊。 **怎麼找到技術債** 既然書名有提到 “重構” 了,想當然這本書也是用重構中 “壞味道” 的概念,來歸類、教你找出設計的壞味道 (design smells)。 例如過度設計,這裡就會談到真正的過度設計是什麼樣子,應該要如何重構。 **程式碼很醜的問題** 請放心,這本書談的是結構設計層級的技術債、壞味道,與如何重新打造給 “很醜程的程式碼” 的修正空間。 意思是這本書不會浪費篇幅,教你怎麼處理 coding style、怎麼為函式命名的問題。 **技術債長什麼樣子/可以解決什麼問題** * 你的 function 或是 method 的參數愈加愈多,副作用一堆,多到自己都要寫文件、看文件才能用 * 你的 class 或是模組要繼承好多 class,或是傳入好多物件才能用,搞到 “new” 一個物件,比直接寫一段程式來實作還複雜 * 設計了很棒的介面或是 struct,但是這些介面又只有某個物件能用;或者是只能在你的執行環境能用,一旦目標環境變動,就得重寫一個相容版的介面 * 你的類別、介面、模組可以擴展 n 種實作需求,但是這種需求從來沒有發生過,也不知道哪時候會發生。更麻煩的是,當真的需要擴展時 (例如底層 driver 變更),才發現設計根本無法應付變動 * 之前亂套設計模式,現在改不動了,想要知道哪邊出了問題,要怎麼修好 這本書討論的是架構層級、結構型的問題,因此以上的問題,在第二章會有清楚的分類和分級。 **技術限制** 本書使用物件導向設計的概念和程式碼,探討結構型技術債、設計的問題。書中大部分的範例,則是以 JDK 7.0 做為例子。 但是,即使你使用的是結構化程式設計,依然可以在抽象、封裝、模組等等單元,找到兼容於兩者,或是和語言無關的技術債解決方案。 **幹話時間** 我自己的學習目標: > 能用的 “程式” > --> 能用的 “程式碼” > --> 能 “重用” 的程式碼。 我目前沒有使用 Java,原本對 Java 也不熟。但是目前主要工作是開發 SDK,因此這本書拿 JDK 來舉例,對我還是有理論 + 實務上的直接幫助。
×
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