《代码之美》中文版pdf版
38位大师级的程序员,一步步讲解他们的项目架构,开发时的种种折中考虑(tradeoffs)以及何时必须打破常规,寻求突破。
全球38位顶尖高手、众多语言之父经典之作。
本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。
本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。

序
Greg Wilson
我在1982年夏天获得了第一份程序员工作。在我工作了两个星期后,一位系统管理员借给了我两本书:Kernighan和Plauger编写的《The Elements of Programming Style》(McGraw-Hill出版社)和Wirth编写的《Algorithms + Data Structures = Programs》 (Prentice Hall出版社)。这两本书让我大开眼界——我第一次发现程序并不仅仅只是一组计算机执行的指令。它们可以像做工优良的橱柜一样精致,像悬索吊桥一样漂亮, 或者像George Orwell的散文一样优美。
自从那个夏天以来,我经常听到人们感叹我们的教育并没有教会学生看到这一点。建筑师们需要观摩建筑物,作曲家们需要研习他人的作品,而程序员——他们只有在需要修改bug时才会去阅读其他人的代码;即使在这个时候,他们也会尽可能减少阅读量。我们曾告诉学生使用有意义的变量名,曾向他们介绍过一些基本的设计模式,但很奇怪,为什么他们编写的大多数代码都是很难看的呢!
本书将试图改变这种状况。2006年5月,我邀请了一些著名的(以及不太著名的)软件设计师来分析和讨论他们所知道的漂亮代码。正如在本书中将要介绍的,他们在许多不同的地方发现了代码的漂亮性。有些漂亮性存在于手工精心打造软件的细微之处,而有些漂亮性是蕴涵在大局之中——那些使程序能够持续发展的架构,或者用来构造程序的技术。
无论他们是在什么地方发现的这些漂亮性,我都非常感谢我们的投稿人抽出时间为我们奉献了这样的一次学习旅程。我希望你能够享受阅读此书的乐趣,就像Andy和我非常享受编辑这本书的过程,此外,我还希望这本书能激发你创建出一些漂亮的作品。
前言
《Beautiful Code》是由Greg Wilson在2006 年构思的,本书的初衷是希望从优秀的软件开发人员和计算机科学家中提炼出一些有价值的思想。他与助理编辑Andy Oram一起走访了世界各地不同技术背景的专家。本《代码之美》精选版是从原书中精选出其中的 6 章。
目录
序………………………………………………………………………………………………………………………………………….i
前言……………………………………………………………………………………………………………………………………. ii
第 1 章 正则表达式匹配器…………………………………………………………………………………………………….1
1.1 编程实践…………………………………………………………………………………………………………………………2
1.2 实现………………………………………………………………………………………………………………………………..3
1.3 讨论………………………………………………………………………………………………………………………………..4
1.4 其他的方法……………………………………………………………………………………………………………………..5
1.5 构建………………………………………………………………………………………………………………………………..6
1.6 小结………………………………………………………………………………………………………………………………..8
第 2 章 我编写过的最漂亮代码……………………………………………………………………………………………10
2.1 我编写过的最漂亮代码………………………………………………………………………………………………….10
2.2 事倍功半……………………………………………………………………………………………………………………….11
2.3 观点………………………………………………………………………………………………………………………………16
2.4 本章的中心思想是什么?………………………………………………………………………………………………18
2.5 结论………………………………………………………………………………………………………………………………18
2.6 致谢………………………………………………………………………………………………………………………………20
第 3 章 美丽测试…………………………………………………………………………………………………………………21
3.1 讨厌的二分查找…………………………………………………………………………………………………………….22
3.2 JUnit 简介……………………………………………………………………………………………………………………27
3.3 将二分查找进行到底……………………………………………………………………………………………………..29
3.4 结论………………………………………………………………………………………………………………………………47
第 4 章 NASA火星漫步者任务中的高可靠企业系统……………………………………………………………49
4.1 任务与 CIP ……………………………………………………………………………………………………………………49
4.2 任务需求……………………………………………………………………………………………………………………….50
4.3 系统架构……………………………………………………………………………………………………………………….51
4.4 案例分析:流服务…………………………………………………………………………………………………………54
4.5 可靠性…………………………………………………………………………………………………………………………..57
4.6 稳定性…………………………………………………………………………………………………………………………..66
4.7 结束语…………………………………………………………………………………………………………………………..67
第 5 章 美丽的并发……………………………………………………………………………………………………………..68
5.1 一个简单的例子…………………………………………………………………………………………………………….68
5.2 软件事务内存………………………………………………………………………………………………………………..71
5.3 圣诞老人问题………………………………………………………………………………………………………………..80
5.4 对 Haskell 的一些思考…………………………………………………………………………………………………..90
5.5 结论………………………………………………………………………………………………………………………………91
5.6 致谢………………………………………………………………………………………………………………………………92
第 6 章 以 REST 方式集成业务伙伴…………………………………………………………………………………….93
6.1 项目背景……………………………………………………………………………………………………………………….93
6.2 把服务开放给外部客户………………………………………………………………………………………………….93
6.3 使用工厂模式转发服务………………………………………………………………………………………………….97
6.4 用电子商务协议来交换数据…………………………………………………………………………………………..98
6.5 结束语…………………………………………………………………………………………………………………………104
后记………………………………………………………………………………………………………………………………….106
2010/11/07 12:20:39
Good stuff, do keep me posted when you finally post something like this!