博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
到底是SOA还是DDD
阅读量:3029 次
发布时间:2019-05-15

本文共 992 字,大约阅读时间需要 3 分钟。

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

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

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

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

转载地址:http://xafic.baihongyu.com/

你可能感兴趣的文章
calendar模块
查看>>
Java正则表达式示例
查看>>
Sketch教程
查看>>
29.奖金(拓扑排序)
查看>>
HTML5 中的拖放
查看>>
javascript 学习总结第二天
查看>>
「OC」点语法和成员变量的作用域
查看>>
thinkphp知识点
查看>>
对各种lca算法的理解
查看>>
[delphi]保证程序只运行一个实例
查看>>
java学习之语句结构
查看>>
python打包exe文件-ImportError: No module named 'queue'
查看>>
Memcache限制端口和访问IP
查看>>
IP通信基础 3.18
查看>>
【转】:ZooKeeper真不是最终一致性的,而是顺序一致性
查看>>
JSON Web Token in ASP.NET Web API 2 using Owin
查看>>
python安装.whl文件失败
查看>>
servlet的转发与重定向
查看>>
除了ROS, 机器人定位导航还有其他方案吗?
查看>>
【转】Win7系统下安装Ubuntu12.04(EasyBCD硬盘安装)--不错
查看>>