速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

面向模式软件架构第 4、5 卷出版

  • 2007-08-24
  • 本文字数:1843 字

    阅读完需:约 6 分钟

面向模式软件架构(POSA)系列的第4 卷第5 卷已经出版了。卷4 是关于分布式计算的模式语言,而卷5 则“深入审视模式是什么,不是什么,以及怎样成功地使用它们”。

InfoQ 采访了最新卷的合著者之一 Kevlin Henney ,讨论了 POSA 系列的最新两本书。我们询问 Kevlin:两本书怎么会几乎同时出版?

最初的打算是只有一本书,其内容按照 POSA 5 的想法来组织。这个想法是,介绍书写和组织模式的概念、原则及技巧,我们通过一个大的例子来说明:用于分布式计算的模式语言,并附带一个模式故事(pattern story),在实践中说明它的应用。

正如你猜到的,这将会是一部非常厚的书!

POSA4 是关于分布式系统的——该书关注哪些类型的分布式系统呢?

……我们试图编写那些可在经典的 RPC 风格系统、当代的 Web 应用、基于消息的系统、经典的 N 层系统、移动计算等系统中找得到的范围广泛的架构概念。我们特别关注于那些已被实践证明的架构和架构知识……我们覆盖了应用和中间件架构,并对新系统开发及现有系统的后续开发都有兴趣。

本书的风格不同于前几卷。POSA4 描述了 114 个模式,而前 3 卷总共才包含了 44 个模式。前几卷对每个模式进行了深入地探讨,但是因为 POSA4 的大多数模式已在其它著作中发表,因此模式的细节不再作为重点,取而代之的是模式间的关系。

相比之下,POSA4 意图给架构师和开发者提供的一个更广的、宏观的模式视图,这些模式涉及到当代分布式计算架构中应用的模式。重点是模式是如何关联的,其中包括一个模式实现另一个的细节或为另一个提供替代选择,因此这意味着联系才是重点,从而减少了每个模式的细节。

然而,更少的细节并不必然意味着令每个模式的核心概念变得失真:

模式并不会因为本身的简洁而变得不精确——在某些情形下,它们的描述还更准确了–而是它们被概括并忽略了很多不必要的细节。

为了保持每个模式描述的简洁,本书使用草图和伪代码代替了 UML 图和完整的 C++ 或 Java 例程。对于想深入了解特定模式的读者,它提供了参考。

我们询问 Kevlin:他是否觉得有一些特殊的模式被遗忘或被误解了,而它们对于能出现在本书中将会感到非常高兴?

有些模式是非常的不引人注目,但是它们在现代设计方法中具有某种重要且非常有影响的地位。

首先一个,我们称之为显式接口(Explicit Interface),它本质上是一个分离单独接口的概念,将它完全从它的实现中解耦。这种方法适合声明类型系统并自从 RPC 时代就存在,而且我们发现它在现代静态类型语言中非常普遍,即‘接口(interface)’结构。然而,显式接口模式的关键点是设计敏感度,其背后使用了某种机制并聚焦于关注点的分离。不顾近些年来基于接口的编程的增多,许多程序员仍然使用纯接口(不论是以“接口”结构的形式,还是按照全抽象类的方式),以一种更多不必要的耦合方式,如果这也算面向接口编程的话。

第二个是关于上下文对象(Context Object)。和接口的想法类似,上下文对象的想法已经存在很长时间了(它现身于 Scheme 的 eval 过程中,并可在四人帮的解释器(Interpreter)模式中找到踪迹),但它最近才被记录并陈诉其有权作为模式的理由。POSA4 中的详细描写只是许多不同的详细说明(其中有我的一个,另一个则是 Doug 的!)中最新的一个。上下文对象可以使用执行细节(如配置、证书、查找服务等)参数化一个对象、组件或整个子系统,使之独立于系统的其它部分。这种分离提高了组件间的独立性,简化了测试,排除了一类问题,以及 / 或在多线程环境中可能遇到的执行瓶颈。它常常被视为使用 Singleton 之后带来的许多问题的解毒剂(并且,作为题外话,Singleton 是我们没有包含在本书中的一个模式:->)。

第 5 卷也是本系列的最后一卷书,是关于模式和模式语言。它显示了如何记录、组织和使用模式;如何建立模式间的关系,以及如何将这种关系转变成模式语言。

在 POSA5 之前,模式的概念性讨论分散在模式社区内外的许多著作和不同人的脑袋中。那些展示了模式集合的每一本书、论文或展示都使用不同观点介绍了模式概念,它们之间或多或少的有些不同。不同的来源侧重不同的方面的不同重点,例如模式发生的上下文、模式语言的使用、模式中的各种驱动力的角色,模式的社会或技术目标等等。

Kevlin 总结说:

POSA5 [……] 是写给那些有兴趣进一步探索模式概念的实践者的。换句话说,这本书的目标读者是,那些已经以某种形式接触过模式——不论是通过 GoF、POSA、Core J2EE,还是通过其他方式——并想更多了解模式的人。

查看英文原文: Pattern Oriented Software Architecture Volumes 4 and 5 released

2007-08-24 05:112906
用户头像

发布了 255 篇内容, 共 57.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

典型的大型互联网应用系统的技术方案和手段

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

记一次MySQL日期范围查询优化

李印

MySQL SQL优化

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

架构师作业第三周学习总结

Wee权

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

大前端

20年开源老司机手把手教你玩开源——openEuler入门指南

openEuler

Linux 开源 系统操作

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

java安全编码指南之:lock和同步的正确使用

程序那些事

java安全编码 java安全 java安全编码指南 java编码

产品分析

时间是一个人最好的证明

产品经理 产品设计

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

架构师训练营第三周作业

Wee权

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

古北水镇的夜

张晓楠

生活 摄影

坚持写技术博客一年能有多少收获!

小傅哥

Java 面试 架构师 编程经验 技术博客

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

对不起,学会这些 Linux 知识后,我有点飘

苹果看辽宁体育

Linux 后端 操作系统 计算机

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

面向模式软件架构第4、5卷出版_架构_Niclas Nilsson_InfoQ精选文章