BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

IODA架构简介

| 作者 Jan Stenberg 关注 10 他的粉丝 ,译者 谢丽 关注 5 他的粉丝 发布于 2015年5月29日. 估计阅读时间: 2 分钟 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!

亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知

Ralf Westphal看来,像分层架构六角架构整洁架构等所有这些常见的架构模式都做了同样的两件事:定义职责域和功能依赖排序。在他看来,这些模式给出的应用程序架构思路都非常简略,从本质上讲,它们将软件描述为一种功能或行为依赖的深层次结构。

在寻找另外一种架构描述方法的过程中,Westphal定义了一种名为IODA的架构风格。该架构模式基于三种与“行为职责(behavioural responsibility)”毫不相干的“形式职责(formal responsibility)”:
IODA Architecture“操作(Operation)”是操作某些数据的一段逻辑或一种行为,但它不知道其它任何操作,也不能调用它们。
“数据(Data)”是结构化数据,其中可能包含用于确保一致性的数据操作服务,但不包含任何其它形式的逻辑。
“集成(Integration)”调用操作或其它集成,将它们整合到一起创建行为,但它们不包含逻辑。
API和框架是第四部分,操作通过它们与环境进行交互。

在这种模型中,操作仅仅依赖于数据,而集成依赖于操作和其它集成。通过这种方式,Westphal声称已经移除了所有的功能依赖,只剩下他称之为形式依赖或空依赖的东西。他还指出,由于操作不能调用其它操作,将逻辑抽取到新操作方法中意味着需要创建集成来整合它们,这样可以迫使应用程序中的方法都是只有10到20行代码的小方法。

关于IODA架构,Westphal提到了一个重要的方面,就是它可以出现在若干层面上。在某个抽象层次上的操作,在放大后,本身也可以是一个完整的IODA结构。

Westphal已经创建了一个使用IODA架构设计和实现一个小型应用程序的示例,其中包括对基本设计思路的描述。代码下载请点击这里

查看英文原文:Introducing IODA Architecture

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT