新書推薦:
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
《
股票大作手回忆录
》
售價:NT$
254.0
《
秩序四千年:人类如何运用法律缔造文明
》
售價:NT$
704.0
《
民法典1000问
》
售價:NT$
454.0
《
国术健身 易筋经
》
售價:NT$
152.0
《
古罗马800年
》
售價:NT$
857.0
《
权力与相互依赖(第四版)(中译本修订版)
》
售價:NT$
658.0
|
編輯推薦: |
没有人喜欢复杂的东西,所以软件开发的简约之道一定会受读者青睐。本书作者Max
Kanat-Alexander创建的关于Linux的简约单页网站Unofficial Fedora
FAQ,月访问量超过10万人次。本书作者还是著名的开源Bugzilla Project的首席架构师、社区创始人和发布经理。
|
內容簡介: |
《简约之美:软件设计之道》将软件设计作为一门严谨的科学,阐述了开发出优雅简洁的代码所应该遵循的基本原则。作者从为什么以前软件设计没有像数学等学科一样成为一门科学开始入手,道出了软件以及优秀的软件设计的终极目标,并给出了具体的指导规则。
这是一本软件思想著作,适合任何背景、使用任何语言的程序员。
|
關於作者: |
Max
Kanat-Alexander:开源项目Bugzilla总架构师,Google软件工程师,作家,8岁开始修电脑,14岁开始编程。codesimplicity.com和fedorafaq.org网站维护者,现居北加州。
|
目錄:
|
第1章 引言
1.1 计算机出了什么问题?
1.2 程序究竟是什么?
第2章 缺失的科学
2.1 程序员也是设计师
2.2 软件设计的科学
2.3 为什么不存在软件设计科学
第3章 软件设计的推动力
第4章 未来
4.1 软件设计的方程式
4.1.1 价值
4.1.2 成本
4.1.3 维护
4.1.4 完整的方程式
4.1.5 化简方程式
4.1.6 你需要什么,不需要什么
4.2 设计的质量
4.3 不可预测的结果
第5章 变化
5.1 真实世界中程序的变化
5.2 软件设计的三大误区
5.2.1 编写不必要的代码
5.2.2 代码难以修改
5.2.3 过分追求通用
5.3 渐进式开发及设计
第6章 缺陷与设计
6.1 如果这不是问题……
6.2 避免重复
第7章 简洁
7.1 简洁与软件设计方程式
7.2 简洁是相对的
7.3 简洁到什么程度?
7.4 保持一致
7.5 可读性
7.5.1 命名
7.5.2 注释
7.6 简洁离不开设计
第8章 复杂性
8.1 复杂性与软件的用途
8.2 糟糕的技术
8.2.1 生存潜力
8.2.2 互通性
8.2.3 对品质的重视
8.2.4 其他原因
8.3 复杂性及错误的解决方案
8.4 复杂问题
8.5 应对复杂性
8.5.1 把某个部分变简单
8.5.2 不可解决的复杂性
8.6 推倒重来
第9章 测试
附录A 软件设计的规则
附录B 事实、规则、条例、定义
|
內容試閱:
|
好程序员和差程序员的区别在于理解能力。差劲的程序员不理解自己做的事情,优秀的程序员则相反。信不信由你,道理就是这么简单。
写这本书,是为了帮助各位程序员,以适用于各种编程语言、各种项目的广阔视角来理解软件开发。本书以普通人容易理解的方式,讲解了软件开发的科学规律。
如果你是程序员,这些规律能够说明,为什么有些开发方法有效,另一些无效。这些规则也会指引你在日常工作中做出开发决策,帮助你的团队进行高质量的交流,最终制订出合理的计划。
如果你不是程序员,但身在软件行业,仍然可以享受到本书的价值:
·它既是提供给初级程序员的优秀教材,又包含对高级程序员相当有 用的知识;
·它帮助你更深入地理解软件工程师某些行为的原因,以及软件为何 要以某种方式来开发;
·它帮助你理解优秀的软件工程师做决定的基本原理,让你与开发人 员更顺畅地沟通。
理想的状态是,软件行业中的每个人都可以阅读并理解这本书,即便他们没有多少编程经验,甚至母语不是英语也无所谓。如果你已经有相当的技术积累,把握书中的概念会更加容易,但是大部分内容不需要编程经验就能理解。
实际上,本书虽然讲的是软件开发,却没有多少代码。这怎么可能呢?答案是,其中的思想适用于各种软件项目、各种语言。要明白如何运用这些思想,并不需要懂得某一门具体的编程语言。相反,本书中包含了大量的实例和比喻,它们会让你更好地理解所表述的每条原理。
最重要的是,这本书是为了帮助你而写的,希望能助你在软件开发中保持头脑清醒、遵守秩序、写出简洁代码。我希望它读起来是一种享受,它有助于改善你的生活,你的软件。
排版约定
本书中格式约定如下。
黑体:表示新术语。
等宽字体:用于代码示例,在段落中使用时,表示与程序有关的部分,比如变量或者函数名。
此图标表示提示、建议或者普通的旁注。
致谢
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.comcatalog9781449313890
中文书:
http:www.oreilly.com.cnindex.php·func=bookisbn=9787115302380
对于本书的评论和技术性的问题,请发送电子邮件到:
bookquestions@oreilly.com
关于本书的更多信息、会议、资源中心和网络,请访问以下网站:
http:www.oreilly.com
http:www.oreilly.com.cn
|
|