Java应用架构设计:模块化模式与OSGi

Java应用架构设计:模块化模式与OSGi 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
[美] Kirk Knoernschild 著,张卫滨 译



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-12-29

类似图书 点击查看全场最低价

图书介绍

出版社: 机械工业出版社
ISBN:9787111437680
版次:1
商品编码:11324152
品牌:机工出版
包装:平装
丛书名: Java核心技术丛书
开本:16开
出版时间:2013-09-01
用纸:胶版纸
页数:284
正文语种:中文


相关图书





图书描述

内容简介

  《Java应用架构设计:模块化模式与OSGi》中文简体字版由Pearson Education(培生教育出版集团)授权机械工业出版社在中华人民共和国境内(不包括中国台湾地区和中国香港、澳门特别行政区)出版发行。未经出版者书面许可,不得以任何方式抄袭、复制或节录本书中的任何部分。
  本书封底贴有Pearson Education(培生教育出版集团)激光防伪标签,无标签者不得销售。
  《Java应用架构设计:模块化模式与OSGi》由全球专业专家撰写,软件开发大师Robert C. Martin与Peter Kriens作序推荐。书中揭示了模块化的重要性,如何实现模块化,以及如何使用OSGi实现模块化架构。
  《Java应用架构设计:模块化模式与OSGi》分为三部分。一部分(第1~7章)描述了需要模块化的理由。在这里,你将会看到模块化在设计软件中所扮演的重要角色,与此同时还会学习到为什么需要设计模块化的软件。第二部分(第8~12章)介绍了18个模式,这些模式会帮助你设计更为模块化的软件。第三部分(第13~17章)引入了OSGi,然后阐述了如何使用本书中的模式来设计软件系统并充分发挥模块化平台的优势,并使用代码样例论证了我们的观点。

作者简介

  Kirk Knoernschild,专业软件开发专家,系统架构师,软件开发项目经理,敏捷教练,软件开发咨询师。精通Java、OSGi、敏捷方法、系统架构等,拥有丰富的软件开发经验,担任过软件开发团队中的多个职位。同时他还是一位积极的开源社区贡献者,发表了大量经典文章,广受读者好评。曾受邀参与国际大型软件开发会议并发表演讲。著有《Java Design: Objects, UML, and Process》,合著有《No Fluff Just Stuff 2006 Anthology》。他曾培训和指导过成千上万的软件开发人员,讨论的主题涵盖Java/J2EE、建模、软件架构与设计、基于组件的开发、面向服务架构以及软件过程等。

  译者简介
  张卫滨,专业软件开发专家,精通Java语言,对Java开源框架有较深入的研究。目前主要从事企业级软件的开发,拥有丰富的软件开发经验。熟悉Spring、Hibernate以及Eclipse等开源产品,对Web前端技术有一定的研究,熟悉相关技术以及dojo、jQuery、ExtJS等框架。技术社区的积极实践者,曾参与技术新闻和文章的翻译工作,已出版译著有《Spring实战(第3版)》。

精彩书评

  “基础永远不会过时。在本书中,Kirk介绍了如何立足基础,以低成本有效地构建高质量的软件密集型系统。你会发现这本书写得很好、很及时并且全是务实的理念。”
  ——Grady Booch,IBM院士

  “与GoF的《设计模式》一样,Kirk的这本书应该成为每一位企业级开发人员和架构师的必备品,对Paremus的每一位工程师来说,这本书是必备读物。”
  ——Richard Nicholson,OSGi联盟主席、Paremus CEO

  “通过写这本书,Kirk为软件社区做出了重要的贡献:他分享了自己关于模块化的大量真知灼见,这些内容新手能理解、在计算机课堂上能讲授并且有经验的程序员也可参考。我希望本书能够有广泛的读者。”
  ——Glyn Normington,Eclipse Virgo项目的领导者

  “我们的行业需要开始思考模块化这个词——因而需要这本书!”
  ——Chris Chedgey,Structure 101创始人兼CEO

  “在本书中,Kirk为我们提供了在现实世界中进行模块化软件开发所需要的设计模式。尽管模块化确实有助于管理复杂性和创建更容易维护的软件,但是天下没有免费的午餐。如果你想获得模块化所提供的收益,那么购买本书吧。”
  ——Patrick Paulin,Modular Mind咨询师和培训师

  “Krik巧妙地记录了使用OSGi和Eclipse运行时技术的实践。为了更好地理解如何创建出色的软件,每一位高级Java开发人员都需要阅读本书。”
  ——Mike Milinkovich,Eclipse基金会执行总监

目录

本书赞誉
译者序


前言

第一部分 模块化的理由

