领域驱动设计使用中的误区

本文探讨了微服务拆分过度可能导致的项目管理难题,并强调了DDD在单体架构中的适用性。作者建议根据团队规模和业务复杂性合理划分服务,提出在人员有限的情况下,可以先采用粗粒度模块划分,待业务发展后再逐步微服务化。此外,文章提到了人员配置问题,推荐使用"三个火枪手"原则,即三人一组负责一个服务。同时,作者提醒不应盲目应用DDD,而应关注业务核心,适时选择传统开发方式。
摘要由CSDN通过智能技术生成

1.微服务拆分过细

DDD的兴起的确是在微服务的流行后,才真正得到开发人员的重视。DDD的可以帮助我们更加合理的进行微服务边界划分。所以很多人的对他的认知都是DDD只适应于微服务。这个认知并不能算是合理的。单体架构也可以适用DDD的设计方法论。互联中我们有碰到很多微服务拆分过渡导致项目维护、管理难度加大,甚至失败的都有。我们一个团队可能就10个人,当我们面对一个小商城系统时,我们可能会噼里啪啦一下拆了20多个微服务出来,这个是很恐怖的。因为一旦微服务化很多问题都会接踵而来,事务、超时、熔断、限流、服务监控、排错等问题。我们有限人员可能一下都耗费在这与业务无关的上面去了,这个是很严重的问题,过渡服务化。我觉得根据人员配置情况进行模块划分会是一个很合理的方案。首先我们粗粒度的形式进行划分。各领域之间还是遵循DDD的设计方法论,该怎么拆分模块就怎么拆,虽然他们可能都在一个大的模块里,但是这个不影响。当那天我们项目成功了,用户上来了,我们再把这些模块拆分出去也是简单的。因为我们已经划分好限界上下文,划分好领域,代码之间也不存在耦合和强引用关系。
不知道大家有没发现这里面其实还隐藏了一个问题就是人员的问题。服务我们虽然划分好了,人员那到底应该怎么去配比呢?


例如:我们按照业务来划分,根据粒度大小,一般会存在以下两个情况。
1.分为商品、交易、用户3个服务;
2.分为商品、订单、支付、物流、买家、卖家6个服务。
但是我们只有10个人的情况下,我们该如何选择以上两种方案。
我们可以依据“三个火枪手”原则。三个人分配一个服务的原则进行人员配比。

具体什么是"三个火枪手原则"看下图

2.系统所有领域都使用DDD进行设计

有一部分人在完成DDD的学习后,当有新的业务需要开发的时候,把所有的模块都按照DDD的方式来进行设计。我觉得这个是不可取的,觉得DDD是把锤子,就把所有的问题都当做钉子来处理。我觉得我们应该要聚焦我们的业务核心,划分清楚哪些是核心域、通用域、支撑域,我们应该要着重在核心域和支持域上,当我们人力不足时支撑域、通用域都可以采用传统的开发方式也是可以的,毕竟收悉的人比较多实施成本较低,DDD对团队的设计和技术要求度都比较高,在没有足够的能力支持下,所带来的问题可能会比传统的开发方式的问题更多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
图像识别技术在病虫害检测的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统,可以是移动应用、网页服务或集成到智能农业设备。 7. **实时监测**:在实际应用,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测的应用将越来越广泛。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值