注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合UNIX編程藝術(shù)

UNIX編程藝術(shù)

UNIX編程藝術(shù)

定 價(jià):¥79.00

作 者: (美)理曼德 著,姜宏,何源,蔡曉駿 譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: Solaris

ISBN: 9787121123290 出版時(shí)間: 2011-01-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 530 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《UNIX編程藝術(shù)》寫(xiě)作了五年之久,作者將U NIX三十年中未見(jiàn)紙端的艱難勝利的軟件工程智慧融入文字,使UNIX家族成為最好最其創(chuàng)新軟件的哲學(xué)、設(shè)汁模式、工具、文化和傳統(tǒng),Raymond將之第一次帶給我們.并向我們展示它們?nèi)绾斡绊懼?dāng)今的Linux和開(kāi)源運(yùn)動(dòng)。通過(guò)大量來(lái)自頂尖項(xiàng)目的實(shí)例,你將學(xué)會(huì)如何運(yùn)用這些智慧經(jīng)驗(yàn)來(lái)建造更優(yōu)雅、更可移植、更加好用和更加長(zhǎng)久的軟件。

作者簡(jiǎn)介

  Eric S.Raymond,從1982年開(kāi)始就是U NIX開(kāi)發(fā)者。作為開(kāi)源社區(qū)文化的倡導(dǎo)和呼吁者,他在《大教堂與市集》中寫(xiě)下了這場(chǎng)運(yùn)動(dòng)的宣言,同時(shí)他還是《新黑洞詞典》的編輯。

圖書(shū)目錄

