×
美麗程式碼
作者: Brian Kernighan
譯者:陳建勳
書號: A231
出版日: 2008/04/01
ISBN:9789866840197
附件: 無
定價: 780
電子書: 未出版
購買紙本書
內容特色
本書收集了軟體設計領域的大師級作品,每個作品都獨一無二,而又見解深刻。走在時代前驅的設計大師,引領讀者一章章走過解決特殊難題的優雅方案,並說明各個方案的迷人因素。

這不是另一本設計模式書籍,也不是另一本探討軟體工程方法對錯的專著。我們希望讀者有機會站在軟體設計巨人的肩上,從他們的高度看世界。

三十八位撰碼大師,把他們打造專案架構、判斷建置代價、決定打破成規的重要時刻,化為字字珠磯,呈現在讀者面前。
章節目錄
前言



1 正規運算式比對器---by Brian Kernighan
程式設計實務
實作
討論
其他做法
基礎之上
結論

2 Subversion 的 Delta 編輯器:只談介面---by Karl Fogel
版本控制和目錄樹轉換
表達目錄樹的差異
delta 編輯器介面
這樣子,美嗎?
吸引人的抽象化
結論

3 我從沒寫過的最美麗程式---by Jon Bentley
我所寫過最美麗的程式
多還要更多、少還要更少
分析
何謂書寫?
結論
誌謝

4 找東西---by Tim Bray
論時間
問題:部落格資料
問題:誰取出什麼、何時?
大量搜尋
結論

5 正確>美麗>快速:設計 XML 查證器的教訓---by Elliotte Rusty Harold
XML 驗證的角色
問題
版本 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 Petzold

9 由上而下運算子優先權---by Douglas Crockford
JavaScript
符號表
字符
優先權
運算式
插入運算子
前置運算子
指定運算子
常數
範圍
敘述
函式
陣列和物件實字
行所當行、想所當想

10 追尋加速的族群計數---by Henry S. Warren, Jr.
基本方法
個別擊破
其他方法
兩字的族群計數和與差
比較兩字的族群計數
計算陣列裡的 1 位元
應用

11 安全通訊:自由技術---by Ashish Gulhati
起步的關鍵
可用性是關鍵
基石
測試套組
可用之原型
清理、插入、下一步⋯⋯
在喜瑪拉亞山脈鑽研
看不見的手移動了
速率要緊
個人權利的通訊隱私
鑽研文明

12 BioPerl 的美麗程式---by Lincoln Stein
BioPerl 和 Bio::Graphics 模組
Bio::Graphics 設計流程
擴充 Bio::Graphics
結論和教訓

13 Gene Sorter 的設計---by Jim Kent
Gene Sorter 的用戶介面
透過網站維護和用戶間的對話盒
一點多型會走得長久
過濾出相關基因
大型美麗程式的理論
結論

14 優雅程式隨硬體演化:以高斯消去法為例---Jack Dongarra & Piotr Luszczek
電腦架構對矩陣演算法的影響
分解法
LINPACK 的 DGEFA 次常式
LAPACK 的 DGETRF
遞迴 LU
ScaLAPACK 的 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. Oliphant
N 維陣列運算的重大挑戰
N 維陣列的記憶體模型
NumPy 迭代器的起源
迭代器的設計
迭代器的介面
結論

20 NASA 火星探測任務~ 高度可靠的企業系統---by Ronald Mak
火星任務以及 CIP
任務需求
系統架構
案例研究:Streamer 服務
可靠度
結論

21 ERP5:追求最大適應力的設計---Rogerio Atem de Carvalho & Rafael Monnerat
ERP 的一般目標
ERP5
底層 Zope 平台
ERP5 Project 的概念
ERP5 Project 撰碼
結論

22 一匙污水---by Bryan Cantrill

23 分散式程式設計和 MapReduce---Jeffrey Dean & Sanjay Ghemawat
引領範例
MapReduce 程式設計模型
其他 MapReduce 範例
分散式 MapReduce 的實作
模型的延伸
結論
其他閱讀資料
誌謝
附錄:字數計算解法

