xx资源网(xxURLs.com)
发布资源

《代码之美》 高清PDF完整版

更多编程方面的经典高清PDF好书请浏览:

https://guonetnet.ctfile.com/shared/folder_21150501_e7e3f8a3/


代码之美.jpg代码之美1.jpg


编辑推荐

  

38位大师级的程序员,一步步讲解他们的项目架构,开发时的种种折中考虑(tradeoffs)以及何时必须打破常规,寻求突破。
   全球38位高手、众多语言之父经典之作。
   本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。
   本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。
   本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。

内容简介

《代码之美》介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。《代码之美》33章,有38位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。38位大牛,每个人对代码之美都有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。 虽然《代码之美》的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。

作者简介

全球38位顶尖高手、众多语言之父经典之作


精彩书评

重新擦亮思考的火花  
   《代码之美》这本书已经成为经典。关于它本身的赞美之辞已经不少了,不过到底从这本书里该读些什么东西,我倒是有些思考。  
   上世纪九十年代初期,当时正在加州大学埃尔文分校攻读博士学位的Douglas Schmidt在观察了他所参与的软件项目开发实践之后,得出一个结论,即未来的软件开发将越来越多地体现为整合(integration),而不是传统意义上的编程(programming)。换言之,被称为 “软件开发者” 的这个人群,将越来越明显地分化:一部分人开发核心构件和基础平台,而更多地人将主要是配置和整合现有构件以满足客户的需求,类似现代汽车、机床和家用电器制造业的产业格局即将到来。面对这一前景,博士生Schmidt一方面写文章对于其进步意义大加赞扬,另一方面毫不犹豫地投入到核心构件及平台的开发阵营中去。他很清楚,在这样一种分工体系中,由于软件整合产业很难出现垄断局面,因此大多数利润总是被截留在上游,人当然要往高处走,整合是好事,但他老兄宁可让别人来做这个好事。  
   事实上,软件产业中大多数看上去挺靠谱的预测都被历史的发展无情地抛到垃圾堆里了,然而Schmidt博士生的这个预测却惊人的准确,其后十几年软件工业的发展完美地印证了他当年的判断。因此,他本人基于这一预测所选择的人生道路也一帆风顺。如今已经是教授的Douglas Schmidt先后创造了ACE、TAO、CIAO等一系列分布式计算基础件,先后主导了美国学界和国防领域内若干重大科研与实际开发项目,称为世人公认的分布式计算架构领导者。  
   抛开他个人的辉煌不说,“整合化”趋势实际上已经深刻地改变了世界软件工业的面貌,从而也影响了身为晚进者的我们的命运。如今大部分的程序员实际上是在整合与配置现有资源以满足需求,而不是真正意义上的“编程”。这当然是一件好事,整合同样需要深刻的洞察力和创新精神,优秀的整合者与天才的程序员一样不可多得,甚至更加罕见。然而我们也不能不承认,大多数整合性的工作是机械的,简单的,重复的,欠缺创意的,深入的思考往往不必要。因此,在这个整合为王的时代里,思考的精神在钝化。更有甚者,互联网和搜索引擎的出现大大加速了这种钝化,几乎所有的问题都有人解决并且张贴在互联网上了,因此独自思考和解决问题已经成了不必要的、降低效率的行为,不但不时髦,而且不经济。软件开发迅速成为一个强调搜索和短期记忆力的技能,我想这是50年前第一代程序员们做梦也没有想到的。  
   老实讲,就整体而言,我仍然认为这是一种进步。任何一个产业的成熟,无不伴随着分工的明晰、技能的简化和从业门槛的降低。与少数人享受思考乐趣的需求相比,大多数人享受便宜而无处不在的软件服务的需求显然远为重要。但是,对于身处软件行业中的个体来说,思考力的削弱和丧失却是不折不扣的悲剧。这一点不必过多解释,正在苦苦寻找自己核心竞争力的开发者们都知道我说的是什么意思。几年来对中国开发者社群的近距离观察使我确信,尽管作为一个产业,中国软件一直享受着比较快的成长,但是总体而言,中国的软件开发者越来越迷惘、焦躁和不自信。这一情况当然是由多种原因导致的,但开发者们每念及此,多抱怨体制、产业、市场等身外之物,实在也有失偏颇。评心而论,这几年中国软件技术界的生存环境还是有了很大改善,对于那些真正出类拔萃的程序员来说,过上一种充实自信的生活并不困难。摆在每一个个体面前的主要问题还是在于能否出类拔萃,而这就需要我们重新找回思考的能力。具备强悍思考能力的人,也就具备强悍的解决问题的能力,而这样的开发者永远都是产业中的稀缺资源。  
   我认为这正是《代码之美》这本书的一个重要价值。合作的诸位大师级作者,给我们一个很好的机会,让我们能够一边阅读,一边思考,找回深思熟虑的智慧火花。这本书里所讲的每一个问题,可以说都是程序员在工作中会遇到或者至少会擦边的问题,既没有故弄玄虚的文字游戏,也没有携带了领域知识的私货,只有朴实而实际的一个个问题。虽然不是以提问的方式给出,但在整个阅读的过程中,我们还是能够找到很多机会与大师互动,不断地发现问题和解决问题。我在阅读中经常感到,看上去一个很简单的问题,却被这些大师们一层一层挖掘的如此深入,到最后阶段不由得令人感到战栗和震撼。看着这些智慧的光芒,我们不但可以领略大师之所谓称为大师的秘密,而且也认识到思考的真谛。因此,千万不要想看小说一样一带而过,那样会错过本书95%的价值!我们不是要阅读这些文字,而是要与文字背后的作者交流学习,一点一点把自己的心得记下来,对于作者提出的新问题,先自己思考,直接写程序尝试,争取跟上大师的思路,甚至可能需要反复几遍,才能真正读通这本书。这样的精力不会是白费的,读者应当认识到,当我们拥有这本书的时候,我们获得了怎样宝贵的机会,可以在相对比较短的时间里有效地提升自己的思考能力。这是一个机会,也是一次考验,我绝对相信,通过了这次考验的读者,会在思考和解决问题的能力上有一个大的进步。  
   我希望自己能够以这样的态度读这本了不起的书,以此文与其他读者朋友共勉之。  
   ——孟岩

目录

译者序

前言
第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. 外在美(Outer Beauty)
15.4. 内在美(Inner Beauty )
15.5. 结论

第16章,Linux内核驱动模型:协作的好处
16.1 简单的开始
16.2 进一步简化
16.3 扩展到上千台设备
16.4 小对象的松散结合

第17章  额外的间接层
17.1. 从直接代码操作到通过函数指针操作
17.2. 从函数参数到参数指针
17.3. 从文件系统到文件系统层
17.4. 从代码到DSL(Domain-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.3NumPy迭代器的起源
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 进一步阅读
后记


资源链接
《代码之美》.pdf: http://545c.com/file/12623596-185718850
标签

代码代码之美代码编写代码管理

发布日期

2017-03-30

擦亮日期

2017-03-30

扫一扫分享下载
资源网址导航
综合

图书酷 全索引 361图书馆

手机

电脑

影音

专业

游戏

体育

儿童

教育

资源分享站

其他