首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

传世经典书丛:UNIX编程艺术(埃瑞克.S.理曼德)(1)

2012-10-27 
  《传世经典书丛:UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一EricS.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。
商家名称 信用等级 购买信息 订购本书
传世经典书丛:UNIX编程艺术(埃瑞克.S.理曼德) 去商家看看
传世经典书丛:UNIX编程艺术(埃瑞克.S.理曼德) 去商家看看

传世经典书丛:UNIX编程艺术(埃瑞克.S.理曼德)

编辑推荐

《传世经典书丛:UNIX编程艺术》内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。

作者简介

Eric S.RAYMOND 从1982年开始就是UNIX开发者。作为开源社区文化的倡导和呼吁者,他在《大教堂与市集》中写下了这场运动的宣言,同时他还是《新黑客词典》的编辑。

目录


PartIⅠ1
第1章 哲学3
1.1 文化?什么文化3
1.2 Unix的生命力4
1.3 反对学习Unix文化的理由5
1.4 Unix之失6
1.5 Unix之得7
1.5.1 开源软件7
1.5.2 跨平台可移植性和开放标准8
1.5.3 Internet和万维网8
1.5.4 开源社区9
1.5.5 从头到脚的灵活性9
1.5.6 UnixHack之趣10
1.5.7 Unix的经验别处也可适用11
1.6 Unix哲学基础11
1.6.1 模块原则:使用简洁的接口拼合简单的部件14
1.6.2 清晰原则:清晰胜于机巧14
1.6.3 组合原则:设计时考虑拼接组合15
1.6.4 分离原则:策略同机制分离,接口同引擎分离16
1.6.5 简洁原则:设计要简洁,复杂度能低则低17
1.6.6 吝啬原则:除非确无它法,不要编写庞大的程序18
1.6.7 透明性原则:设计要可见,以便审查和调试18
1.6.8 健壮原则:健壮源于透明与简洁18
1.6.9 表示原则:把知识叠入数据以求逻辑质朴而健壮19
1.6.10 通俗原则:接口设计避免标新立异20
1.6.11 缄默原则:如果一个程序没什么好说的,就保持沉默20
1.6.12 补救原则:出现异常时,马上退出并给出足量错误信息21
1.6.13 经济原则:宁花机器一分,不花程序员一秒22
1.6.14 生成原则:避免手工hack,尽量编写程序去生成程序22
1.6.15 优化原则:雕琢前先得有原型,跑之前先学会走23
1.6.16 多样原则:决不相信所谓“不二法门”的断言24
1.6.17 扩展原则:设计着眼未来,未来总比预想快24
1.7 Unix哲学之一言以蔽之25
1.8 应用Unix哲学26
1.9 态度也要紧26
第2章 历史——双流记29
2.1 Unix的起源及历史,1969-199529
2.1.1 创世纪:1969-197130
2.1.2 出埃及记:1971-198032
2.1.3 TCP/IP和Unix内战:1980-199035
2.1.4 反击帝国:1991-199541
2.2 黑客的起源和历史:1961-199543
2.2.1 游戏在校园的林间:1961-198044
2.2.2 互联网大融合与自由软件运动:1981-199145
2.2.3 Linux和实用主义者的应对:1991-199848
2.3 开源运动:1998年及之后49
2.4 Unix的历史教训51
第3章 对比:Unix哲学同其他哲学的比较53
3.1 操作系统的风格元素53
3.1.1 什么是操作系统的统一性理念54
3.1.2 多任务能力54
3.1.3 协作进程55
3.1.4 内部边界57
3.1.5 文件属性和记录结构57
3.1.6 二进制文件格式58
3.1.7 首选用户界面风格58
3.1.8 目标受众59
3.1.9 开发的门坎60
3.2 操作系统的比较61
3.2.1 VMS61
3.2.2 MacOS64
3.2.3 OS/265
3.2.4 WindowsNT68
3.2.5 BeOS71
3.2.6 MVS72
3.2.7 VM/CMS74
3.2.8 Linux76
3.3 种什么籽,得什么果78
PartⅡ81
第4章 模块性:保持清晰,保持简洁83
4.1 封装和最佳模块大小85
4.2 紧凑性和正交性87
4.2.1 紧凑性87
4.2.2 正交性89
4.2.3 SPOT原则91
4.2.4 紧凑性和强单一中心92
4.2.5 分离的价值94
4.3 软件是多层的95
4.3.1 自顶向下和自底向上95
4.3.2 胶合层97
4.3.3 实例分析:被视为薄胶合层的C语言98
4.4 程序库99
4.4.1 实例分析:GIMP插件100
4.5 Unix和面向对象语言101
4.6 模块式编码103
第5章 文本化:好协议产生好实践105
5.1 文本化的重要性107
5.1.1 实例分析:Unix口令文件格式109
5.1.2 实例分析:newsrc格式110
5.1.3 实例分析:PNG图形文件格式111
5.2 数据文件元格式112
5.2.1 DSV风格113
5.2.2 RFC822格式114
5.2.3 Cookie—Jar格式115
5.2.4 Record—Jar格式116
5.2.5 XML117
5.2.6 WindowsINI格式119
5.2.7 Unix文本文件格式的约定120
5.2.8 文件压缩的利弊122
5.3 应用协议设计123
5.3.1 实例分析:SMTP,一个简单的套接字协议124
5.3.2 实例分析:POP3,邮局协议124
5.3.3 实例分析:IMAP,互联网消息访问协议126
5.4 应用协议元格式127
5.4.1 经典的互联网应用元协议127
5.4.2 作为通用应用协议的HTTP128
5.4.3 BEEP:块可扩展交换协议130
5.4.4 XML—RPC,SOAP和Jabber131
第6章 透明性:来点儿光133
6.1 研究实例135
6.1.1 实例分析:audacity135
6.1.2 实例分析:fetchmail的–v选项136
6.1.3 实例分析:GCC139
6.1.4 实例分析:kmail140
6.1.5 实例分析:SNG142
6.1.6 实例分析:Terminfo数据库144
6.1.7 实例分析:Freeciv数据文件146
6.2 为透明性和可显性而设计148
6.2.1 透明性之禅149
6.2.2 为透明性和可显性而编码150
6.2.3 透明性和避免过度保护151
6.2.4 透明性和可编辑的表现形式152
6.2.5 透明性、故障诊断和故障恢复153
6.3 为可维护性而设计154
第7章 多道程序设计:分离进程为独立的功能157
7.1 从性能调整中分离复杂度控制159
7.2 UnixIPC方法的分类160
7.2.1 把任务转给专门程序160
7.2.2 管道、重定向和过滤器161
7.2.3 包装器166
7.2.4 安全性包装器和Bernstein链167
7.2.5 从进程168
7.2.6 对等进程间通信169
7.3 要避免的问题和方法176
7.3.1 废弃的UnixIPC方法176
7.3.2 远程过程调用178
7.3.3 线程——恐吓或威胁180
7.4 在设计层次上的进程划分181
第8章 微型语言:寻找歌唱的乐符183
8.1 理解语言分类法185
8.2 应用微型语言187
8.2.1 案例分析:sng187
8.2.2 案例分析:正则表达式188
8.2.3 案例分析:Glade191
8.2.4 案例分析:m4193
8.2.5 案例分析:XSLT194
8.2.6 案例分析:TheDocumenter's work bench Tools195
8.2.7 案例分析:fetchmail的运行控制语法199
8.2.8 案例分析:awk200
8.2.9 案例分析:PostScript202
8.2.10 案例分析:bc和dc203
8.2.11 案例分析:EmacsLisp205
8.2.12 案例分析:JavaScript205
8.3 设计微型语言206
8.3.1 选择正确的复杂度207
8.3.2 扩展和嵌入语言209
8.3.3 编写自定义语法210
8.3.4 宏—慎用210
8.3.5 语言还是应用协议212
第9章 生成:提升规格说明的层次215
9.1 数据驱动编程216
9.1.1 实例分析:ascii217
9.1.2 实例分析:统计学的垃圾邮件统计218
9.1.3 实例分析:fetchmailconf中的元类改动219
9.2 专用代码的生成225
9.2.1 实例分析:生成ascii显示的代码225
9.2.2 实例分析:为列表生成HTML代码227
第10章 配置:迈出正确的第一步231
10.1 什么应是可配置的231
10.2 配置在哪里233
10.3 运行控制文件234
10.3.1 实例分析:.Netrc文件236
10.3.2 到其它操作系统的可移植性238
10.4 环境变量238
10.4.1 系统环境变量238
10.4.2 用户环境变量240
10.4.3 何时使用环境变量240
10.4.4 到其它操作系统的可移植性242
10.5 命令行选项242
10.5.1 从–a到–z的命令行选项243
10.5.2 到其它操作系统的可移植性248
10.6 如何挑选方法248
10.6.1 实例分析:fetchmail249
10.6.2 实例分析:XFree86服务器251
10.7 论打破规则252
第11章 接口:Unix环境下的用户接口设计模式253
11.1 最小立异原则的应用254
11.2 Unix接口设计的历史256
11.3 接口设计评估257
11.4 CLI和可视接口之间的权衡259
11.4.1 实例分析:编写计算器程序的两种方式262
11.5 透明度、表现力和可配置性264
11.6 Unix接口设计模式266
11.6.1 过滤器模式266
11.6.2 Cantrip模式268
11.6.3 源模式268
11.6.4 接收器模式269
11.6.5 编译器模式269
11.6.6 ed模式270
11.6.7 Roguelike模式270
11.6.8 “引擎和接口分离”模式273
11.6.9 CLI服务器模式278
11.6.10 基于语言的接口模式279
11.7 应用Unix接口设计模式280
11.7.1多价程序模式
11.8 网页浏览器作为通用前端281
11.9 沉默是金284
第12章 优化287
12.1 什么也别做,就站在那儿287

热点排行