- 浏览: 492445 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
turingbooks:
本书预计下个月左右出版。
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
superonion:
什么时候出版?
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
yoyo837:
第11章是不是可以跳过不看哟...
《JavaScript高级程序设计》(第2版)上市 -
zsjg13:
对于“第二,技术要好,有开发经验,熟练掌握书中所涉及的相关技术 ...
为什么翻译类计算机图书的质量这样差 -
lzxz1234:
[b]方案五[/b]
选出您心目中理想的封面——《Spring揭秘》
评论:
十年难得一遇的佳作,通过阅读本书, Java程序员必将取得长足的进步。
——亚马逊读者评论
这绝对是一本不容错过的好书,据我所知,市场上还不曾有哪本书在框架设计领域有如此深刻的阐述。
——亚马逊读者评论
这本书是作者对自己十多年NetBeans开发的一个总结。他将自己的心路历程如实记下,见证了NetBeans从IDE走向平台、从混乱的代码走向清晰的
模块化架构这一不平凡的历程。……本书与其他设计书籍的迥异之处:它告诉读者的是一种大道,而非小技。
——本书译者
内容简介:
敏捷API设计的时代才刚刚开始,这本书堪称是API设计的一部开风气之先的著作。
与枯燥乏味的理论性图书不同,本书从理论、实战及日常应用三个方面详细讲解了软件开发和框架设计的艺术,着眼于保证软件设计能够应对时刻变化的需求和技术。书中将理论与实践有机地结合在一起,对框架设计领域进行了深层次的阐释。
作为NetBeans框架的主架构师,作者在书中总结了自己多年的开发经验,与大家分享了API设计的技术细节、走过的弯路和教训。对于广大软件开发
人员来说,这些都是不可多得的宝贵财富。希望本书能成为一盏黑暗中燃起的明灯,为你照亮崎岖的开发之路,指明前进的方向。
作者简介:
Jaroslav Tulach NetBeans的创始人,也是NetBeans项目最初的架构师。有着丰富的项目开发经验,一直致力于如何提高开发人员的设计技巧,从而保证了NetBeans项目的成功。
目录
第一部分 理论与理由
第1章 软件开发的艺术 4
1.1 理性主义,经验主义以及无绪 4
1.2 软件的演变过程 6
1.3 大型软件 8
1.4 漂亮,真理和优雅 9
1.5 更好的无绪 12
第2章 设计API的动力之源 14
2.1 分布式开发 14
2.2 模块化应用程序 16
2.3 交流互通才是一切 20
2.4 经验主义编程方式 22
2.5 开发第一个版本通常比较容易 24
第3章 评价API好坏的标准 26
3.1 方法和字段签名 26
3.2 文件及其内容 27
3.3 环境变量和命令行选项 29
3.4 文本信息也是API 30
3.5 协议 32
3.6 行为 35
3.7 国际化支持和信息国际化 35
3.8 API的广泛定义 37
3.9 如何检查API的质量 37
3.9.1 可理解性 37
3.9.2 一致性 38
3.9.3 可见性 39
3.9.4 简单的任务应该有简单的方案 40
3.9.5 保护投资 40
第4章 不断变化的目标 42
4.1 第一个版本远非完美 42
4.2 向后兼容 43
4.2.1 源代码兼容 43
4.2.2 二进制兼容 44
4.2.3 功能兼容——阿米巴变形虫效应 50
4.3 面向用例的重要性 52
4.4 API设计评审 55
4.5 一个API的生命周期 56
4.6 逐步改善 60
第二部分 设计实战
第5章 只公开你要公开的内容 67
5.1 方法优于字段 68
5.2 工厂方法优于构造函数 70
5.3 让所有内容都不可更改 71
5.4 避免滥用setter方法 72
5.5 尽可能通过友元的方式来公开功能 73
5.6 赋予对象创建者更多权利 77
5.7 避免暴露深层次继承 82
第6章 面向接口而非实现进行编程 85
6.1 移除方法或者字段 87
6.2 移除或者添加一个类或者接口 88
6.3 向现有的继承体系中添加一个接口或者类 88
6.4 添加方法或者字段 88
6.5 Java中接口和类的区别 90
6.6 弱点背后的优点 91
6.7 添加方法的另一种方案 92
6.8 抽象类有没有用呢 94
6.9 要为增加参数做好准备 95
6.10 接口VS.类 97
第7章 模块化架构 98
7.1 模块化设计的类型 100
7.2 组件定位和交互 103
7.3 编写扩展点 116
7.4 循环依赖的必要性 117
7.5 满城尽是Lookup 121
7.6 Lookup的滥用 126
第8章 设计API时要区分其目标用户群 129
8.1 C和Java语言中如何定义API和SPI 129
8.2 API演进不同于SPI演进 131
8.3 java.io.Writer这个类从JDK 1.4到JDK 5的演进 131
8.4 合理分解API 143
第9章 牢记可测试性 147
9.1 API设计和测试 148
9.2 规范的光环正在褪去 151
9.3 好工具让API设计更简单 153
9.4 兼容性测试套件 155
第10章 与其他API协作 158
10.1 谨慎使用第三方API 158
10.2 只暴露抽象内容 162
10.3 强化API的一致性 164
10.4 代理和组合 168
10.5 避免API的误用 176
10.6 不要滥用JavaBeans那种监听器机制 180
第11章 API具体运行时的一些内容 184
11.1 不要冒险 186
11.2 可靠性与无绪 189
11.3 同步和死锁 191
11.3.1 描述线程模型 192
11.3.2 Java Monitors中的陷阱 193
11.3.3 触发死锁的条件 196
11.3.4 测试死锁 201
11.3.5 对条件竞争进行测试 204
11.3.6 分析随机故障 206
11.3.7 日志的高级用途 208
11.3.8 使用日志记录程序控制流程 210
11.4 循环调用的问题 215
11.5 内存管理 218
第12章 声明式编程 223
12.1 让对象不可变 225
12.2 不可变的行为 229
12.3 文档兼容性 230
第三部分 日常生活
第13章 极端的意见有害无益 236
13.1 API必须是漂亮的 237
13.2 API必须是正确的 237
13.3 API应该尽量简单 240
13.4 API必须是高性能的 242
13.5 API必须绝对兼容 242
13.6 API必须是对称的 245
第14章 API设计中的矛盾之处 247
14.1 API设计中的自相矛盾 248
14.2 背后隐藏的工作 251
14.3 不要害怕发布一个稳定的API 252
14.4 降低维护费用 255
第15章 改进API 258
15.1 让有问题的类库重新焕发活力 259
15.2 自觉地升级与无意识地被迫升级 265
15.3 可选的行为 268
15.4 相似API的桥接和共存 274
第16章 团队协作 286
16.1 在提交代码时进行代码评审 286
16.2 说服开发人员为他们的API提供文档 290
16.3 尽职尽责的监控者 292
16.4 接受API的补丁 297
第17章 利用竞赛游戏来提升API设计技巧 300
17.1 概述 300
17.2 第一天 301
17.2.1 非public类带来的问题 304
17.2.2 不可变性带来的问题 304
17.2.3 遗漏实现的问题 308
17.2.4 返回结果可能不正确的问题 309
17.2.5 第一天的解决方案 310
17.3 第二天 313
17.3.1 我想修正犯下的错误 316
17.3.2 第二天的解决方案 317
17.4 第三天:评判日 320
17.5 也来玩下这个游戏吧 327
第18章 可扩展Visitor模式的案例 328
18.1 抽象类 331
18.2 为改进做好准备 333
18.3 默认的遍历 334
18.4 清楚地定义每个版本 337
18.5 单向改进 339
18.6 使用接口时的数据结构 340
18.7 针对用户和开发商的Visitor模式 341
18.8 三重调度 343
18.9 Visitor模式的圆满结局 345
18.10 语法小技巧 346
第19章 消亡的过程 348
19.1 明确版本的重要性 349
19.2 模块依赖的重要性 349
19.3 被移除的部分需要永久保留吗 352
19.4 分解庞大的API 352
第20章 未来 356
20.1 原则性内容 357
20.2 无绪长存 358
20.3 API设计方法论 360
20.4 编程语言的演变 361
20.5 教育的作用 363
20.6 共享 365
参考书目 366
发表评论
-
《每个人都会死,但我总以为自己不会》让我直面死亡
2013-10-31 15:24 1146一般人看到的都是生活 ... -
介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
2013-10-10 11:36 1136以用户为中心的时代,应用的界面外观变得越来越重要。然而, ... -
精益化设计:把敏捷方法和Lean UX相结合
2013-09-12 13:51 861敏捷方法已经成为了主流。同时,Kindle和iPhone ... -
图灵九月书讯 ——金秋时节推荐给程序员们的书
2013-09-09 16:02 855[+]查看原图 9月,收获的季节,去掉了夏日的浮躁,该静下 ... -
诺基亚远去,《惊奇UCD》带你重塑用户体验
2013-08-28 09:57 682我所说的成功的用户 ... -
一场属于HTML5守望者的盛宴——记图灵参加HTML5峰会
2013-08-16 10:44 5952013年8月,北京正是一个火热的季节。一场火热的盛会,HT ... -
《你不可不知的50个建筑学知识》之哥特式建筑
2013-08-16 09:49 780[+]查看原图 你不可不知的50个建筑学知识 一听到哥特 ... -
数据分析师们的不可不读的信息图与数据可视化图书
2013-08-13 10:52 790信息图(Infographics)和 ... -
《你不可不知的50个基因秘密》之同性恋取向
2013-08-07 16:04 958[+]查看原图 你不可不知的50个基因秘密 近来,公开出 ... -
图灵八月书讯 ——技术图书嘉年华
2013-08-07 16:03 643[+]查看原图 8月,炎炎夏日@图灵教育给大家带来了很多重 ... -
详解学习C#的方法和步骤
2013-07-17 09:10 598如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一 ... -
精益,浓缩版 (来自《精益创业实战(第2版)》译者张玳 )
2013-02-28 08:16 846每个人都知道精益,都 ... -
精益创业实战
2013-02-25 09:10 1081要想用好一套系统的方法,你必须先透彻地理解这套方法的“道”和 ... -
蛇年谈程序员发展之路
2013-02-21 17:19 7791.(2-3年)基础素质 ... -
实践是检验真理的唯一标准——《精益创业实战》让你的成功飞起来
2013-02-04 13:23 575实践出真知 能运用一套方法不算成功,能拿出成绩来才算 ... -
从图灵原创谈起,带你走进国产技术书的时代
2013-01-05 13:56 838不管时空怎么转变,不论世界怎么改变,不论结缘时间长久 ... -
用编程工具实现数据可视化的几个选择
2012-11-29 11:55 828本文摘自《鲜活的数 ... -
你未必知道的CSS故事:揭开leading的面纱
2012-11-28 13:56 740几乎所有CSS书在讲到line-height属性的时候, ... -
你未必知道的CSS故事:揭开leading的面纱
2012-11-28 13:55 626几乎所有CSS书在讲到l ... -
【民间图灵奖】读《图灵的秘密》写读后感获图灵水杯
2012-11-22 08:56 821英国著名数学家、逻辑学家,阿兰•图灵(1912—1954 ...
相关推荐
《软件框架设计的艺术》这本书是IT行业内非常珍贵的资源,尤其对于那些致力于软件架构设计和框架构建的开发者来说,它是一本不容错过的经典。书中的内容深入浅出,不仅涵盖了软件框架的基本概念,还详细讲解了框架...
软件框架设计的艺术 捷克 jaroslav lulach著,王磊,朱兴译
《软件框架设计的艺术》这本书,英文原版名为"Practical API Design",是关于软件框架设计的宝贵资源,尤其适合那些寻求提升API设计能力和实践的IT专业人士。API(Application Programming Interface)是软件系统间...
### 软件框架设计的艺术 #### 概述 在当今快速发展的信息技术领域,软件框架的设计与应用成为了软件开发过程中的重要组成部分。一个优秀的软件框架不仅能够提高开发效率,还能确保软件的质量和可维护性。《软件...
软件框架设计的艺术_xmind模板.xmind
### 软件框架设计的艺术(Practical API Design) #### 一、概述 《软件框架设计的艺术》(Practical API Design)是一本专注于API设计的专业书籍,由Jaroslav Tulach编写,他是NetBeans平台的创始人及初始架构师...
《.NET应用框架设计》是一本深度探讨.NET平台上的应用框架构建艺术的教程。它旨在帮助开发者们理解和掌握如何高效地设计和实现自己的.NET框架,从而提升软件开发的效率、可维护性和可扩展性。 首先,我们要理解.NET...
《软件测试的艺术》一书不仅提供了软件测试的技术框架,更深层次地探讨了软件测试的哲学意义和实践价值。它提醒我们,软件测试不仅是确保软件质量的手段,更是提升软件产品竞争力、保障用户满意度和推动技术创新的...
《软件测试的艺术》是一本深入探讨软件测试领域的经典著作,旨在帮助读者理解测试的重要性,掌握测试技巧,并提升在实际工作中解决测试问题的能力。这本笔记集合了书中的关键概念、方法论以及实践经验,通过思维导图...
【全景探秘游戏设计艺术】是一本深入探讨游戏设计领域知识的专业书籍,旨在为读者揭示游戏开发背后的艺术与科学。作者Jesse Schell是游戏设计领域的权威专家,他的著作涵盖了从概念构思到实际开发的全过程,使读者...
软件框架设计的艺术.pdf则更专注于高级话题,软件框架设计是程序设计中的一个关键部分,它涉及到如何构建可复用、可扩展和易于维护的代码结构。这份PDF可能详细讲解了不同类型的框架(如MVC、微服务架构等),以及...
软件框架设计则关乎功能布局和用户体验。设计师需要深入理解软件的功能,与程序员和用户进行沟通,创建出直观、独特的框架。设计应注重简洁,避免无用的装饰,合理利用屏幕空间,并适应不同分辨率。主菜单、滚动条和...
《软件测试艺术》是软件测试领域...它不仅为读者提供了全面的学习框架,还为从事软件测试的专业人员提供了实用的策略和技术。对于想要深化理解和掌握软件测试艺术的学习者和从业者而言,本书无疑是一本难得的参考书籍。