好程序员和差程序员的区别在于理解能力。差劲的程序员不理解自己做的事情,优秀的程序员则相反。信不信由你,道理就是这么简单。 写这本书,是为了帮助各位程序员,以适用于各种编程语言、各种项目的广阔视角来理解软件开发。本书以普通人容易理解的方式,讲解了软件开发的科学规律。 如果你是程序员,这些规律能够说明,为什么有些开发方法有效,另一些无效。这些规则也会指引你在日常工作中做出开发决策,帮助你的团队进行高质量的交流,最终制订出合理的计划。 如果你不是程序员,但身在软件行业,仍然可以享受到本书的价值: •它既是提供给初级程序员的优秀教材,又包含对高级程序员相当有 用的知识; •它帮助你更深入地理解软件工程师某些行为的原因,以及软件为何 要以某种方式来开发; •它帮助你理解优秀的软件工程师做决定的基本原理,让你与开发人 员更顺畅地沟通。 理想的状态是,软件行业中的每个人都可以阅读并理解这本书,即便他们没有多少编程经验,甚至母语不是英语也无所谓。如果你已经有相当的技术积累,把握书中的概念会更加容易,但是大部分内容不需要编程经验就能理解。 实际上,本书虽然讲的是软件开发,却没有多少代码。这怎么可能呢?答案是,其中的思想适用于各种软件项目、各种语言。要明白如何运用这些思想,并不需要懂得某一门具体的编程语言。相反,本书中包含了大量的实例和比喻,它们会让你更好地理解所表述的每条原理。 最重要的是,这本书是为了帮助你而写的,希望能助你在软件开发中保持头脑清醒、遵守秩序、写出简洁代码。我希望它读起来是一种享受,它有助于改善你的生活,你的软件。 排版约定 本书中格式约定如下。 黑体:表示新术语。 等宽字体:用于代码示例,在段落中使用时,表示与程序有关的部分,比如变量或者函数名。 此图标表示提示、建议或者普通的旁注。 致谢 Andy Oram和 Jolie Kanat两位编辑为本书作了巨大的贡献。 Andy的建议和意见深入且充满智慧; Jolie的坚持和支持促成了本书的最后出版,她为早期手稿所做的大量编辑工作尤其值得感谢。 Rachel Head是本书的文字编辑,做整理和校对的工作,她的才华无与伦比。 还要感谢的是与我在开源社区中一同工作或讨论过问题的程序员——尤其是在 Bugzilla项目中共事的几位开发人员,有了你们的帮助,我才有清楚的思维,讲解这些年来真实存在的,活生生的软件系统。 这些年来,我的 blog上收到的评论和反馈,帮我确定了本书的形式和内容。在这里要感谢参与其中的所有人,即使你们仅仅给我鼓励,或者是告诉我你读过我的文章。 从个人来说,我尤其要感谢 Jevon Milan、Cathy Weaver,以及与他们工作过的所有人。确切地说,有了他们,我才能写出这本书。最后,要向我的朋友 Ron致敬,没有他,这本书根本不可能出现。 使用示例代码 让我们助你一臂之力。也许你要在自己的程序或文档中用到本书中的代码。除非大段大段地使用,否则不必与我们联系取得授权。例如,无需请求许可,就可以用本书中的几段代码写成一个程序。但是销售或者发布 O’Reilly图书中代码的光盘则必须事先获得授权。引用书中的代码来回答问题也无需授权。将大段的示例代码整合到你自己的产品文档中则必须经过许可。 我们非常希望你能标明出处,但并不强求。出处一般含有书名、作者、出版商和 ISBN,例如“ Code Simplicity:The Science of Software Development by Max Kanat-Alexander(O’Reilly,2012)版权所有, 978-1-4493-1389-0”。 如果有关于使用代码的未尽事宜,可以随时与我们取得联系, permissions@oreilly.com。 Safari®在线图书 Safari在线图书是应需而变的数字图书馆。它能够让你非常轻松地搜索 7500多种技术性和创新性参考书以及视频,以便快速 地找到需要的答案。 订阅后就可以访问在线图书馆内的所有页面和视频。可以在手机或其他移动设备上阅读,还能在新书上市之前抢先阅读,也能够看到还在创作中的书稿并向作者反馈意见。复制粘贴代码示例、放入收藏夹、下载部分章节、标记关键点、做笔记甚至打印页面等有用的功能可以节省大量时间。这本书(英文版)也在其中。欲访问本书英文版的电子版,或者由 O’Reilly或其他出版社出版的相关图书,请到 http://my.safaribooksonline. com免费注册。 我们的联系方式 请把对本书的评论和问题发给出版社。 美国: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中国:北京市西城区西直门南大街 2号成铭大厦 C座 807室( 100035)奥莱利技术咨询(北京)有限公司 O’Reilly的每一本书都有专属网页,你可以在那儿找到关于本书的相关信息,包括勘误表、示例代码以及其他信息。本书的网站地址是: http://www.oreilly.com/catalog/9781449313890 中文书: http://www.oreilly.com.cn/index.php?func=book&isbn=9787115302380 对于本书的评论和技术性的问题,请发送电子邮件到: bookquestions@oreilly.com 关于本书的更多信息、会议、资源中心和网络,请访问以下网站: http://www.oreilly.com http://www.oreilly.com.cn