Board logo

標題: [推薦] 代碼之美 [打印本頁]

作者: wmh    時間: 2009-1-24 23:12     標題: [推薦] 代碼之美



編著: Andy Oram & Greg Wilson (作者共 38 位)
出版社: 機械工業出版社


PS1. 台灣歐萊禮也出了翻譯本,但是我個人還是比較推薦對岸的翻譯本喔!

PS2. JavaScript 大師 Douglas Crockford (JSON 發明者、JSLint 作者) 在本書中也嶄露了一手,透過一個簡化版的 JavaScript 來撰寫 JavaScript 的解析器... 相當饒舌是嗎? 有興趣的人快去讀一讀吧,JSLint 的精髓就在這裡了!

編輯推薦

  全球38位元頂尖高手、眾多語言之父經典之作。38位大師級的程式師,一步步講解他們的專案架構,開發時的種種折中考慮(tradeoffs)以及何時必須打破常規,尋求突破。

 
 本書收錄的是軟體設計領域中的一組大師級作品。每一章都是由一位或幾位著名程式師針對某個問題給出的完美的解決方案,並且細述了這些解決方案的巧妙之處。本書既不是一本關於設計模式的書,也不是一本關於軟體工程的書,它告訴你的不僅僅是一些正確的方式或者錯誤的方式。它讓你站在那些優秀軟體設計師的肩膀上,從他們的角度來看待問題。


內容簡介

  本書介紹了人類在一個奮鬥領域中的創造性和靈活性:電腦系統的開發領域。在每章中的漂亮代碼都是來自獨特解決方案的發現,而這種發現是來源於作者超越既定邊界的遠見卓識,並且識別出被多數人忽視的需求以及找出令人歎為觀止的問題解決方案。

  本書33章,有38位作者,每位作者貢獻一章。每位作者都將自己心目中對於“美麗的代碼”的認識濃縮在一章當中,張力十足。38位大牛,每個人對代碼之美都有自己獨特的認識,現在一覽無餘的放在一起,對於熱愛程式的每個人都不啻一場盛宴。 雖然本書的涉獵範圍很廣,但也只能代表一小部分在這個軟體發展這個最令人興奮領域所發生的事情。


作者簡介

全球38位元頂尖高手、眾多語言之父經典之作


目錄

第1章 正則運算式匹配器       
 1.1 編程實踐       
 1.2 實現       
 1.3 討論       
 1.4 其他的方法       
 1.5 構建       
 1.6 小結       
第2章 Subversion中的增量編輯器:像本體一樣的介面
 2.1 版本控制與目錄樹的轉換
 2.2 表達目錄樹的差異
 2.3 增量編輯器介面
 2.4 但這是不是藝術?
 2.5 像體育比賽一樣的抽象
 2.6 結論
第3章 我從未編寫過的最漂亮代碼
 3.1 我編寫過的最漂亮代碼
 3.2事倍功半
 3.3 觀點
 3.4 本章的中心思想是什麼?
 3.5 結論
 3.6致謝
第4章 查找
 4.1 耗時
 4.2 問題:博客數據
 4.3 問題:時間,人物,以及物件?
 4.4 大規模尺度的搜索
 4.5 結論
第5章 正確、優美、迅速(按重要性排序):從設計XML驗證器中學到的經驗
 5.1 XML驗證器的作用
 5.2 問題所在
 5.3 版本1:簡單的實現
 5.4 版本2:類比BNF語法——複雜度O(N)
 5.5 版本3:第一個複雜度O(log N)的優化
 5.6 版本4:第二次優化:避免重複驗證
 5.7 版本5:第三次優化:複雜度 O(1)
 5.8 版本 6:第四次優化:緩存(Caching)
 5.9 從故事中學到的
第6章 集成測試框架:脆弱之美
 6.1 三個類搞定一個驗收測試框架
 6.2 框架設計的挑戰
 6.3 開放式框架
 6.4 一個HTML解析器可以簡單到什麼程度?
 6.5 結論
第7章 美麗測試
 7.1 討厭的二分查找
 7.2 JUnit簡介
 7.3將二分查找進行到底
 7.4 結論
第8章 圖像處理中的即時代碼生成
第9章 自頂向下的運算符優先順序
 9.1 JavaScript
 9.2 符號表
 9.3 語素
 9.4 優先順序
 9.5 運算式
 9.6 中置運算符
 9.7 前置操作符
 9.8 賦值運算符
 9.9 常數
 9.10 Scope
 9.11 語句
 9.12 函數
 9.13 陣列和物件字面量
 9.14 要做和要思考的事
第10章 追求加速的種群計數
 10.1 基本方法
 10.2 分治法
 10.3 其他方法
 10.4 兩個字種群計數的和與差
 10.5 兩個字的種群計數比較
 10.6 陣列中的1位元種群計數
 10.7 應用
第11章 安全通信:自由的技術
 11.1 專案啟動之前
 11.2 剖析安全通信的複雜性
 11.3 可用性是關鍵要素
 11.4 基礎
 11.5 測試集
 11.6 功能原型
 11.7 清理,插入,繼續
 11.8 在喜馬拉雅山的開發工作
 11.9 看不到的改動
 11.10 速度確實重要
 11.11 人權中的通信隱私
 11.12 程式師與文明
第12章 在BioPerl裏培育漂亮代碼
 12.1 BioPerl和Bio::Graphics模組
 12.2 Bio::Graphics的設計流程
 12.3 擴展Bio::Graphics
 12.4 結束語和教訓
