范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

写了这么多年后端,你知道事务脚本模式吗?

  什么是事务脚本模式
  事务脚本模式(Transaction Script)可以简称TS模式,这个模式本身的核心思想就是名称中的两个词,即:事务与脚本。事务可以理解为实际需要执行的一段原子业务;脚本则是指的一组原子业务的编排方式。而通常来说脚本的编排会直接映射到用户的一个行为动作上。
  事务脚本本身可以理解是用户动作的一次任务编排,而触发的方式一般直接与用户的行为建立联系。
  由于使用的是脚本的编排方式,所以事务的组织是面向过程的。
  而对于事务脚本模式,不同关联用户动作的脚本所编排的事务之间一般是相互隔离的,即事务之间不会影响。但不同的脚本之间可以编排相同的事务,即事务之间可以复用。 事务脚本模式的实现
  或许经过了MVC洗礼的开发们就会突然发现,我平时写的这个不就是食物脚本吗?其实是这样的,事务脚本模式的本质是事务与事务的编排。一次用户的动作对应的是一次业务请求。请求后便需要一层来进行事务的编排,也就是脚本层。脚本层是对于事务本身的编排,所以我们还需要一层事务层。事务针对的是数据库的多次操作,所以还有一层数据库层。
  于是我们有了:脚本层、事务层、数据库层的三层模型。而这与经典的三层模型是等价的,当然如果你的框架结构中有Handler层或者Manager层的话,脚本层或者事务层的对应关系是可以进行调整的。
  而对于事务脚本的实现模式上就可以发现,按照事务脚本模式设计的话,其中是完全不需要任何面向对象的设计模式。所以在进行事务脚本设计模式建模的时候,其中的任何逻辑都可以通过if、for、while等元素表达。 事务脚本的优点
  首先,事务脚本中的脚本编排是根据用户行为进行的,并且在进行设计建模的时候只使用流程控制元素进行。这使得事务脚本可以直接映射到业务流程上,对于业务的流程来说有极高的可解释性,而这对于持续优化用户体验来说是非常重要的。
  其次是实现简单。事务脚本模式由于是面向步骤编程,过程描述方式符合一般认知步骤。在进行建模设计的时候往往可以快速进行设计并完成组织。学习曲线十分低,并且在加入了单测等业务边界约束后进行开发的业务入门门槛极低。而同时由于时间简单,事务脚本模式的代码质量标准较好把控。
  最后是事务脚本模型不需要前置领域知识。由于仅针对业务流程编排事务,所以并不需要完整的领域知识。例如先按照查询和命令对用户动作进行一次划分,然后针对业务属性较为多的部分进行着重建模。特别的,尽管不满足领域的设计条件,但是当数据库是按照领域模型的模式进行设计的时候,我们仍然可以称其为领域模型,虽然它实际上是一个贫血模型。, 事务脚本的缺点
  对于这种模式的缺点,想必每一个进行过系统重构的人都会有感受。事务脚本的核心问题主要有两方面。
  一方面是事务脚本模型由于是通过步骤脚本对事务进行的编排,而其中并不是进行的领域相关的设计。所以当业务扩张脚本数量变多的时候,对应的事务本身也会爆炸式的增长(往往无法进行合理的利用)。
  同时,由于事务的步骤脚本本身具有上下文关系,所以他有面向过程编程相同的缺点:扩展性很低。当业务逐渐膨胀的时候,在对不同的事务进行业务调整的时候,由于事务之间未进行领域抽取与聚合,所以需要调整的内容可能会分布在内容的各个角落。 什么时候使用?
  什么时候可以使用事务脚本模式呢?我可以结合上面的优点和缺点给出以下两种情况。
  第一种是当不满足领域模型设计条件的时候。不论是由于技能原因,还是由于缺少领域专家,当进行系统设计时的背景无法满足领域建模的时候,就可以使用事务脚本模式设计。这种情况往往是进行新的业务尝试,业务的领域属性并不明确,或者是无法明确抽象。那这种情况下可以先进行事务脚本模式的编写。
  第二种是项目足够单一的时候。这里的单一为业务单一、职责单一、变动单一。可以理解成当用户动作只有少量的时候,那么此时对动作的抽象成本较高。同样的当项目职责单一,又不便于直接划归为某一子领域的时候,进行领域建模无意义。而当变动频率低程度小的时候,事务中方法的膨胀速度也就比较缓慢。
  总的来说,当项目起步、或者业务还在朦胧地试错期的时候,可以直接进行事务脚本模式的编写。
  但要注意的是,要时刻警惕事务爆炸,当业务已经明确或可以领域知识足够后,就要考虑将事务合并抽取领域模型了。 最后
  事务脚本模式长久不衰的原因正是因为它足够简单。同时这让它是最可靠的实现统一代码规范的模式,因为入门门槛足够低,即便不熟悉的人也可以快速上手。而事务脚本模式的基础上也可以对事务进行封装,例如使用策略模式、命令模式等结合使用对事务进行抽象。在实际开发的时候,也可以单独地将业务层抽离出来通过事务脚本的方式进行业务的调度编排,而在下游领域服务中再进行领域建模设计。
  最后,我们不应因为它足够简单而感到不好意思使用,而是应该在业务足够简单清晰的时候选择最合适的事务脚本模式。

