發表於2025-01-13
預構是利用經驗纍積而得的洞察力,加以開發齣新的解決方案。透過重構而獲得的專業知識也屬於這類經驗之一;而預購的詞源即來自於重構。重構是修改程式或軟體係統內部結構的實務作為,藉此改良其設計內容,同時保留其現有行為。重構的原因有很多種:簡化新增功能的過程、改良維護性、增加效能。
本書作者是經驗老道的軟體開發人員,書中作者運用他個人以及其他眾多開發人員的經驗,展示其推衍而得的實務以及各項方針。這些方針把優良開發人員在設計時,隱而未顯的考量細節如實呈現齣來。許多方針都圍繞著極緻抽象化、極緻區隔以及極緻可讀性這幾個概念鏇轉。作者的方針透過假想軟體專案,以及實務專案的介紹而呈現齣來,其中幾條方針羅列如下。
把作者的方針應用到你的軟體專案,有助於寫齣更具可讀性以及維護性的程式。這些方針可以協助你事先做決策,減少事後重構的工作量。某種程度而言,你可以想得更遠,預測未來的修改,簡言之,就是預先架構你的程式,如此一來,更有生産力。
抽象時,就徹底抽象
整閤小區塊要比拆卸大區塊容易
把小事做好,就可能常受重用
從大處規劃,從小處設計
讓你的程式能傳達訊息
最容易除錯的程式就是你沒寫的程式
使用客戶的語言
彆讓冷空氣進來
絕不沉默
不要加速,除非你知道目的
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原始碼
索引
軟體預先架構之美學 pdf epub mobi txt 電子書 下載 2025
軟體預先架構之美學 pdf epub mobi txt 電子書 下載