第13章 基因排序器的設計
 13.1 基因排序器的用戶介面
 13.2 通過Web跟用戶保持對話
 13.3 多態的威力
 13.4 濾除無關的基因
 13.5 大規模美麗代碼理論
 13.6 結論
第14章 優雅代碼隨硬體發展的演化
 14.1 電腦體系結構對矩陣演算法的影響
 14.2 一種基於分解的方法
 14.3 一個簡單版本
 14.4 LINPACK庫中的DGEFA副程式
 14.5 LAPACK DGETRF
 14.6 遞迴LU
 14.7 ScaLAPACK PDGETRF
 14.8 針對多核系統的多線程設計
 14.9 誤差分析與操作計數淺析
 14.10 未來的研究方向
 14.11 進一步閱讀
第15章 漂亮的設計會給你帶來長遠的好處
 15.1 對於漂亮代碼的個人看法
 15.2 對於CERN庫的介紹
 15.3 外在美
 15.4 內在美
 15.5 結論
第16章,Linux內核驅動模型:協作的好處
 16.1 簡單的開始
 16.2 進一步簡化
 16.3 擴展到上千台設備
 16.4 小物件的鬆散結合
第17章 額外的間接層
 17.1 從直接代碼操作到通過函數指標操作
 17.2 從函數參數到參數指標
 17.3 從檔系統到檔系統層
 17.4 從代碼到DSL9Domain-Specific Language
 17.5 複用與分離
 17.6.分層是永恆之道?
第18章 Python的字典類:如何打造全能戰士
 18.1 字典類的內部實現
 18.2 特殊調校
 18.3 衝突處理
 18.4 調整大小
 18.5 迭代和動態變化
 18.6 結論
 18.7 致謝
第19章 NumPy中的多維迭代器
 19.1 N維陣列操作中的關鍵挑戰
 19.2 N維陣列的記憶體模型
19.3 NumPy迭代器的起源
 19.4 迭代器的設計
 19.5 迭代器的介面
 19.6 迭代器的使用
 19.7 結束語
第20章 NASA火星漫步者任務中的高可靠企業系統
 20.1 任務與CIP
 20.2 任務需求
 20.3 系統架構
 20.4 案例分析:流服務
 20.5 可靠性
 20.6 穩定性
 20.7 結束語
第21章 ERP5:最大可適性的設計
 21.1 ERP的總體目標
 21.2 ERP5
 21.3 Zope基礎平臺
 21.4 ERP5 Project中的概念
 21.5 編碼實現ERP5 Project
 21.6 結束語
第22章 一匙污水
第23章 MapReduce分散式編程
 23.1 激動人心的示例
 23.2 MapReduce編程模型
 23.3 其他MapReduce示例
 23.4 分散式MapReduce的一種實現
 23.5 模型擴展
 23.6 結論
 23.7 進階閱讀
 23.8 致謝
 23.9 附錄:單詞計數解決方案
第24章 美麗的併發
 24.2 軟體事務記憶體
 24.3 聖誕老人問題
 24.4 對Haskell的一些思考
 24.6 致謝
第25章 句法抽象:syntax-case 展開器
 25.1 syntax-case簡介
 25.2 展開演算法
 25.3 例子
 25.4 結論
第26章 節省勞動的架構:一個面向物件的網路化軟體框架
 26.1 示例程式:日誌服務
 26.2 日誌伺服器框架的面向物件設計
 26.3 實現串列化日誌伺服器
 26.4 實現並行日誌伺服器
 26.5 結論
第27章 以REST方式集成業務夥伴
 27.1 專案背景
 27.2 把服務開放給外部客戶
 27.3 使用工廠模式轉發服務
 27.4 用電子商務協定來交換資料
 27.5 結束語
第28章 漂亮的調試
 28.1 對調試器進行調試
 28.2 系統化的過程
 28.3 關於查找的問題
 28.4 自動找出故障起因
 28.5 增量調試
 28.6 最小化輸入
 28.7 查找缺陷
 28.8 原型問題
 28.9 結束語
 28.10 致謝
 28.11 進一步閱讀
第29章 把代碼當作文章
第30章 當你與世界的聯繫只有一個按鈕
 30.1 基本的設計模型
 30.2 輸入介面
 30.3 用戶介面的效率
 30.4 下載
 30.5 未來的發展方向
第31章 Emacspeak:全功能音頻桌面
 31.1 產生語音輸出
 31.2 支援語音的Emacs
 31.3 對於線上資訊的簡單訪問
 31.4 小結
 31.5 致謝
第32章 變動的代碼
 32.1 像書本一樣
 32.2 功能相似的代碼在外觀上也保持相似
 32.3 縮進帶來的危險
 32.4 流覽代碼
 32.5 我們使用的工具
 32.6 DiffMerge的曲折歷史
 32.7 結束語
 32.8 致謝
 32.9 進一步閱讀
第33章 為“The Book”編寫程式
 33.1 沒有捷徑
 33.2 給Lisp初學者的提示
 33.3 三點共線
 33.4 不可靠的斜率
 33.5 三角不等性
 33.6 河道彎曲模型
 33.7 “Duh!”——我的意思是“Aha!”
 33.8 結束語
 33.9 進一步閱讀
後記
作者簡介

作者: sun_book    時間: 2011-6-26 21:21

我是一個程式設計的愛好者,感謝大大分享這麼棒的電子書給大家!




歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/)