Contents
序 xxv
Part I
第1章 哲學(xué)
1.1 文化?什么文化
1.2 Unix的生命力
1.3 反對(duì)學(xué)習(xí)Unix文化的理由
1.4 Unix之失
1.5 Unix之得
1.5.1 開(kāi)源軟件
1.5.2 跨平臺(tái)可移植性和開(kāi)放標(biāo)準(zhǔn)
1.5.3 Internet和萬(wàn)維網(wǎng)
1.5.4 開(kāi)源社區(qū)
1.5.5 從頭到腳的靈活性
1.5.6 Unix Hack之趣
1.5.7 Unix的經(jīng)驗(yàn)別處也可適用
1.6 Unix哲學(xué)基礎(chǔ)
1.6.1 模塊原則:使用簡(jiǎn)潔的接口拼合簡(jiǎn)單的部件
1.6.2 清晰原則: 清晰勝于機(jī)巧
1.6.3 組合原則:設(shè)計(jì)時(shí)考慮拼接組合
1.6.4 分離原則: 策略同機(jī)制分離,接口同引擎分離
1.6.5 簡(jiǎn)潔原則:設(shè)計(jì)要簡(jiǎn)潔,復(fù)雜度能低則低
1.6.6 吝嗇原則: 除非確無(wú)它法,不要編寫(xiě)龐大的程序
1.6.7 透明性原則:設(shè)計(jì)要可見(jiàn),以便審查和調(diào)試
1.6.8 健壯原則: 健壯源于透明與簡(jiǎn)潔
1.6.9 表示原則: 把知識(shí)疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯
1.6.10 通俗原則:接口設(shè)計(jì)避免標(biāo)新立異
1.6.11 緘默原則:如果一個(gè)程序沒(méi)什么好說(shuō)的,就保持沉默
1.6.12 補(bǔ)救原則: 出現(xiàn)異常時(shí),馬上退出并給出足量錯(cuò)誤信息
1.6.13 經(jīng)濟(jì)原則: 寧花機(jī)器一分,不花程序員一秒
1.6.14 生成原則: 避免手工hack,盡量編寫(xiě)程序去生成程序
1.6.15 優(yōu)化原則: 雕琢前先得有原型,跑之前先學(xué)會(huì)走
1.6.16 多樣原則:決不相信所謂“不二法門(mén)”的斷言
1.6.17 擴(kuò)展原則: 設(shè)計(jì)著眼未來(lái),未來(lái)總比預(yù)想快
1.7 Unix哲學(xué)之一言以蔽之
1.8 應(yīng)用Unix哲學(xué)
1.9 態(tài)度也要緊
第2章 歷史--雙流記
2.1 Unix的起源及歷史,1969-1995
2.1.1 創(chuàng)世紀(jì):1969-1971
2.1.2 出埃及記:1971-1980
2.1.3 TCP/IP 和Unix內(nèi)戰(zhàn):1980-1990
2.1.4 反擊帝國(guó):1991-1995
2.2 黑客的起源和歷史:1961-1995
2.2.1 游戲在校園的林間:1961-1980
2.2.2 互聯(lián)網(wǎng)大融合與自由軟件運(yùn)動(dòng):1981-1991
2.2.3 Linux 和實(shí)用主義者的應(yīng)對(duì):1991-1998
2.3 開(kāi)源運(yùn)動(dòng):1998年及之后
2.4 Unix的歷史教訓(xùn)
第3章 對(duì)比: Unix哲學(xué)同其他哲學(xué)的比較
3.1 操作系統(tǒng)的風(fēng)格元素
3.1.1 什么是操作系統(tǒng)的統(tǒng)一性理念
3.1.2 多任務(wù)能力
3.1.3 協(xié)作進(jìn)程
3.1.4 內(nèi)部邊界
3.1.5 文件屬性和記錄結(jié)構(gòu)
3.1.6 二進(jìn)制文件格式
3.1.7 首選用戶界面風(fēng)格
3.1.8 目標(biāo)受眾
3.1.9 開(kāi)發(fā)的門(mén)坎
3.2 操作系統(tǒng)的比較
3.2.1 VMS
3.2.2 MacOS
3.2.3 OS/2
3.2.4 Windows NT
3.2.5 BeOS
3.2.6 MVS
3.2.7 VM/CMS
3.2.8 Linux
3.3 種什么籽,得什么果
Part II
第4章 模塊性:保持清晰,保持簡(jiǎn)潔
4.1 封裝和最佳模塊大小
4.2 緊湊性和正交性
4.2.1 緊湊性
4.2.2 正交性
4.2.3 SPOT原則
4.2.4 緊湊性和強(qiáng)單一中心
4.2.5 分離的價(jià)值
4.3 軟件是多層的
4.3.1 自頂向下和自底向上
4.3.2 膠合層
4.3.3 實(shí)例分析:被視為薄膠合層的C語(yǔ)言
4.4 程序庫(kù)
4.4.1 實(shí)例分析:GIMP插件
4.5 Unix和面向?qū)ο笳Z(yǔ)言
4.6 模塊式編碼
第5章 文本化:好協(xié)議產(chǎn)生好實(shí)踐
5.1 文本化的重要性
5.1.1 實(shí)例分析:Unix口令文件格式
5.1.2 實(shí)例分析:.newsrc格式
5.1.3 實(shí)例分析:PNG圖形文件格式
5.2 數(shù)據(jù)文件元格式
5.2.1 DSV 風(fēng)格
5.2.2 RFC 822 格式
5.2.3 Cookie-Jar格式
5.2.4 Record-Jar格式
5.2.5 XML
5.2.6 Windows INI 格式
5.2.7 Unix文本文件格式的約定
5.2.8 文件壓縮的利弊
5.3 應(yīng)用協(xié)議設(shè)計(jì)
5.3.1 實(shí)例分析:SMTP,一個(gè)簡(jiǎn)單的套接字協(xié)議
5.3.2 實(shí)例分析:POP3,郵局協(xié)議
5.3.3 實(shí)例分析:IMAP,互聯(lián)網(wǎng)消息訪問(wèn)協(xié)議
5.4 應(yīng)用協(xié)議元格式
5.4.1 經(jīng)典的互聯(lián)網(wǎng)應(yīng)用元協(xié)議
5.4.2 作為通用應(yīng)用協(xié)議的HTTP
5.4.3 BEEP:塊可擴(kuò)展交換協(xié)議
5.4.4 XML-RPC,SOAP和Jabber
第6章 透明性:來(lái)點(diǎn)兒光
6.1 研究實(shí)例
6.1.1 實(shí)例分析:audacity
6.1.2 實(shí)例分析:fetchmail的-v選項(xiàng)
6.1.3 實(shí)例分析:GCC
6.1.4 實(shí)例分析:kmail
6.1.5 實(shí)例分析:SNG
6.1.6 實(shí)例分析:Terminfo數(shù)據(jù)庫(kù)
6.1.7 實(shí)例分析:Freeciv數(shù)據(jù)文件
6.2 為透明性和可顯性而設(shè)計(jì)
6.2.1 透明性之禪
6.2.2 為透明性和可顯性而編碼
6.2.3 透明性和避免過(guò)度保護(hù)
6.2.4 透明性和可編輯的表現(xiàn)形式
6.2.5 透明性、故障診斷和故障恢復(fù)
6.3 為可維護(hù)性而設(shè)計(jì)
第7章 多道程序設(shè)計(jì): 分離進(jìn)程為獨(dú)立的功能
7.1 從性能調(diào)整中分離復(fù)雜度控制
7.2 Unix IPC 方法的分類(lèi)
7.2.1 把任務(wù)轉(zhuǎn)給專(zhuān)門(mén)程序
7.2.2 管道、重定向和過(guò)濾器
7.2.3 包裝器
7.2.4 安全性包裝器和Bernstein鏈
7.2.5 從進(jìn)程
7.2.6 對(duì)等進(jìn)程間通信
7.3 要避免的問(wèn)題和方法
7.3.1 廢棄的Unix IPC方法
7.3.2 遠(yuǎn)程過(guò)程調(diào)用
7.3.3 線程--恐嚇或威脅
7.4 在設(shè)計(jì)層次上的進(jìn)程劃分
第8章 微型語(yǔ)言:尋找歌唱的樂(lè)符
8.1 理解語(yǔ)言分類(lèi)法
8.2 應(yīng)用微型語(yǔ)言
8.2.1 案例分析:sng
8.2.2 案例分析:正則表達(dá)式
8.2.3 案例分析:Glade
8.2.4 案例分析:m
8.2.5 案例分析:XSLT
8.2.6 案例分析:The Documenter's Workbench Tools
8.2.7 案例分析:fetchmail的運(yùn)行控制語(yǔ)法
8.2.8 案例分析:awk
8.2.9 案例分析:PostScript
8.2.10 案例分析:bc和dc
8.2.11 案例分析:Emacs Lisp
8.2.12 案例分析:JavaScript
8.3 設(shè)計(jì)微型語(yǔ)言
8.3.1 選擇正確的復(fù)雜度
8.3.2 擴(kuò)展和嵌入語(yǔ)言
8.3.3 編寫(xiě)自定義語(yǔ)法
8.3.4 宏-慎用
8.3.5 語(yǔ)言還是應(yīng)用協(xié)議
第9章 生成:提升規(guī)格說(shuō)明的層次
9.1 數(shù)據(jù)驅(qū)動(dòng)編程
9.1.1 實(shí)例分析:ascii
9.1.2 實(shí)例分析:統(tǒng)計(jì)學(xué)的垃圾郵件統(tǒng)計(jì)
9.1.3 實(shí)例分析:fetchmailconf中的元類(lèi)改動(dòng)
9.2 專(zhuān)用代碼的生成
9.2.1 實(shí)例分析:生成ascii顯示的代碼
9.2.2 實(shí)例分析:為列表生成HTML代碼
第10章 配置:邁出正確的第一步
10.1 什么應(yīng)是可配置的
10.2 配置在哪里
10.3 運(yùn)行控制文件
10.3.1 實(shí)例分析:.netrc文件
10.3.2 到其它操作系統(tǒng)的可移植性
10.4 環(huán)境變量
10.4.1 系統(tǒng)環(huán)境變量
10.4.2 用戶環(huán)境變量
10.4.3 何時(shí)使用環(huán)境變量
10.4.4 到其它操作系統(tǒng)的可移植性
10.5 命令行選項(xiàng)
10.5.1 從-a到-z的命令行選項(xiàng)
10.5.2 到其它操作系統(tǒng)的可移植性
10.6 如何挑選方法
10.6.1 實(shí)例分析:fetchmail
10.6.2 實(shí)例分析:XFree86服務(wù)器
10.7 論打破規(guī)則
第11章 接口:Unix環(huán)境下的用戶接口設(shè)計(jì)模式
11.1 最小立異原則的應(yīng)用
11.2 Unix接口設(shè)計(jì)的歷史
11.3 接口設(shè)計(jì)評(píng)估
11.4 CLI和可視接口之間的權(quán)衡
11.4.1 實(shí)例分析:編寫(xiě)計(jì)算器程序的兩種方式
11.5 透明度、表現(xiàn)力和可配置性
11.6 Unix接口設(shè)計(jì)模式
11.6.1 過(guò)濾器模式
11.6.2 Cantrip模式
11.6.3 源模式
11.6.4 接收器模式
11.6.5 編譯器模式
11.6.6 ed模式
11.6.7 Roguelike 模式
11.6.8 “引擎和接口分離”模式
11.6.9 CLI服務(wù)器模式
11.6.10 基于語(yǔ)言的接口模式
11.7 應(yīng)用Unix接口設(shè)計(jì)模式
11.8 網(wǎng)頁(yè)瀏覽器作為通用前端
11.9 沉默是金
第12章 優(yōu)化
12.1 什么也別做,就站在那兒
12.2 先估量,后優(yōu)化
12.3 非定域性之害
12.4 吞吐量和延遲
12.4.1 批操作
12.4.2 重疊操作
12.4.3 緩存操作結(jié)果
第13章 復(fù)雜度:盡可能簡(jiǎn)單,但別簡(jiǎn)過(guò)了頭
13.1 談?wù)剰?fù)雜度
13.1.1 復(fù)雜度的三個(gè)來(lái)源
13.1.2 接口復(fù)雜度和實(shí)現(xiàn)復(fù)雜度的折中
13.1.3 必然的、可能的和偶然的復(fù)雜度
13.1.4 映射復(fù)雜度
13.1.5 當(dāng)簡(jiǎn)潔性不能勝任
13.2 五個(gè)編輯器的故事
13.2.1 ed
13.2.2 vi
13.2.3 Sam
13.2.4 Emacs
13.2.5 Wily
13.3 編輯器的適當(dāng)規(guī)模
13.3.1 甄別復(fù)雜度問(wèn)題
13.3.2 折衷無(wú)用
13.3.3 Emacs是個(gè)反Unix傳統(tǒng)的論據(jù)嗎
13.4 軟件的適度規(guī)模
Part III
第14章 語(yǔ)言:C還是非C
14.1 Unix下語(yǔ)言的豐饒
14.2 為什么不是C
14.3 解釋型語(yǔ)言和混合策略
14.4 語(yǔ)言評(píng)估
14.4.1 C
14.4.2 C++
14.4.3 Shell
14.4.4 Perl
14.4.5 Tcl
14.4.6 Python
14.4.7 Java
14.4.8 Emacs Lisp
14.5 未來(lái)趨勢(shì)
14.6 選擇X工具包
第15章 工具:開(kāi)發(fā)的戰(zhàn)術(shù)
15.1 開(kāi)發(fā)者友好的操作系統(tǒng)
15.2 編輯器選擇
15.2.1 了解vi
15.2.2 了解Emacs
15.2.3 非虔誠(chéng)的選擇:兩者兼用
15.3 專(zhuān)用代碼生成器
15.3.1 yacc和lex
15.3.2 實(shí)例分析:fetchmailrc的語(yǔ)法
15.3.3 實(shí)例分析:Glade
15.4 make:自動(dòng)化編譯
15.4.1 make的基本理論
15.4.2 非C/C++開(kāi)發(fā)中的make
15.4.3 通用生成目標(biāo)
15.4.4 生成Makefile
15.5 版本控制系統(tǒng)
15.5.1 為什么需要版本控制
15.5.2 手工版本控制
15.5.3 自動(dòng)化的版本控制
15.5.4 Unix的版本控制工具
15.6 運(yùn)行期調(diào)試
15.7 性能分析
15.8 使用Emacs整合工具
15.8.1 Emacs和make
15.8.2 Emacs和運(yùn)行期調(diào)試
15.8.3 Emacs和版本控制
15.8.4 Emacs和Profiling
15.8.5 像IDE一樣,但更強(qiáng)
第16章 重用:論不要重新發(fā)明輪子
16.1 豬小兵的故事
16.2 透明性是重用的關(guān)鍵
16.3 從重用到開(kāi)源
16.4 生命中最美好的就是“開(kāi)放”
16.5 何處找
16.6 使用開(kāi)源軟件的問(wèn)題
16.7 許可證問(wèn)題
16.7.1 開(kāi)放源碼的資格
16.7.2 標(biāo)準(zhǔn)開(kāi)放源碼許可證
16.7.3 何時(shí)需要律師
Part IV
第17章 可移植性:軟件可移植性與遵循標(biāo)準(zhǔn)
17.1 C語(yǔ)言的演化
17.1.1 早期的C語(yǔ)言
17.1.2 C 語(yǔ)言標(biāo)準(zhǔn)
17.2 Unix 標(biāo)準(zhǔn)
17.2.1 標(biāo)準(zhǔn)和Unix之戰(zhàn)
17.2.2 慶功宴上的幽靈
17.2.3 開(kāi)源世界的Unix標(biāo)準(zhǔn)
17.3 IETF和RFC標(biāo)準(zhǔn)化過(guò)程
17.4 規(guī)格DNA,代碼RNA
17.5 可移植性編程
17.5.1 可移植性和編程語(yǔ)言選擇
17.5.2 避免系統(tǒng)依賴性
17.5.3 移植工具
17.6 國(guó)際化
17.7 可移植性、開(kāi)放標(biāo)準(zhǔn)以及開(kāi)放源碼
第18章 文檔:向網(wǎng)絡(luò)世界闡釋代碼
18.1 文檔概念
18.2 Unix風(fēng)格
18.2.1 大文檔偏愛(ài)
18.2.2 文化風(fēng)格
18.3 各種Unix文檔格式
18.3.1 troff和Documenter's Workbench Tools
18.3.2 TEX
18.3.3 Texinfo
18.3.4 POD
18.3.5 HTML
18.3.6 DocBook
18.4 當(dāng)前的混亂和可能的出路
18.5 DocBook
18.5.1 文檔類(lèi)型定義
18.5.2 其它DTD
18.5.3 DocBook 工具鏈
18.5.4 移植工具
18.5.5 編輯工具
18.5.6 相關(guān)標(biāo)準(zhǔn)和實(shí)踐
18.5.7 SGML
18.5.8 XML-DocBook 參考書(shū)籍
18.6 編寫(xiě)Unix文檔的最佳實(shí)踐
第19章 開(kāi)放源碼:在Unix新社區(qū)中編程
19.1 Unix和開(kāi)放源碼
19.2 與開(kāi)源開(kāi)發(fā)者協(xié)同工作的最佳實(shí)踐
19.2.1 良好的修補(bǔ)實(shí)踐
19.2.2 良好的項(xiàng)目、檔案文件命名實(shí)踐
19.2.3 良好的開(kāi)發(fā)實(shí)踐
19.2.4 良好的發(fā)行制作實(shí)踐
19.2.5 良好的交流實(shí)踐
19.3 許可證的邏輯:如何挑選
19.4 為什么應(yīng)使用某個(gè)標(biāo)準(zhǔn)許可證
19.5 各種開(kāi)源許可證
19.5.1 MIT或者X Consortium許可證
19.5.2 經(jīng)典BSD許可證
19.5.3 Artistic許可證
19.5.4 通用公共許可證
19.5.5 Mozilla 公共許可證
第20章 未來(lái):危機(jī)與機(jī)遇
20.1 Unix傳統(tǒng)中的必然和偶然
20.2 Plan 9:未來(lái)之路
20.3 Unix設(shè)計(jì)中的問(wèn)題
20.3.1 Unix文件就是一大袋字節(jié)
20.3.2 Unix對(duì)GUI的支持孱弱
20.3.3 文件刪除不可撤銷(xiāo)
20.3.4 Unix假定文件系統(tǒng)是靜態(tài)的
20.3.5 作業(yè)控制設(shè)計(jì)拙劣
20.3.6 Unix API 沒(méi)有使用異常
20.3.7 ioctl(2)和fcntl(2)是個(gè)尷尬
20.3.8 Unix安全模型可能太過(guò)原始
20.3.9 Unix名字種類(lèi)太多
20.3.10 文件系統(tǒng)可能有害論
20.3.11 朝向全局互聯(lián)網(wǎng)地址空間
20.4 Unix的環(huán)境問(wèn)題
20.5 Unix文化中的問(wèn)題
20.6 信任的理由
附錄A 縮寫(xiě)詞表
附錄B 參考文獻(xiàn)
附錄C 貢獻(xiàn)者
附錄D 無(wú)根的根:無(wú)名師的Unix心傳
Colophon
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)