軟體預先架構之美學 (Prefactoring)
內容描述
本書特色
預構是利用經驗累積而得的洞察力,加以開發出新的解決方案。透過重構而獲得的專業知識也屬於這類經驗之一;而預購的詞源即來自於重構。重構是修改程式或軟體系統內部結構的實務作為,藉此改良其設計內容,同時保留其現有行為。重構的原因有很多種:簡化新增功能的過程、改良維護性、增加效能。本書作者是經驗老道的軟體開發人員,書中作者運用他個人以及其他眾多開發人員的經驗,展示其推衍而得的實務以及各項方針。這些方針把優良開發人員在設計時,隱而未顯的考量細節如實呈現出來。許多方針都圍繞著極致抽象化、極致區隔以及極致可讀性這幾個概念旋轉。作者的方針透過假想軟體專案,以及實務專案的介紹而呈現出來,其中幾條方針羅列如下。把作者的方針應用到你的軟體專案,有助於寫出更具可讀性以及維護性的程式。這些方針可以協助你事先做決策,減少事後重構的工作量。某種程度而言,你可以想得更遠,預測未來的修改,簡言之,就是預先架構你的程式,如此一來,更有生產力。
抽象時,就徹底抽象
整合小區塊要比拆卸大區塊容易
把小事做好,就可能常受重用
從大處規劃,從小處設計
讓你的程式能傳達訊息
最容易除錯的程式就是你沒寫的程式
使用客戶的語言
別讓冷空氣進來
絕不沉默
不要加速,除非你知道目的
Ken Pugh 是 Puge-Killen 協會主席之一。Ken
擔任顧問、從事教育訓練、教師、以及出庭提供證詞,涉足之科技領域有物件導向設計、Linux/Unix、網路、以及系統開發實務。他參予過的專案包括山羊血清流程控制、擔保抵押處理軟體、以及照片分類。Ken
時常在全國會議和區域會議發表演說,他的客戶從倫敦到雪梨都有。不工作時,他喜歡滑雪、衝浪、騎腳踏車、還有到阿帕拉契山徑健行。
本書目錄
第 1 章 預構簡介
何謂預構?三個極致探索方針本書的情境
第 2 章 系統紀實
和 Sam 會談避免重複發明名詞裡有什麼?碎塊 vs.
整塊凝結成塊抽象化原型值千言
第 3 章 一般開發議題
從大藍圖開始介面規範查驗程式傳達的訊息
一致性就是簡易性預構的態度不要自我重複把假設和決策形諸文件處理誤差和錯誤
速度試算表謎題工具只是工具——要善用
第 4 章 大藍圖
系統續論過程初始設計從大處規劃,從小處設計檢測功能檢測品質安全
第 5 章 撰寫類別
類型和類別宣告 vs. 執行適當的繼承以文字通訊不止一個
第 6 章 再談類別
光耀類別箴言物件的三條定律需求決定類別多型一件小差事原則 vs.
實作極致命名函式的覆載
第 7 章 快完成了
我們在哪兒?利害關係區隔遷移至新系統
第 8 章 第一個版本
實踐見真章回顧時間系統實情作業介面抽象資料型態組態檢測處理誤差和錯誤預構一下第一輪之初版實務和理論偶爾不相吻合剩餘的類別
第 9 章 關聯性和狀態
Sam 的新需求以誰為主?物件的狀態
第 10 章 介面和調整
型錄搜尋使用案例設計介面 介面開發介面檢測介面切割有東西能用
第 11 章 郵遞區號和介面
調整把錢交出去未寫的程式碼間接性記錄形式互斥
第 12 章 更多的報表
花俏的報表修改發生了匯出
第 13 章 發票、信用卡、折扣
下一步客戶的語言安全和隱私
第 14 章 Sam 在擴張事業
第二家店新的開發工作第三家店再見了,Sam通用性
第 15 章 列印伺服器實例
簡介系統訊息檢測記錄還可以再區隔一點後記
第 16 章 反垃圾郵件實例
情境檢查垃圾郵件ReceivingMailServer 類別ReceivedMailExaminer
類別完整流程
第 17 章 後記
附錄 A 方針與原則
附錄 B 原始碼
索引