24 美麗的並行性---by Simon Peyton Jones
一個簡單的範例:銀行帳戶
軟體交易記憶體
聖誕老人問題
Haskell 的省思
結論
誌謝

25 語法抽象:syntax-case 展開器---by R. Kent Dybvig
syntax-case 的簡介
展開演算法
範例
結論

26 省力架構:網路軟體之物件導向框架---William R. Otte & Douglas C. Schmidt
樣本應用程式:日誌服務
日誌伺服器框架的物件導向設計
實作循序式日誌伺服器
實作並行日誌伺服器
結論

27 整合商務夥伴:REST 方式---by Andrew Patzer
專案背景
對外部客戶揭露服務
使用工廠模式替服務安排路徑
使用電子商務協定交換資料
結論

28 除錯之美---by Andreas Zeller
對除錯器除錯
系統化過程
搜尋問題
自動尋找失敗原因
delta 除錯
輸入最小化
獵捕缺陷
原型問題
結論
誌謝
其他讀物

29 把程式視為文章---by Yukihiro Matsumoto

30 對世界的唯一連繫---by Arun Mehta
基本設計模式
輸入介面
使用者介面的效率
下載
未來方向

31 Emacspeak:完備的音訊桌面---by T. V. Raman
產生語音輸出
具語音功能的 Emacs
無痛式線上資訊存取
摘要
誌謝

32 運行中的程式碼---by Laura Wingerd & Christopher Seiwald
有書籍的感覺
該相似處就要相似
縮排的危險
程式碼的導覽
我們所用的工具
DiffMerge 多變的過去
結論
誌謝
其他讀物

33 替「算書」寫程式---by Brian Hayes
非康莊大道
一點小忠告
三點一列問題
要小心應付的斜率
三角不等
迂迴曲折
廢話——我是說「啊哈!」
結論
進階閱讀
後記---by Andy Oram

作者群