第1章 模块定义
1.1 定义模块
1.1.1 可部署
1.1.2 可管理
1.1.3 可测试
1.1.4 原生可重用
1.1.5 可组合
1.1.6 无状态
1.2 软件模块的简洁定义
1.3 结论

第2章 模块化的两个方面
2.1 运行时模型
2.2 开发模型
2.2.1 编程模型
2.2.2 设计范式
2.3 模块化现状
2.4 结论

第3章 架构与模块化
3.1 定义架构
3.2 关于软件架构的一个故事
3.2.1 象牙塔
3.2.2 乌龟和塔
3.3 架构的目标
3.3.1 悖论
3.3.2 消除架构
3.4 模块化:被忽视的部分
3.5 回答我们的问题
3.6 结论
3.7 参考文献

第4章 征服复杂性
4.1 企业级复杂性
4.2 技术债
4.3 设计腐化
4.3.1 干扰可维护性
4.3.2 阻止可扩展性
4.3.3 抑制可重用性
4.3.4 限制可测试性
4.3.5 妨碍集成
4.3.6 阻碍理解
4.4 循环依赖
4.4.1 循环类型
4.4.2 悄然引入的循环
4.4.3 管理循环
4.4.4 循环总是不好的吗
4.5 结合点、模块和SOLID
4.6 管理复杂性
4.7 模块化的益处
4.8 结论
4.9 参考文献

第5章 实现重用
5.1 可用重用悖论
5.2 关于重用的免责声明
5.2.1 粒度
5.2.2 重量级
5.3 重用还是可用
5.4 模块化权衡
5.5 模块化设计
5.6 结论
5.7 参考文献

第6章 模块化与SOA
6.1 重新审视“自上而下”
6.2 粒度--架构师的强大对手
6.2.1 现实世界的一个例子
6.2.2 提升一个等级
6.2.3 另一个维度
6.2.4 全景图
6.2.5 服务样例
6.3 另一个视图
6.4 结论

第7章 参考实现
7.1 为什么不用OSGi
7.2 这个练习的背景:构建系统
7.3 初始版本
7.4 第一次重构
7.5 第二次重构
7.6 第三次重构
7.7 第四次重构
7.7.1 关于OSGi的好处
7.7.2 小结并准备下一次重构
7.8 第五次重构
7.9 第六次重构
7.10 第七次重构
7.11 事后剖析
7.11.1 关于模块测试
7.11.2 关于管理模块依赖
7.11.3 关于模块重用
7.11.4 关于构建
7.11.5 关于面向对象
7.12 结论
7.13 参考文献

第二部分 模 式

第8章 基本模式
8.1 管理关系
8.1.1 表述
8.1.2 描述
8.1.3 多种实现
8.1.4 影响
8.1.5 样例
8.1.6 小结
8.2 模块重用
8.2.1 表述
8.2.2 描述
8.2.3 多种实现
8.2.4 效果
8.2.5 样例
8.2.6 小结
8.3 模块内聚
8.3.1 表述
8.3.2 描述
8.3.3 多种实现
8.3.4 效果
8.3.5 样例
8.3.6 小结

第9章 依赖模式
9.1 非循环关系
9.1.1 表述
9.1.2 描述
9.1.3 多种实现
9.1.4 效果
9.1.5 样例
9.1.6 小结
9.2 等级化模块
9.2.1 表述
9.2.2 描述
9.2.3 多种实现
9.2.4 效果
9.2.5 样例
9.2.6 小结
9.3 物理分层
9.3.1 表述
9.3.2 描述
9.3.3 多种实现
9.3.4 效果
9.3.5 样例
9.3.6 小结
9.4 容器独立
9.4.1 表述
9.4.2 描述
9.4.3 多种实现
9.4.4 效果
9.4.5 样例
9.4.6 小结
9.5 独立部署
9.5.1 表述
9.5.2 描述
9.5.3 多种实现
9.5.4 效果
9.5.5 样例
9.5.6 小结
9.6 参考文献

第10章 可用性模式
10.1 发布接口
10.1.1 表述
10.1.2 描述
10.1.3 多种实现
10.1.4 效果
10.1.5 样例
10.1.6 小结
10.2 外部配置
10.2.1 表述
10.2.2 描述
10.2.3 多种实现
10.2.4 效果
10.2.5 样例
10.2.6 小结
10.3 默认实现
10.3.1 表述
10.3.2 描述
10.3.3 多种实现
10.3.4 效果
10.3.5 样例
10.3.6 小结
10.4 模块门面
10.4.1 表述
10.4.2 描述
10.4.3 多种实现
10.4.4 效果
10.4.5 样例
10.4.6 小结

