《Beautiful Code》是由Greg Wilson在2006年构思的,本书的初衷是希望从优秀的软件开发人员和计算机科学家中提炼出一些有价值的思想。他与助理编辑Andy Oram一起走访了世界各地不同技术背景的专家。.
本书章节内容的组织
第1章,正则表达式匹配器,作者Brian Kernighan,介绍了对一种语言和一个问题的深入分析以及由此产生的简洁而优雅的解决方案。
第2章,Subversion中的增量编辑器:像本体一样的接口,作者Karl Fogel,首先介绍了一个精心设计的抽象,然后证明了这种抽象能够在系统将来的开发中带来一致性。
第3章,我编写过的最漂亮代码,作者Jon Bentley,介绍了如何在无需执行函数的情况下测试函数的性能。
第4章,查找,作者Tim Bray,应用了计算机科学中的多种技术来研究一个对许多计算任务来说都很重要的问题。
第5章,正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验,作者Elliotte Rusty Harold,解决了程序在完备性和高性能之间的冲突。
第6章,集成测试框架:脆弱之美,作者Michael Feathers,介绍了一个打破常规并获得优雅解决方案的示例。
第7章,美丽的测试,作者Alberto Savoia,介绍了一种全新的测试方法,不仅能够消除bug,还可以使你成为一个更优秀的程序员。
第8章,图像处理中的即时代码生成,作者Charles Petzold,介绍了一种在维护可移植性的同时还能够提高性能的方法。
第9章,自顶向下的运算符优先级,作者Douglas Crockford,介绍了一种几乎被人们遗忘的解析技术,并且给出了它与JavaScript语言的最新相关性。
第10章,寻求快速的种群计数,作者Henry S. Warren, Jr.,揭示了在一个看似简单的问题上如何应用一些巧妙的算法。
第11章,安全通信:自由的技术,作者Ashish Gulhati,讨论了一个安全消息应用程序的发展过程,这个程序被设计用来使用户能够直观地访问那些成熟但却经常产生误解的密码技术。
第12章,BioPerl中不断增长的漂亮代码,作者Lincoln Stein,介绍了如何通过将一种灵活的语言和客户定制的模块组合在一起,从而使编程技术一般的开发人员能够为他们的数据创建出功能强大的虚拟化形式。
第13章,基因排序器的设计,作者Jim Kent,将简单的构件组合起来从而为基因研究人员生成稳定并且有价值的工具。
第14章,优雅代码随硬件发展的演化,作者Jack Dongarra和Piotr Luszczek,介绍了LINPACK及其相关主要软件包的发展历史,从而给出了在面对新的计算架构时,应该如何对假设条件进行重新评估。
第15章,漂亮设计的长远益处,作者Adam Kolawa,阐述了数十年前所使用的良好设计原则如何帮助CERN中广泛应用的数学库(LINPACK的前身)经受住时间的考验。
第16章,Linux内核驱动模型:协作的好处,作者Greg Kroah-Hartman,阐述了不同的协作者在解决不同难题上所做出的努力以及如何来推动一个多线程复杂系统的成功发展。
第17章,另一种层次的间接,作者Diomidis Spinellis,介绍了如何对多数驱动程序和文件模块中的常见操作进行抽象以及如何通过这种抽象来提升FreeBSD内核的灵活性和可维护性。
第18章,Python的字典类:如何打造全能战士,作者Andrew Kuchling,介绍了一个能够适应某些特殊情况的完备设计‚以及如何通过这种设计来使一种语言特性支持许多不同的用途。
.第19章,NumPy中的多维迭代器,作者Travis E. Oliphant,展示了如何把复杂性成功隐藏在简单接口背后的设计步骤。
第20章,NASA火星漫步者任务中的高可靠企业系统,作者Ronald Mak,介绍了如何使用工业标准,最佳实践和Java技术来满足NASA探险任务的高可靠性需求。
第21章,ERP5:最大可适性设计,作者Rogerio Atem de Carvalho和Rafael Monnerat,介绍了如何用免费的软件工具和灵活的架构来开发一个功能强大的ERP系统。..
第22章,一匙污水,作者Bryan Cantrill,让读者和作者一起来体验一个令人毛骨悚然的bug以及一种违背直觉的巧妙的解决方案。
第23章,MapReduce分布式编程,作者Jeff Dean和Sanjay Ghemawat,描述了一个能够提供简单编程抽象的系统,这种抽象用来在Google中进行大规模分布式数据处理,并能够自动处理分布式计算中的许多难题,包括自动并行化,负载均衡以及故障处理等。
第24章,美丽的并发,作者Simon Peyton Jones,通过软件事务内存(Software Transactional Memory)来消除大多数并发程序中的困难,在本章中使用Haskell语言来说明。
第25章,句法抽象:syntax-case 展开器,作者R. Kent Dybvig,介绍了如何在Scheme中防止宏——这个许多语言和系统中的关键特性——产生错误的输出。
第26章,节省劳动的架构:一个面向对象的网络化软件框架,作者William R. Otte和Douglas C. Schmidt,应用了许多标准的面向对象设计技术,例如模式和框架等,来分发日志从而保持系统的灵活性和模块性。
第27章,以REST方式集成业务伙伴,作者Andrew Patzer,通过根据需求来设计一个B2B Web Service从而表现出设计者对程序开发人员的尊重。
第28章,漂亮的调试,作者Andreas Zeller,介绍了如何通过严谨的验证代码方法来减少追踪错误的时间。
第29章,把代码当作文章,作者Yukihiro Matsumoto,介绍了他在设计Ruby编程语言时所遵循的一些规则,并且这些规则通常均有助于开发出更优秀的软件。
第30章,当你与世界的联系只有一个按钮,作者Arun Mehta,介绍了在文字编辑系统中一种不可思议的界面设计,这种设计使患有高度运动神经残疾的用户,例如Stephen Hawking教授,也可以通过计算机进行交流。
第31章,Emacspeak:全功能音频桌面,作者T. V. Raman,介绍了如何在Emacs通过Lisp的advice功能来满足Emacs整体操作环境中的需求——产生丰富的语音输出,而同时无需修改软件系统的底层源代码。
第32章,变动的代码,作者Laura Wingerd和Christopher Seiwald,列出了一些对编程精确性有着强大影响的简单规则。
第33章,为“The Book”编写程序,作者Brian Hayes,介绍了在解决一个看似简单的计算几何学问题时所遭受的挫折,并给出了这个问题令人惊叹的解决方案。
代码示例的使用
本书可以帮助你完成日常工作。你可以在你的程序和文档中使用书中的代码。除非你需要重用大部分的代码,否则就不需要联系我们获得许可。例如,如果在编写程序时使用了书中的几段代码,那么不需要申请许可。而在销售或者分发O'Reilly书籍中的光盘示例代码时则需要获得许可。
引用本书内容或者示例代码来回答问题无需获得许可。而把书中的大量示例代码写入到你的文档中则需要获得许可。
我们欢迎,但并不要求,授权。授权通常包括标题、作者、出版商以及ISBN。例如:“Beautiful Code, edited by Andy Oram and Greg Wilson. Copyright 2007 O'Reilly Media, Inc., 978-0-596-51004-6.”
如果你认为你对代码示例的使用方式不符合上面给出的情况,请联系我们permissions@oreilly.com。...