索引 / 001 ZH-TW
A Philosophy of Software Design(軟體設計的哲學) cover

電腦科學

電腦科學

A Philosophy of Software Design(軟體設計的哲學)

John Ousterhout

英文原名: A Philosophy of Software Design

一本探討軟體設計核心問題——管理複雜度——的小書。作者根據講授一門以設計為重點的軟體課程的經驗,主張採用介面簡單的深模組、資訊隱藏,以及審慎的命名與註解,並列出一系列警訊,指出設計正變得難以理解與修改。

需要的基礎: 曾用任一語言撰寫並維護中等規模程式的經驗,例如完成過一個較大的課堂專題。

難度等級
入門
學術層次
大學部
software designcomplexitymodularityabstractioncode quality

01 / 經典教材推薦

經典教材推薦

適合誰

適合修習軟體工程或軟體設計課程、已寫過足夠多程式而能體會結構不良之代價的學生,以及想要有原則可循來劃分系統模組的新手開發者。本書適合想找能直接套用在自己程式上的設計觀念、而非流程與工具總覽的讀者。

需要的基礎

曾用任一語言撰寫並維護中等規模程式的經驗,例如完成過一個較大的課堂專題。

涵蓋內容

複雜度的本質與成因;能執行的程式與良好的設計,策略式與戰術式程式設計;深模組與淺模組;資訊隱藏與資訊外洩;通用介面與專用介面;抽象層次;把複雜度往下層推;何時合併、何時拆分程式碼;以定義消除錯誤;設計兩次;先寫註解並描述不明顯之處;命名;一致性;以及設計上的警訊。

如何使用

湯瑪斯與杭特的 The Pragmatic Programmer 針對職業程式設計師的技藝與習慣提供廣泛建議;本書則專注於如何組織程式碼以維持簡潔。若設計決策是你最關心的課題,可選擇本書。建議分幾次讀完,之後在檢視自己的專案時運用書中列出的警訊。

版本與來源

第2版,由 Yaknyam Press 於2021年7月出版(平裝本,ISBN 9781732102217),新增一章討論如何判斷何者重要,並與其他設計主張進行比較。本紀錄的書目資料取自 AbeBooks。