第11章 扩展性模式
11.1 抽象化模块
11.1.1 表述
11.1.2 描述
11.1.3 多种实现
11.1.4 效果
11.1.5 样例
11.1.6 小结
11.2 实现工厂
11.2.1 表述
11.2.2 描述
11.2.3 多种实现
11.2.4 效果
11.2.5 样例
11.2.6 小结
11.3 分离抽象
11.3.1 表述
11.3.2 描述
11.3.3 多种实现
11.3.4 效果
11.3.5 样例
11.3.6 小结
11.4 参考文献

第12章 通用模式
12.1 就近异常
12.1.1 表述
12.1.2 描述
12.1.3 多种实现
12.1.4 效果
12.1.5 样例
12.1.6 小结
12.2 等级化构建
12.2.1 表述
12.2.2 描述
12.2.3 多种实现
12.2.4 效果
12.2.5 样例
12.2.6 小结
12.3 测试模块
12.3.1 表述
12.3.2 描述
12.3.3 多种实现
12.3.4 效果
12.3.5 样例
12.3.6 小结

第三部分 模块化架构模式与OSGi

第13章 OSGi简介
13.1 一点历史
13.2 OSGi所能带来的收益
13.2.1 模块化开发
13.2.2 管理依赖
13.2.3 模块平台
13.2.4 版本化的bundle
13.2.5 动态(重)部署
13.2.6 环境相关的控制
13.3 深入理解OSGi
13.4 OSGi bundle
13.4.1 bundle状态
13.4.2 OSGi ?Service
13.5 OSGi运行时管理
13.6 重新查看模块化的两个方面
13.7 OSGi与模式
13.7.1 管理依赖
13.7.2 动态性
13.7.3 Blueprint规范

第14章 贷款样例与OSGi
14.1 起步
14.2 清单文件
14.3 ?Service
14.3.1 Blueprint服务
14.3.2 贷款样例配置
14.3.3 OSGi ?Service声明
14.4 安装与执行
14.5 结论

第15章 OSGi与Scala
15.1 起步
15.2 Scala代码
15.3 Scala bean配置
15.4 Scala Service配置
15.5 构建Scala模块
15.6 安装与执行
15.7 结论

第16章 OSGi与Groovy
16.1 起步
16.2 Groovy代码
16.3 Groovy bean配置
16.4 Groovy ?Service配置
16.5 构建Groovy模块
16.6 安装与执行
16.7 结论

第17章 OSGi的未来
17.1 将OSGi作为推动者
17.2 颠覆性
17.3 生态系统的威力
17.3.1 生态系统与模块化的两个方面
17.3.2 基于组件的开发(CBD)不是已经成功了吗
17.4 生态系统
17.5 结论
附录A 类设计的SOLID原则