正确理解量子力学的量子自旋原理,是解开宇宙奥秘的一把钥匙在理论物理中,量子力学最基础的理论,最核心内容就是量子自旋。不能正确理解量子自旋,便会成为心中的结,纠结自己,限制自己的思维,无法找到宇宙的真正运行逻辑。量子自旋是微观粒子量子自身iPhoneSE3进入最终测试阶段苹果手机就应该这么便宜苹果是否会在春节后推出新版iPhoneSE,又能否再次让我们耳目一新?据知情人士透露,iPhoneSE3已经进入最后的测试阶段。当前的iPhone13对你来说是否太大而且太贵?那么三月一日开始,微信支付宝等个人静态扫码支付收款功能将取消数字货币应用场景正在全国各地试点,数字货币是互联网时代金融安全的有力保障,全方位推行货币数字化,是有效改变金融服务方式之变局。第三方支付现在在线下得以广泛应用,大至官方财政收缴,小为何能带回月球土壤,火星样本却不行?科学家后果人类无法承受为何能带回月球土壤,火星土壤却不行?早在上世纪60年代,人类就已经实现载人登月,先后有12名宇航员踏上月球表面并安全返回地球,从技术层面来看,从月球带回月球样本已经不是什么难事。如微信语音通话警察能复原吗?想多了,没前提就不用想了微信语音通话其实和手机通话有很多相似之处,都是即时性的,简单讲就是对话的语音,说完就没了。所以,不在有条件前提下,是不可复原的。要想复原语音通话内容,需要有存储语音的介质,无论是微是福是祸?科学家发现气候变化导致了亚马逊雨林的生物进化变形有些人经常会说,地球上的生物不可能是进化来的,达尔文的演化论是错误的,人类更不可能是猴子变的。这些人都有一个特别重要的论据就是,假如生物在进化,为什么我看不到呢?今天刚好就有一个例月球车是如何运行的,80米的距离,玉兔二号为何要走两三个月?引言在上个世纪,全世界的科学领域都发生了翻天覆地的巨大突破,几千年数代先辈积累的丰富经验和总结出来的理论在这个世纪得到了由量到质的转变,拥有了较为突出的成果。如果要在20世纪科学领最低39元我用6款小米汽车配件升级你的驾驶体验小米汽车正在如火如荼的制造之中,各位有车人士可以用这些小米汽车配件先体验一下米家汽车生态。对于有车一族来说汽车是每天都会用到的交通工具,在车上也有一些细小的问题会带来困扰,通过一些为什么人类进化成杂食动物?250万年前天灾降临,彻底改变了人类关于人类的饮食方式有许多种说法,有些推崇素食主义的人,会说人类天生就是食草动物,同样地,也有许多人会认为人类天生就是食肉者。但从科学的角度来讲,人类是不折不扣最为典型的杂食动物,我春晚京东红包互动691亿次礼盒消费七成为年轻用户新京报贝壳财经讯作为今年春晚独家互动合作伙伴,用户只要打开京东APP摇一摇,即可参与分15亿红包和好物。春晚期间,全球华人参与京东APP红包累计互动量达691亿次。春晚期间,摇一摇打电话拜年和微信拜年哪个好?视关系而用电话或微信拜年(原创回答)对于拜年,是打电话,还是用微信,因人而已,没有统一的模式。关于打电话。打电话拜年取代了书信拜年,一直沿用了很多年,不失是拜年的好形式。打电话拜年
希望越来越小,芯片危机或将解除,华为这次能松口气了从苹果A15芯片以及目前高通898芯片所曝光的消息来看,目前芯片行业的发展进度正在逐渐减慢,摩尔定律逐渐逼近工艺极限也是事实。再加上全球缺芯情况的出现,汽车手机电脑游戏等行业都受到VivoNEX5将提前归来,骁龙8Gn110倍光学变焦,这才是影像新旗舰Vivo手机在高端手机市场一直很低调,对比三星华为等手机厂商,Vivo能够拿的出手的高端手机并不多,目前也只有VivoX系列机型活跃在市场当中。相比三星GalaxyS系列Note系苹果加码无线充电技术研发,未来5年行业规模有望超百亿预计到2022年年底,智能手机无线渗透率将达60。今日重要性据行业媒体IT之家11月29日消息,尽管几年前的AirPower实验失败,但苹果仍在为其产品开发多设备充电器,希望以此超京东云融合前沿科技助力高质量发展来源人民网人民日报当前,以大数据人工智能为代表的新一代信息技术快速发展,数字经济成为引领全球经济社会变革推动我国高质量发展的重要引擎。作为京东集团面向企业政府等机构提供技术服务的品比DNA单链还迷你!IBM发布全球首颗2nm芯片,性能较7nm提升了45摩尔定律是英特尔创始人之一戈登摩尔的经验之谈,其核认为集成电路上可以容纳的晶体管数目在大约每经过18个月便会增加一倍。换言之,处理器的性能每隔两年就会翻一倍。但随着工艺制程与集成度华为地图亚米级定位是基于什么?最近几天看到华为地图发布高精度亚米级1元定位服务,没有收费1元,是基于我们手机的内置定位芯片还是基于华为高精度地图,我们都知道手机芯片定位误差在25米,高德华为是怎么实现车道导航的小米MIUI13内部测试版曝光,基于安卓11和安卓12开发IT之家11月29日消息,小米目前已向众多机型推送了MIUI12。5增强版,此前小米集团合伙人,中国区国际部总裁,Redmi品牌总经理卢伟冰暗示MIUI13很快到来。近日,爆料者x中科创星米磊未来的核心在大航天在科研创新成为社会发展核心推动力的今天,如何成就民族企业,抢占未来科技核心力量?在沙丘黄埔8期课堂上,米磊导师分享了他基于科技发展底层规律的投资逻辑。未来主旋律是硬科技硬科技(Ke终是为傲慢付出代价,5G专利收费赔款600亿,老美这次输得很彻底老美最终还是要为自己的傲慢行为付出代价,最近有消息爆料称,华为将要得到美企超过600亿美元的赔偿,原因在于美企对于华为的专利进行侵权。华为这一次决定不再仁慈,坚决要给老美一个教训,小米最新财报发布,AIOT将取代造车?11月23日,小米终于发布了第三季度财报,其中2021年前三季度总营收781亿元,调整后净利润为52亿元,同比都保持着稳健的增长态势,着实让全球投资者松了一口气。而除了出货量占据全不仅在订单上落后了,华为5G在速率上也输了,诺基亚创造新的记录今天跟大家聊一聊不仅在订单上落后了,华为5G在速率上也输了,诺基亚创造新的记录。在很早之前我们就听过一则消息,诺基亚在全球的5G订单数上已经达到了101份,成功实现了对于华为的反超