`
boriszhang78
  • 浏览: 20406 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

到底是SOA还是DDD

阅读更多

当下潮流是铺天盖地的SOA啊,似乎不讲SOA就是一种落伍,一地的SOA,就像当初一地的java,一地的鸡毛。想当年,我们从c转到java,改变了什么?更多的项目是改变了编程语言而已(仅指后端业务逻辑)。可是我们推崇java,推崇的是它的开放,它的OO,并不是语言本身(好吧,语言确实也解决了一些内存问题、跨平台问题,只能说是降低了准入的门槛)。现在的SOA也是这样,我理解SOA讲的更多的是系统的治理,并非编程模型上的事情(厂商讲SOA讲的神乎其神的,似乎只要SOA了,你的系统就灵光了,什么问题都解决了,那是他们要卖中间件天真),我看到的一个潮流时所谓的信息服务+服务/流程编排,实现所谓彻底的SOA,大家想想,这个和以前的面向过程编程有什么区别?如果一定要找出区别,区别就是用了中间件写程序,这部分逻辑号称不是硬编码,力度细到这种程度,和硬编码的区别又有多大呢。这种设计方式,将数据和逻辑完全分离了,再没有一个聚合业务逻辑的地方,有的同学会说在服务类中聚合,那服务类以什么准则设计呢?按照面对对象?

发了下牢骚,讲讲自己的想法吧,欢迎大家拍砖。就像上文说的,我理解SOA将的是系统治理,他体现的是系统的外观,要求系统暴露的能力是合理的、逻辑内聚的、没有自我矛盾的、没有安全漏洞的,基于这些允许的能力之后,你可以根据需要进行组合(集合一个或多个系统的能力,形成新的能力),什么都能组合,什么都能配置,我认为是一种拒绝设计的消极的思想,认为自己预料不到将来的变化(那我们需要经验,需要行业专家干吗呢?)。真正系统内部的逻辑,我们还是要按照OO来设计,或者从更高层面的DDD,将对象的逻辑聚合起来,只有这样,才能有一个维度来聚合逻辑,才能降低对于信息层的依赖,使得缓存机制更加灵活(原来面向过程的所谓SOA组合信息服务,根本没法控制信息的访问,因为缓存的机制和信息的修改逻辑有关,而这部分逻辑被分散到了SOA服务编排中)。

工作非常忙,就不细节的写下去了,大概就是这个意思了,不知道现在有多少的java/j2ee系统是面向对象设计的,可能很少吧,OO的设计对人是有要求的,我的经验是OO的系统设计,扩展方便,重构频率低,质量高,特别适合做产品,工程就算了(国内的工程一项是扑人头,卖人头的,简单便宜就好,管它后续质量如何)。

好久不来啦,现在还有人玩博客吗?NND,工作总是那么的忙,为啥。

0
6
分享到:
评论
1 楼 LD_21 2013-09-24  
求工作忙点啊~~ 

相关推荐

    SD大会精品讲座:SOA下的新一代企业前端

    IBM软件部Lotus资深工程师陈原将在本课程中基于IBM 最新的协作平台Notes 8,为您展示新一代的企业级前端,并给出SOA理念与Web 2.0技术在企业前端的应用实例。课程中通过具体的案例演示详尽地描述了Notes 8的应用和...

    结合领域驱动设计的SOA分布式软件架构

    最后两节细说应用层、系统总体架构是本文的重点,着重说明领域驱动设计与SOA之间的关系,对DDD有一定基础的朋友可以越过前面的几节,直接查看第七、八节。 SOA与DDD都是常用的系统架构,但两者之间所针对的核心是...

    ENTech-Store:用于简单店面的TDD DDD SOA架构

    ENTech商店用于简单店面的TDD DDD SOA架构特征SOA DDD 一切都是可单元测试的有界模块路线图建筑学通用请求验证安全性:API合作伙伴的OAUTH认证快取版本控制记录中网页挂钩图片/文件上传功能性StoreAdmin-\ Stores ...

    ddd-leaven-akka-v2:电子商务系统示例#微服务#Akka#React式DDD #CQRS

    ddd-leaven-akka-v2 遵循基于的方法,在和之上构建的示例电子商务应用程序。 概述 此示例电子商务系统具有一组独特的属性。 这是: React灵敏,有弹性,有弹性 :clapping_hands: , 整合了SOA,EDA和微服务架构 :...

    Implementing Domain Driven Design

    for example, Vaughn shows how DDD fits with the expanding array of architecture styles and persistence technologies for enterprise applications—including SOA and REST, NoSQL and data grids—that has...

    领域驱动设计与模式实战

    1.3.5 选择一种还是选择组合 1.4 持续集成 1.4.1 解决方案(或至少是正确方向上的一大步) 1.4.2 从我的组织汲取的教训 1.4.3 更多信息 1.5 不要忘记运行机制 1.5.1 有关何时需要运行机制的一个例子 1.5.2 运行机制...

    all-our-aggregates-are-wrong-demos:一个基于微服务的电子商务购物车样本-基于SOA原理。 我的“我们所有的汇总都是错误的”演讲的演示和示例

    一个基于微服务的电子商务购物车样本-基于SOA原理。 如何使样本在本地工作 获取此存储库的副本 在您的计算机上本地克隆或下载此仓库。 如果要下载回购的zip副本,请先解压缩该zip文件,然后再解压缩该文件。 为了...

    dddl:用于Node.js和TypeScript的域驱动设计:high_voltage:Light:high_voltage:框架

    DDD Light基于多种模式,模型和思想,包括: DDD , CQRS , EDA , SOA , ROP , DAL等。 但是DDD Light的主要思想是让您有能力单独使用这些概念: Уou是否需要Repository ? 拿@dddl/dal包。 您要包括CQRS吗...

    从OOAD到SOAD

    IBM提出的SOA概念中有三个主要的抽象级别:操作、服务和业务流程。操作:业务模型中的一个基本单元。比如说一个文档服务,那么打开、编辑、保存等就是这个服务里面的一系列操作。服务:具有相同目的的一些操作的归类...

    java餐饮管理系统源码加数据库-dda-book:领域驱动架构书

    微服务架构几乎成为互联网公司架构的标准形态,我们在讨论如何划分、设计微服务架构,甚至领域驱动设计(DDD)时,我们应该回归初心,当我们开始讨论怎么划分微服务时,我们应该能回答下面的问题: 需要解决的问题是...

    领域驱动设计:软件核心复杂性应对之道

    比如,SOA,如果应用的好,就可以提 供给我们一个非常有用的解析领域的方法。 同时,敏捷过程也有了足够的影响力,大多数项目现在多少都意识 到了迭代、和业务伙伴亲密协作、应用持续集成和在强沟通环境下 工作的...

Global site tag (gtag.js) - Google Analytics