### 领域服务业务编程实战全纪录
#### 现实中什么有哪些框架是领域服务
* 注册中心、配置中心(提供了信息注册,注册信息同步,注册信息读取)
* 调度平台(提供任务的管理及调度)
* 批处理框架(spring batch),数据读取、数据处理、数据写出
* 权限框架(spring security) ,权限上下文管理,认证、授权
* 工作流引擎(flowable) ,流程的管理
* 规则引擎(drools) 规则的管理
#### 现实世界中
* 计算机主板
* 汽车的发动机
#### 领域服务是什么
* 面向对象编程,符合开闭原则的编程方式
* 编程思想
* 内部封装复杂性,对外提供优雅易用的接口
#### 领域服务不是什么
* 不是六边形架构,洋葱架构,条条框框
* 不是值对象、不是什么战略设计,战术设计等虚无缥缈的概念
* 不是标准固化的,服务可大可小,汽车如果从交通工具上来说,汽车整体就是领域服务,但是要从汽车本身来讲,发动机又可以作为汽车的领域服务
* 不是什么方法都要通过Dispatch进行分发,什么都要发送领域事件,这种复杂的用其他方式封装变化就好。保存个用户和角色的关系,还要什么通过网关分发,那是不懂得变通。
#### 学好领域服务的前提有哪些
* 设计模式(精通常见设计模式)
* 优秀框架源码经常要阅读
* 学会抽象思维,发散思维,用现实世界去比对代码世界
* 业务专家,有一定的架构能力
* 不要循规蹈矩,没有编程规则
#### 什么情况下建议使用DDD
* 业务足够复杂,团队部门划分比较清楚,团队人员水平较高,不然踏实CRUD
* 技术驱动公司,有技术追求
* 个人极客
* 代码复用,懒人
* 不是先有表再开发的公司,面向数据库编程还是算了吧
* 不是产品驱动的公司(技术必须具有主导权限)
#### 如何评价好的DDD实现方式
* 写的代码与服务,复制过去能用到别的公司就OK!
* 服务之间接口定义优雅,放在一个项目中是不同的包,放到不同的项目里是不同的服务(这点非常重要)
#### 实现场景
假设有一个集团化的公司,技术人员足够多,100多人左右,有多种产品业务线,有电商业务,有租赁业务,有虚拟服务,有金融服务。公司有多个管理后台,发票管理系统,运营管理系统,审核系统,报表系统,客服系统等几十个后台管理系统。公司有丰富的运营和营销体系,支付方式多种多样(类似京东),开发票方式可以根据不同的支付方式设置不同的开票规则,公司对接多个短信平台,对接多个支付渠道,消息推送方式多种多样。后台管理系统有足够的数据权限层级,业务需求千变万化。
如果这样的系统由你一个人来开发,请问你如何设计这个系统,如何顶层架构,如何具体落地,如何用最快的速度开发。
用先建表的方式,然后凭你一个人去记住所有的表关联,这种明显不行,这时就能够用到领域设计的思想了。
#### 编程后期围绕什么来实现
从通用性上进行业务划分,主要分为以下几个中心
* 订单中心(通用订单服务)
* 支付中心(扣款)
* 消息中心(短信发送、钉钉消息、邮件发送)
* 三方中心(三方服务对接)
* 发票中心
* 营销中心
* 数据中心(审计日志保存、通用字典、点击记录、监控)
* 认证中心
* 文件中心
* 通用网关
* 用户中心
#### 技术选型
* spring cloud  2021.0.1
* spring-cloud-alibaba  2021.0.1.0
* querydsl  5.0
* spring-data  2021.1.4
* springdoc-openapi-ui  1.6.8
* spring-cloud-starter-sleuth
* spring-cloud-stream-binder-kafka
* javers(审计框架)
* flowable (流程引擎)
* spring-boot-starter-data-elasticsearch(elasticsearch 7.15.2)
* spring cloud gateway
* spring security(权限控制)
* flink(1.13.2),flinkcdc
* elasticjob (分布式任务调度)
* spring batch(批处理框架)
* drools (规则引擎)
#### 监控相关
* cerebro (es监控)
* logstash、kibana (日志收集)
* EFAK (kafka 监控)
* 阿里云效(自动化发布平台)
* skywalking(链路追踪)
#### 学习方式
* 业务驱动学习,用到的技术都会用知识点重点标记出来,然后去主动学习,带有目的性的学习是最高效的学习方式
#### 为什么要学习领域设计(或者就叫编程思维)
* 领域设计实际是需要大量的设计模式,在这个过程中会养成面向对象的编程思维,不是上来就先考虑表如何设计。然后怎么按照产品的需求去做增删改查。
* 在最初也写了,一个优秀的框架本身就是一个领域设计实现,分析及使用一个框架的时候如果站在设计者的角度去思考,那么使用一个框架的时候靠猜就能知道怎么去使用了。
没有合适的资源?快使用搜索试试~ 我知道了~
(源码)基于SpringBoot和SpringCloud的系统管理中心.zip
共831个文件
java:683个
xml:66个
md:33个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 189 浏览量
2024-11-15
10:09:23
上传
评论
收藏 1.94MB ZIP 举报
温馨提示
# 基于Spring Boot和Spring Cloud的系统管理中心 ## 项目简介 系统管理中心是一个基于Spring Boot和Spring Cloud框架构建的综合性管理系统。它涵盖了从用户管理、权限控制到订单处理、支付中心等多个核心业务模块。通过领域驱动设计(DDD)的思想,系统将复杂的业务逻辑分解为多个领域服务,每个服务专注于特定的业务功能,从而提高了系统的可维护性和扩展性。 ## 项目的主要特性和功能 ### 1. 领域服务 注册中心与配置中心提供信息注册、同步和读取功能,确保系统配置的一致性和实时性。 调度平台管理任务调度,支持定时任务和事件驱动的任务执行。 批处理框架集成Spring Batch,处理大规模数据读取、处理和写出。 权限框架使用Spring Security进行权限管理和认证授权。 工作流引擎集成Flowable,管理复杂业务流程。 规则引擎使用Drools进行规则管理,支持动态业务规则的定义和执行。
资源推荐
资源详情
资源评论
收起资源包目录
(源码)基于SpringBoot和SpringCloud的系统管理中心.zip (831个子文件)
EntityUpdater.class 7KB
EntityCreator.class 6KB
BaseEntityOperation.class 3KB
EntityOperations.class 1KB
Executor.class 590B
Loader.class 553B
UpdateHandler.class 383B
Create.class 379B
EntityOperation.class 141B
mvnw.cmd 7KB
spring.factories 125B
spring.factories 114B
spring.factories 104B
.gitignore 364B
.gitignore 266B
.gitignore 228B
.gitignore 83B
.gitignore 42B
.gitignore 39B
.gitignore 36B
tempate-category-requests.http 74B
maven-wrapper.jar 50KB
op-mybatis-spring-boot-starter-3.0.0-SNAPSHOT.jar 11KB
GenFeignProcessor.java 24KB
BaseCodeGenProcessor.java 18KB
ObjectTemplate.java 17KB
GenControllerProcessor.java 17KB
GBKUtil.java 16KB
CreatorCodeGenProcessor.java 16KB
SmsSendRecordCreateRequest.java 14KB
InvoiceFacadeServiceImpl.java 14KB
GenServiceImplProcessor.java 13KB
ElementMatcher.java 11KB
GenMapperProcessor.java 11KB
InvoiceTest.java 10KB
OrderBase.java 9KB
Invoice.java 9KB
AssetDomainServiceImpl.java 9KB
SecurityConfig.java 9KB
ReviseRecordController.java 9KB
OrderReceipt.java 9KB
GenServiceProcessor.java 8KB
OrderReceiptServiceImpl.java 8KB
EnterpriseEntity.java 7KB
OrderReceiptDomainServiceImpl.java 7KB
AssetEventProcessor.java 7KB
SecurityConfig.java 7KB
EnterpriseRouterController.java 7KB
TemplateCategoryController.java 7KB
TemplateItemController.java 7KB
ResourceController.java 7KB
ObjectTemplateController.java 7KB
EnterpriseEntityController.java 7KB
SelectDictController.java 7KB
TaxRateConfigController.java 7KB
InvoiceController.java 7KB
TemplateItem.java 7KB
UserAccountController.java 6KB
AssetLifecycleServiceImpl.java 6KB
AssetLifecycleController.java 6KB
VerifyRuleConfigController.java 6KB
AdminUserController.java 6KB
SmsSendRecordController.java 6KB
OrderLifecycleController.java 6KB
OrderReceiptController.java 6KB
OrderBaseController.java 6KB
PayItemConfigController.java 6KB
AssetLifecycle.java 6KB
InvoiceEventProcessor.java 6KB
EnterpriseEntityServiceImpl.java 6KB
ObjectSkuController.java 6KB
SkuAttributeController.java 6KB
UserBaseController.java 6KB
PlatformController.java 6KB
AssetInOutRecord.java 6KB
Asset.java 6KB
WarehouseController.java 6KB
EnterpriseEntityUpdateRequest.java 6KB
ObjectSku.java 6KB
AdminUserServiceImpl.java 6KB
ReviseRecord.java 6KB
ObjectTemplateServiceImpl.java 6KB
PipelineConfig.java 6KB
TemplateCategoryServiceImpl.java 6KB
TaxRateConfigServiceImpl.java 6KB
RoleController.java 6KB
OrderLifecycleServiceImpl.java 6KB
ReceiptItemController.java 5KB
SmsSendRecordServiceImpl.java 5KB
AdminPasswordLoginProcessFilter.java 5KB
ReceiptItemServiceImpl.java 5KB
AssetInOutRecordServiceImpl.java 5KB
Resource.java 5KB
TaxRateConfig.java 5KB
VerifyRuleConfigServiceImpl.java 5KB
SelectDictUpdateRequest.java 5KB
AbstractCalculator.java 5KB
CustomMapper.java 5KB
TemplateItemResponse.java 5KB
PayItemConfigServiceImpl.java 5KB
共 831 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
t0_54coder
- 粉丝: 2989
- 资源: 5639
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功