大白话翻译领域驱动设计的部分概念

DDD

  大多数人刚开始看这个东西时就跟听那些不说人话的互联网八股文是一模一样。就像某人介绍自己是互联网设备终端安全防护工程师,实际上是给手机贴膜。DDD吹得神乎其神但这个东西就是一层窗户纸,目前而言这个思想很难落地实现,即便是BAT大厂也只是尝试着将非常小的项目用这个来实现一下,本文将对比着MVC传统架构讲一下个人见解(可能也有理解有偏差的地方)。
在这里插入图片描述

白话文解释

  DDD全称 Domain-Driven Design,意思是领取驱动设计,是一种开发和设计的思想。是最近几年SOA架构下比较火热的一种思想。DDD分为两部分,一部分是战略设计,另一部分是战术设计。战略设计提出了域、子域、限界上下文等概念,主要用于指导我们如何拆分一个复杂的系统,比如系统刚建成时订单、搜索、用户等都是集成在一个工程里的,后期拆分成了订单系统、推荐系统、用户系统、物流系统等等,每个系统都是一个领域。战术设计提出了实体、值对象、聚合、工厂、仓储。领域事件等概念,主要用于指导我们对于拆分出来的单个域如何进行落地,以及落地过程中需要遵循的原则。这个有些像MVC,指导我们在实际写程序时怎么去拆分对应的包,在哪些包中定义对应的类等等。
  领域个人理解就是领域模型,上面提到把一个大的系统划分成若干个子系统,这些子系统就叫做一个个小的领域,而这一个个的小的系统就是一个个的领域模型,比如订单系统就是订单领域。
  设计个人理解就是写代码,就是真正去干活。所以领域驱动设计说白了就是怎么去划分领域,从而建立领取模型,按照这个领域模型的去写代码,能够使代码更好地表达设计含义,并且使模型与实际的系统相契合。划分领域后什么代码该写在什么领域里是严格按照领域模型来的,比如退货退款的代码不能写在推荐商品的领域里,而退款页面想推荐其他商品就要去调用推荐领域的接口,而不能自己写一套推荐的代码。这跟SOA的思想好像差不多。

战略设计

  战略设计属于宏观层面的内容,上面也提到过,就是把一个大的系统分成若干个子系统,怎么划分这就是所谓的战略设计。经过战略设计后,一个大的领域划分为了若干个子领域。比如购物系统划分出的其中一个子领域是订单领域,那订单领域从整体层面来看是整个购物系统子领域。划分领域的同时又定义了界限上下文,界限上下文划分了这个界限内的领域与其他界限内的领域之间的关系。就像下面这张图,登录和订单都用到手机号,但是登录里面的手机号是作为用户名来使用,而订单里的手机号是作为订单号的组成部分来使用,虽然是同一个手机号但是受制于这个边界的划分,所以用处不同,一般一个界限上下文里可能包含了多个领域,一个领域也有可能处于多个界限上下文中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
XGBoost(eXtreme Gradient Boosting)是一种非常流行的机器学习算法,它是一种梯度提升树模型。它的设计目标是提高其前身GBDT(Gradient Boosting Decision Tree)算法的性能和鲁棒性。 XGBoost使用的是一种特殊的决策树模型,称为CART(Classification and Regression Trees)。与传统的决策树不同,CART决策树在每个节点上进行分裂时,会使用一种称为泰勒展开的方法,来近似地找到最优分裂点。通过这种方法,XGBoost能够更精确地构建决策树模型,并提高预测的准确性。 XGBoost还通过引入正则化技术,如L1和L2正则化,来避免模型过拟合。正则化可以限制模型的复杂性,提高模型的泛化能力,并使得模型对噪音数据不敏感。 在训练过程中,XGBoost使用梯度提升算法,该算法通过迭代地训练多个决策树,并使用梯度下降法来优化模型的损失函数。在每一轮迭代中,XGBoost会根据之前模型的预测结果和真实标签之间的误差,调整每个样本的权重,并生成一个新的决策树。通过这种迭代优化的方式,XGBoost能够逐步提升模型的准确性。 此外,XGBoost还具备优化性能的功能。它使用一种称为并行化的技术,通过同时在多个处理器上训练多个决策树,来加快训练速度。另外,XGBoost还支持特征重要性评估,可以通过计算每个特征对模型的贡献度来帮助我们理解数据的特征重要性。 总之,XGBoost是一种非常强大的机器学习算法,它通过使用特殊的决策树模型、正则化技术、梯度提升算法和优化性能等方法,提高了模型的预测准确性和鲁棒性。它在很多数据竞赛和实际应用中都取得了出色的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值