精彩书摘

  第一部分
  模块化的理由
  市面上从来不缺乏软件设计方面的图书。有很多的书会教导你面向对象设计的基本和高级理念。你还会发现几乎有同等数量的书来教导你面向服务架构的基本和高级概念。但是,这里缺失了一部分:模块化。将系统的最高层架构和内部代码结合起来的深刻讨论,你应该很少见到。
  在本书第一部分中,我们首先在模块这个词上达成共识。然后马上会讨论模块化的两个方面:运行时模型和开发模型。从这里开始,将会考察模块化怎样帮助我们实现“自上而下的架构”,这是通过将重要的高层架构组件与更具体的实现结合在一起做到的。复杂性是我们要征服的怪兽,而重用是我们想得到的灵丹妙药,模块化在这两个方面都会给我们提供帮助,我们会讨论它在这个过程中所扮演的重要角色。最后,在进入模块化模式之前,会通过一个样例练习介绍模块化的收益。在整个过程中,我们为使用模块化找到了充分的理由。
  第1章 模 块 定 义
  首先,需要回答一个简单的问题:
  在Java平台中,软件模块是什么?
  1.1 定义模块
  简单来说,模块就是“一个软件块”(chunk of software)。不过,这不能很简洁地区别模块与其他软件块,如类、包、组件、服务甚至应用。所以,我们需要关注这个定义:
  软件模块是可部署的、可管理的、原生可重用的、可组合的、无状态的软件单元,它为用户提供了简洁的接口。
  这是大而全的一个定义,第1章就贸然介绍它也很不好。但是,在一些解释后,你就能领会模块是什么了。图1.1展示了这个定义。接下来,将探讨模块的各个元素。
  图1.1 定义模块
  1.1.1 可部署
  模块是一个部署单元。不像其他软件实体,如类和包,模块是一个独立的部署单元,它能够与其他软件模块共处。从这个意义上讲,模块所表达的意义更多是物理层面上的,它比那些无形的软件实体如类或包的粒度更粗。可部署软件单元的例子包括EAR、WAR以及JAR文件。
  1.1.2 可管理
  模块是一个可管理的单元。在运行时模块系统中,模块可以进行安装、卸载以及更新。在开发过程中,将系统拆分成模块有助于简化很多其他的复杂活动。这包括提高构建的效率、允许开发人员独立地开发自主的模块并按照模块的边界规划开发工作。符合这部分定义的软件实体样例包括EAR、WAR以及JAR文件。
  1.1.3 可测试
  模块是一个可测试的单元。如同类可以使用测试驱动开发进行独立测试一样,模块也可以进行独立测试(参见12.3节)。符合这部分定义的软件实体样例包括类、包以及JAR文件。
  1.1.4 原生可重用
  模块是进程内(intraprocess)可重用的单元。尽管面向服务的架构(Service-Oriented Architecture,SOA)原则可以用来设计软件模块,但模块并不像应用或服务那样,它不是分布式计算技术。相反,以模块化组织部署单元的方式使得它们可以跨应用重用(关于重用,参见第5章),但是模块总是原生调用的。也就是说,模块暴露的操作是通过直接调用方法触发的。
  重用模块的方式与重用服务也是不同的。一般来讲,服务只须部署一次并被多个使用者调用。因为模块是在进程内使用的,所以模块会与那些想重用其功能的进程一起部署。符合这部分定义的软件实体样例包括类、包以及JAR文件。
  1.1.5 可组合
  模块是可组合的单元。模块可以由其他模块组成。一般这指的是粗粒度的模块是由细粒度的模块组成的。(关于粒度,参见5.2.1节。)
  1.1.6 无状态
  模块是无状态的。特定版本的模块只会存在一个实例。我们不会实例化软件模块,尽管我们需要实例化软件模块中的类,这些类会保持状态,但是模块本身不会这样做。符合这部分定义的软件实体样例包括WAR、EAR以及JAR文件。
  1.2 软件模块的简洁定义
  进一步学习之前,我们先给出软件模块更简洁的定义。基于每部分的定义,可以更清楚地说:
  Java平台中最适合的模块化单元就是JAR文件。
  1.3 结论
  在Java平台中,为了区分软件模块与其他“软件块”的概念,对模块的定义有一个简洁的共识很重要。在本书接下来的全部内容中,当提到模块时,指的就是Java平台中的JAR文件,它具备本章讨论的所有属性。
  ……

前言/序言


Java应用架构设计:模块化模式与OSGi 下载 mobi epub pdf txt 电子书 格式

Java应用架构设计:模块化模式与OSGi mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

Java应用架构设计:模块化模式与OSGi 下载 mobi pdf epub txt 电子书 格式 2024

Java应用架构设计:模块化模式与OSGi 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

他认为机器真正拥有智能的关键在于能够使用因果推论,而非通过相关关系推论。

评分

相对于这本书对于初学者来说,其实看起来还是有难度的,啊,毕竟总页数总页数也有600多页,嗯,看起来还是挺不容易的,核心技术的话对于有基础的学习者来说会比较简单一些,平时的时候我还是建议看head first java这本书比较好一点,这本书的话相对来说大学有时间看的话会比较不错

评分

专业必备正版脉络清晰帮助很大理论基础实例经典查阅方便很实用性价比高

评分

书刚到就是边角破裂,很难过,包装也就是纸张塑料纸,书的纸张也很烂,不会是盗版吧!

评分

一直很喜欢京东的物流,快!

评分

好,很好,非常好。反正就是还好啦

评分

讲解条理清晰,结构合理,把各种知识点都从表及里的讲了出来,对于有一定基础,但对一些原理比较模糊的同学非常适用,阅读后必定有很大提升。那么问题来了,书里内容都学会了,我应该找老板要多少工资合适?

评分

书内容不错,但缺少与spring的实例

评分

终于收到我需要的宝贝了,东西很好,价美物廉,谢谢掌柜的!说实在,这是我上网购物来让我最满意的一次购物。无论是掌柜的态度还是对物品,我都非常满意的。掌柜态度很专业热情,有问必答,回复也很快,我问了不少问题,他都不觉得烦,都会认真回答我,这点我向掌柜表示由衷的敬意,这样的好掌柜可不多。再说宝贝,正是我需要的,收到的时候包装完整,打开后让我惊喜的是,宝贝比我想象中的还要好!不得不得竖起大拇指。下次需要的时候我还会再来的,到时候麻烦掌柜给个优惠哦!

类似图书 点击查看全场最低价

Java应用架构设计:模块化模式与OSGi mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有