求仁得仁
06
11
10
SpringBoot-核心流程模拟实现 SpringBoot-核心流程模拟实现
核心流程 模拟springboot注意事项(启动流程,自动装配,依赖控制): springboot选择一个webserver启动(只能有一个),run启动spring容器,将app作为配置类,随后启动webserver 根据依赖选择哪个b
2023-06-10
09
09
09
DDD-主要概念 DDD-主要概念
软件的核心复杂性 a. 技术主动理解业务(领域驱动) b. “刚刚好”解决问题(兼顾灵活性-分层抽象) 领域设计 a. 构建领域地图(边界) b. 使用四层架构 c. 领域的内敛(业务上的限界,而非技术上的隔离) d. 单体优先 ->
2023-06-09
09
DDD-通用型领域 DDD-通用型领域
可以构建领域仓库,实现领域复用:也可以用于优化中台战略,并且取缔大中台(中台拆分),因为一个中台组不可能同时满足所有其他项目组的需求 通过消息契约层,不光保证逻辑边界清晰,同时也保证数据边界也很清晰
2023-06-09
09
DDD-领域划分设计 DDD-领域划分设计
高内聚,低耦合:单一职责原则、依赖反转原则、开放封闭原则 构建领域地图(边界) a. 在DDD中推荐了事件风暴会议这样的具体形式,也强调了统一语言的理论模型。 b. 针对各个核心环节,优先构建单元测试案例,从而形成一些TDD测试驱动设计的
2023-06-09
09
DDD-MVC与DDD四层架构 DDD-MVC与DDD四层架构
一个需求非常确定的项目,不管多复杂,都没有必要非转型成DDD,短平快的设计方式更为快捷。 如果项目中有很多不确定性,以往的设计模式会遇到非常多的变数,这时DDD就是一个很好的选项了。 DDD 重构 抽象数据持久层 - 建立仓库(让业务逻辑
2023-06-09
09
DDD-软件的核心复杂性 DDD-软件的核心复杂性
很多软件设计上的不足,表面上看,似乎是技术架构的问题。因为如果架构师经验足够丰富,就能提前考虑到这些问题。如果开发团队技术足够过硬,就可以最快速度解决这些问题。但是,如果你将视野放开,放到到整个项目团队。你就会发现,一味的要求技术人员能够未
2023-06-09
08
FFmpeg-使用示例 FFmpeg-使用示例
# 将三个视频完整的拼接成一个视频 ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a]
2023-06-08
07
07
07
04
架构-订单系统设计 架构-订单系统设计
幂等 一件事情做几次结果都一样(防止用户提交两次订单) 唯一性索引:生成订单ID的操作提前到核对订单页面并在页面携带此ID,提交订单时直接使用此ID ABA问题(使用版本号): 如用户修改订单详情,物品颜色(更新订单信息的ABA问题):
2023-06-04
04
03
SpringCloud-分布式唯一ID-Leaf SpringCloud-分布式唯一ID-Leaf
为什么需要分布式唯一ID而不是UUID:因为数据库存储采用B树(有序),无序数据导致B树不断旋转 所有业务都需要分布式唯一ID吗?订单主表:全局唯一;订单详情表:1. 不需要全局唯一;2. 一次性获取所有ID 方案(推荐 Leaf-Snow
2023-06-03
6 / 28