索引
美麗程式碼 分享
  • 作者: Brian Kernighan
  • 書號:A231
  • ISBN:9789866840197
  • 出版日:2008/04/01
  • 定價:$ 780
  • 電子書:已出版
  • 購買紙本書

    內容特色
    本書收集了軟體設計領域的大師級作品,每個作品都獨一無二,而又見解深刻。走在時代前驅的設計大師,引領讀者一章章走過解決特殊難題的優雅方案,並說明各個方案的迷人因素。

    這不是另一本設計模式書籍,也不是另一本探討軟體工程方法對錯的專著。我們希望讀者有機會站在軟體設計巨人的肩上,從他們的高度看世界。

    三十八位撰碼大師,把他們打造專案架構、判斷建置代價、決定打破成規的重要時刻,化為字字珠磯,呈現在讀者面前。
    章節目錄
    前言



    1 正規運算式比對器---by Brian Kernighan
    程式設計實務
    實作
    討論
    其他做法
    基礎之上
    結論

    2 Subversion 的 Delta 編輯器:只談介面---by Karl Fogel
    版本控制和目錄樹轉換
    表達目錄樹的差異
    delta 編輯器介面
    這樣子,美嗎?
    吸引人的抽象化
    結論

    3 我從沒寫過的最美麗程式---by Jon Bentley
    我所寫過最美麗的程式
    多還要更多、少還要更少
    分析
    何謂書寫?
    結論
    誌謝

    4 找東西---by Tim Bray
    論時間
    問題:部落格資料
    問題:誰取出什麼、何時?
    大量搜尋
    結論

    5 正確>美麗>快速:設計 XML 查證器的教訓---by Elliotte Rusty Harold
    XML 驗證的角色
    問題
    版本 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 Petzold

    9 由上而下運算子優先權---by Douglas Crockford
    JavaScript
    符號表
    字符
    優先權
    運算式
    插入運算子
    前置運算子
    指定運算子
    常數
    範圍
    敘述
    函式
    陣列和物件實字
    行所當行、想所當想

    10 追尋加速的族群計數---by Henry S. Warren, Jr.
    基本方法
    個別擊破
    其他方法
    兩字的族群計數和與差
    比較兩字的族群計數
    計算陣列裡的 1 位元
    應用

    11 安全通訊:自由技術---by Ashish Gulhati
    起步的關鍵
    可用性是關鍵
    基石
    測試套組
    可用之原型
    清理、插入、下一步⋯⋯
    在喜瑪拉亞山脈鑽研
    看不見的手移動了
    速率要緊
    個人權利的通訊隱私
    鑽研文明

    12 BioPerl 的美麗程式---by Lincoln Stein
    BioPerl 和 Bio::Graphics 模組
    Bio::Graphics 設計流程
    擴充 Bio::Graphics
    結論和教訓

    13 Gene Sorter 的設計---by Jim Kent
    Gene Sorter 的用戶介面
    透過網站維護和用戶間的對話盒
    一點多型會走得長久
    過濾出相關基因
    大型美麗程式的理論
    結論

    14 優雅程式隨硬體演化:以高斯消去法為例---Jack Dongarra & Piotr Luszczek
    電腦架構對矩陣演算法的影響
    分解法
    LINPACK 的 DGEFA 次常式
    LAPACK 的 DGETRF
    遞迴 LU
    ScaLAPACK 的 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. Oliphant
    N 維陣列運算的重大挑戰
    N 維陣列的記憶體模型
    NumPy 迭代器的起源
    迭代器的設計
    迭代器的介面
    結論

    20 NASA 火星探測任務~ 高度可靠的企業系統---by Ronald Mak
    火星任務以及 CIP
    任務需求
    系統架構
    案例研究:Streamer 服務
    可靠度
    結論

    21 ERP5:追求最大適應力的設計---Rogerio Atem de Carvalho & Rafael Monnerat
    ERP 的一般目標
    ERP5
    底層 Zope 平台
    ERP5 Project 的概念
    ERP5 Project 撰碼
    結論

    22 一匙污水---by Bryan Cantrill

    23 分散式程式設計和 MapReduce---Jeffrey Dean & Sanjay Ghemawat
    引領範例
    MapReduce 程式設計模型
    其他 MapReduce 範例
    分散式 MapReduce 的實作
    模型的延伸
    結論
    其他閱讀資料
    誌謝
    附錄:字數計算解法

    24 美麗的並行性---by Simon Peyton Jones
    一個簡單的範例:銀行帳戶
    軟體交易記憶體
    聖誕老人問題
    Haskell 的省思
    結論
    誌謝

    25 語法抽象:syntax-case 展開器---by R. Kent Dybvig
    syntax-case 的簡介
    展開演算法
    範例
    結論

    26 省力架構:網路軟體之物件導向框架---William R. Otte & Douglas C. Schmidt
    樣本應用程式:日誌服務
    日誌伺服器框架的物件導向設計
    實作循序式日誌伺服器
    實作並行日誌伺服器
    結論

    27 整合商務夥伴:REST 方式---by Andrew Patzer
    專案背景
    對外部客戶揭露服務
    使用工廠模式替服務安排路徑
    使用電子商務協定交換資料
    結論

    28 除錯之美---by Andreas Zeller
    對除錯器除錯
    系統化過程
    搜尋問題
    自動尋找失敗原因
    delta 除錯
    輸入最小化
    獵捕缺陷
    原型問題
    結論
    誌謝
    其他讀物

    29 把程式視為文章---by Yukihiro Matsumoto

    30 對世界的唯一連繫---by Arun Mehta
    基本設計模式
    輸入介面
    使用者介面的效率
    下載
    未來方向

    31 Emacspeak:完備的音訊桌面---by T. V. Raman
    產生語音輸出
    具語音功能的 Emacs
    無痛式線上資訊存取
    摘要
    誌謝

    32 運行中的程式碼---by Laura Wingerd & Christopher Seiwald
    有書籍的感覺
    該相似處就要相似
    縮排的危險
    程式碼的導覽
    我們所用的工具
    DiffMerge 多變的過去
    結論
    誌謝
    其他讀物

    33 替「算書」寫程式---by Brian Hayes
    非康莊大道
    一點小忠告
    三點一列問題
    要小心應付的斜率
    三角不等
    迂迴曲折
    廢話——我是說「啊哈!」
    結論
    進階閱讀
    後記---by Andy Oram

    作者群

    索引