不读《代码之美(Beatiful Code)》的10大理由
10. 危及感情:爱不释手,容易专注,老婆/女友会怀疑我有外遇。
9. 影响心情:从此我总会发现很多不美的代码。
8. 剥夺乐趣:编程的乐趣有很大一部分在于不停地追求完美。
7. 备受压榨:工作效率大大提高,老板只会给我更多工作来做。
6. 各有所爱:我就喜欢通过海啃书山来了解大师的精髓。
5. 分裂社区:只能让读过本书的人先牛起来,在开发界造成严重的“菜-牛”差距。
4. 没有需求:最优秀的开发者根本不需要最优秀的书。
3. 诱发犯罪:不管我买几本,都会被同事偷走甚至抢走。
2. 传染性强:一旦我买了,其他同事肯定也会买。
1. 无知者无畏:不读本书的最大理由其实只有一个,那就是你没有读过。
===============================================================================
![](http://images.china-pub.com/ebook35001-40000/37838/zcover.jpg)
点击此处查看chinapub读者对此书的评价
【内容简介】
这是一本独一无二,富有洞察力的书,它集结了软件设计大师们的见解和思想。在每一章的内容中,当今的顶尖程序员们将向您展示一个个用来处理各种困难问题的优雅的解决方法,同时给予详尽的讲解,以期让您了解这些方法的优雅所在。.这本书不能被简单地归类为又一本设计模式,或者又一本用来指导事情对错的软件工程条例。相反,这本书给您提供了一个机会,让您有机会站在一些软件设计巨人的肩膀上,透过他们的视野,来看待我们身处的世界。..
三十八位大师级的程序员,一步步讲解他们的项目架构,开发时的种种折中考虑(tradeoffs)以及何时必须打破常规,寻求突破。...
【目录】
第一章, 正则表达式匹配器, 作者by Brian Kernighan, 阐述对语言和问题的深入了解是如何催生简洁和优雅的解决方案
第二章, Subversion的差别编辑器: 以接口为本体, 作者Karl Fogel, 从一个精心选取的抽象, 证明它对系统进一步开发的统一影响
第三章, 我从未写过的最美丽的代码, 作者Jon Bentley, 讲述如何不用执行就可以测量一个函数
第四章, 寻找事物, 作者Tim Bray, 在探索一个计算任务的基本问题的过程中, 把许多计算机科学的线索连在一起
第五章, 正确, 美丽, 快速 (依次做到): 从设计XML校验器的过程中所学到的, 作者Elliotte Rusty Harold, 调和完全性和效率这两个常常冲突的目标
第六章, 集成测试框架: 脆弱中的美, 作者Michael Feathers, 阐述一个打破条条框框达到自己的优雅实现的例子
第七章, 美丽的测试, 作者Alberto Savoia, 阐述广泛的创造性的测试不但能消灭bug, 而且能让你成为更好的程序员
第八章: 图像处理中的即时代码生成, 作者Charles Petzold,
第九章: 颠倒的运算顺序, 作者Douglas Crockford, 挖掘出一种几乎被遗忘了的解析技术以及这种技术在Javascript语言上的新应用
第十章: 探索加速的人口记数, 作者Henry S. Warren, Jr., 公布一些聪明的算法对一些看上去很简单的问题也具有的重大影响
第十一章: 安全通讯: 自由的技术, 作者Ashish Gulhati, 讨论一个安全通讯程序进化, 使用户极方便地使用一些专业但令人困扰的密码技术
第十二章: 在 BioPerl 中培育美丽的代码, 作者Lincoln Stein, 展示有弹性的语言和用户定制的模块的组合是如何让仅有有限编程技能的用户创建出强大的数据可视化展示变得简单
第十三章: 基因排序器的设计, 作者Jim Kent, 简单模块搭建出健壮而有价值的基因研究工具
第十四章: 优雅的代码如何和硬件共进化: 高斯消元法一例, 作者Jack Dongarra 和 Piotr Luszczek, 调查LINPACH和与之相关的大型软件的历史, 揭示假设应该时时根据新的计算架构被重新估量
第十五章: 漂亮设计的长期益处, 作者Adam Kolawa, 解释数十年前对良好设计原则的注重是如何帮助CERN的广泛使用的数学库(LINPACK的前身)经受住时间的考验的.
第十六章: Linux内核驱动模型: 协同工作的益处, 作者Greg Kroah-Hartman, 解释不同贡献者的大量工作是如何解决不同类型的问题, 造就一个复杂, 多线程的系统的成功进化.
第十七章: 另一层面的无方向性, 作者Diomidis Spinellis, 展现FreeBSD内核的灵活性和高可维护性是如何通过很多驱动程序和文件系统模块的普遍抽象得以提升的
第十八章: Python的字典实现: 化为万物为万人用, 作者Andrew Kuchling, 仔细设计和特殊处理的结合使一个语言特性适用于各种情况
第十九章: NumPy中的多维迭代器, 作者Travis E. Oliphant, 带你亲历成功以简单借口隐藏复杂性的设计工程
第二十章: 为NASA火星探险计划设计的高可靠性企业级系统, 作者 Ronald Mak, 使用工业标准, 最佳实践和Java技术来满足NASA可靠性无可妥协的需求
第二十一章: ERP5: 为最大适应性而设计, 作者Rogerio Atem de Carvalho 和 Rafael Monnerat, 讲述如何使用自由软件工具和灵活的架构来开发强大的ERP系统
第二十二章: 一勺污物, 作者Bryan Cantrill, 让读者和作者一起亲历一个让人毛骨悚然的bug引起的恐慌和一个貌似聪明而事与愿违的解决方案
第 二十三章: 用MapReduce进行分布式开发, 作者 Jeff Dean 和 Sanjay Ghemawat, 介绍Google使用的一套系统, 这套系统能为大型的分布式数据处理提供易于使用的编程抽象, 自动处理包括自动并行化, 负载平衡和失败处理等分布式计算的难点
第二十四章: 并发之美, 作者Simon Peyton Jones, 使用Haskell语言来证明软件事务性内存是如何降低开发并行程序的困难的
第二十五章: 语法抽象: 语法上的扩展器, 作者R. Kent Dybvig, 展示在Scheme中宏这一许多语言和系统中的重要特性是如何被保护以免产生错误输出
第二十六章: 节省人工的架构: 网络软件开发的面向对象框架, 作者William R. Otte 和 Douglas C. Schmidt, 在分布式日志系统中应用一系列标准的面向对象设计技术诸如模式和框架, 来达到系统的灵活性和模块化
第二十七章: 以RESTful的方式来融合生意伙伴, 作者Andrew Patzer, 设计师用锲合需求的B2B web service设计来表达对程序员的尊重
第二十八章: 调试之美, 作者Andreas Zeller, 以严格的方式来验证代码是如何减少跟踪错误的时间的
第二十九章: 待代码如散文, 作者Yukihiro Matsumoto, 驱动他设计Ruby语言的一些富有挑战性的原则, 以及这些原则是如何帮助生成更好的产品
第三十章: 当你和世界仅以一个按钮相连, 作者Arun Mehta, 带你亲身经历设计一个文字编辑系统所遇到的让人震惊的接口定义抉择, 这个文字编辑系统能让如史蒂文.霍金教授这样的有严重运动残疾的人能通过计算机进行交流
第三十一章: Emacspeak: 完整的音响桌面, 作者T. V. Raman, 阐述Lisp的advice能力在Emacs系统中的应用: 如何在不改变大型软件系统底层代码的前提下, 满足贯穿Emacs系统所有层面的普遍要求: 生成丰富声音输出.
第三十二章: 动感代码, 作者Laura Wingerd and Christopher Seiwald, 列出一些简单的规矩, 这些规矩对编程的准确性有意料之外的强烈影响.
第三十三章: 为”那本书”写程序, 作者Brian Hayes, 探索解决一个看上去简单的问题所遇到的挫折, 以及出人意料的解决方法