< >
本書收集了軟體設計領域的大師級作品,每個作品都獨一無二,而又見解深刻。走在時代前驅的設計大師,引領讀者一章章走過解決特殊難題的優雅方案,並說明各個方案的迷人因素。這不是另一本設計模式書籍,也不是另一本探討軟體工程方法對錯的專著。我們希望讀者有機會站在軟體設計巨人的肩上,從他們的高度看世界。三十八位撰碼大師,把他們打造專案架構、判斷建置代價、決定打破成規的重要時刻,化為字字珠磯,呈現在讀者面前。
前言序1 正規運算式比對器---by Brian Kernighan程式設計實務實作討論其他做法基礎之上結論2 Subversion 的 Delta 編輯器:只談介面---by Karl Fogel版本控制和目錄樹轉換表達目錄樹的差異delta 編輯器介面這樣子,美嗎?吸引人的抽象化 結論3 我從沒寫過的最美麗程式---by Jon Bentley我所寫過最美麗的程式多還要更多、少還要更少分析何謂書寫?結論 誌謝4 找東西---by Tim Bray論時間問題:部落格資料問題:誰取出什麼、何時? 大量搜尋結論5 正確>美麗>快速:設計 XML 查證器的教訓---by Elliotte Rusty HaroldXML 驗證的角色問題版本 1:實作雛型版本 2:模仿 BNF 文法 O(N)版本 3:初次最佳化 O(log N)版本 4:第二次最佳化(不要檢查兩次)版本 5:第三次最佳化(O(1)) 版本 6:第四次最佳化(快取機制)故事的寓意6 整合測試的框架:來自脆弱性的美感---by Michael Feathers驗收測試框架的三個類別框架設計的挑戰開放式框架HTML 分析器能簡單到什麼程度? 結論7 美麗測試---by Akberto Savoia麻煩的二元搜尋JUnit 簡介釘牢二元搜尋 結論8 動態產生影像處理程式---by Charles Petzold9 由上而下運算子優先權---by Douglas CrockfordJavaScript符號表字符優先權運算式插入運算子前置運算子指定運算子常數範圍敘述函式陣列和物件實字行所當行、想所當想10 追尋加速的族群計數---by Henry S. Warren, Jr.基本方法個別擊破其他方法兩字的族群計數和與差比較兩字的族群計數計算陣列裡的 1 位元 應用11 安全通訊:自由技術---by Ashish Gulhati起步的關鍵可用性是關鍵基石測試套組可用之原型清理、插入、下一步⋯⋯ 在喜瑪拉亞山脈鑽研看不見的手移動了速率要緊個人權利的通訊隱私鑽研文明12 BioPerl 的美麗程式---by Lincoln SteinBioPerl 和 Bio::Graphics 模組Bio::Graphics 設計流程擴充 Bio::Graphics 結論和教訓13 Gene Sorter 的設計---by Jim KentGene Sorter 的用戶介面透過網站維護和用戶間的對話盒 一點多型會走得長久過濾出相關基因大型美麗程式的理論 結論14 優雅程式隨硬體演化:以高斯消去法為例---Jack Dongarra & Piotr Luszczek電腦架構對矩陣演算法的影響分解法LINPACK 的 DGEFA 次常式LAPACK 的 DGETRF遞迴 LUScaLAPACK 的 PDGETRF多核心系統的多執行緒有關錯誤分析和運算計數未來研究方向 進階閱讀資料15 美麗設計的長期益處---by Adam Kolawa我所想的美麗程式介紹 CERN 程式庫外在美感內在美感 結論16 Linux 核心驅動程式模型:一起運作的益處---by Greg Kroah-Hartman從基底開始再進一步縮減規模放大至幾千台裝置 小型物件的鬆散聯結 17 另一層間接層---by Diomidis Spinellis從程式碼到指標從函式引數到引數指標從檔案系統到檔案系統層從程式碼到領域特定語言多工和解多工 永遠分層?18 Python 的辭典:滿足所有人的需要---by Andrew Kuchling辭典之內特殊調整碰撞改變尺寸迭代和動態修改結論 誌謝19 NumPy 的多維迭代器---by Travis E. OliphantN 維陣列運算的重大挑戰N 維陣列的記憶體模型NumPy 迭代器的起源迭代器的設計迭代器的介面 結論20 NASA 火星探測任務~ 高度可靠的企業系統---by Ronald Mak火星任務以及 CIP任務需求系統架構案例研究:Streamer 服務可靠度 結論21 ERP5:追求最大適應力的設計---Rogerio Atem de Carvalho & Rafael MonneratERP 的一般目標ERP5底層 Zope 平台ERP5 Project 的概念ERP5 Project 撰碼 結論22 一匙污水---by Bryan Cantrill23 分散式程式設計和 MapReduce---Jeffrey Dean & Sanjay Ghemawat引領範例MapReduce 程式設計模型其他 MapReduce 範例分散式 MapReduce 的實作模型的延伸結論其他閱讀資料誌謝 附錄:字數計算解法24 美麗的並行性---by Simon Peyton Jones一個簡單的範例:銀行帳戶 軟體交易記憶體聖誕老人問題Haskell 的省思結論 誌謝25 語法抽象:syntax-case 展開器---by R. Kent Dybvigsyntax-case 的簡介展開演算法範例 結論26 省力架構:網路軟體之物件導向框架---William R. Otte & Douglas C. Schmidt樣本應用程式:日誌服務日誌伺服器框架的物件導向設計實作循序式日誌伺服器實作並行日誌伺服器 結論27 整合商務夥伴:REST 方式---by Andrew Patzer專案背景對外部客戶揭露服務使用工廠模式替服務安排路徑使用電子商務協定交換資料 結論28 除錯之美---by Andreas Zeller對除錯器除錯系統化過程搜尋問題自動尋找失敗原因delta 除錯輸入最小化獵捕缺陷原型問題結論誌謝其他讀物29 把程式視為文章---by Yukihiro Matsumoto30 對世界的唯一連繫---by Arun Mehta基本設計模式輸入介面使用者介面的效率下載 未來方向31 Emacspeak:完備的音訊桌面---by T. V. Raman產生語音輸出具語音功能的 Emacs無痛式線上資訊存取摘要 誌謝32 運行中的程式碼---by Laura Wingerd & Christopher Seiwald有書籍的感覺該相似處就要相似縮排的危險程式碼的導覽我們所用的工具DiffMerge 多變的過去結論誌謝 其他讀物33 替「算書」寫程式---by Brian Hayes非康莊大道一點小忠告三點一列問題要小心應付的斜率三角不等迂迴曲折廢話——我是說「啊哈!」結論進階閱讀後記---by Andy Oram作者群索引
程式設計師提升生產力之秘笈 專案管理之美學 第二版 軟體預先架構之美學
購買紙本書