前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。 然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开 […]
前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。 然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开 […]
作者:欧创新、邓頔、文艺 你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案。 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴领域驱动设计思想,指导微服务项目团队进行设计和开发(理论篇详见《当中台遇上 DDD,我们该如何设计微服务?》)。本文包括三部分内容:第一部分讲述领域驱 […]
前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。 确实,spring事务用起来贼爽,就用一个简单的注解:@Transactional,就能轻松搞定事务。我猜大部分小伙伴也是这样 […]
如下5个字段,是我们在业务中比较常用的,也是比较必须的。 id 自增主键 createUser 创建者:由谁创建,系统或者某账号等 updateUser 修改者:由谁修改,系统或者某账号等 createTm 创建时间:可由数据库自动生成,insert数据时取当前系统时间 updateTm 修改时间:新建时为null,也有人用创建时间作为初始值,一般由修改者进行set。 CR […]
前言 旧项目MySQL Java升级驱动,本来一切都好好的,但是升级到8.x的驱动后,发现入库的时间比实际时间相差13个小时,这就很奇怪了,如果相差8小时,那么还可以说是时区不对,从驱动源码分析看看 1. demo pom依赖,构造一个真实案例,这里的8.0.22版本😋 <dependencies> <dependency> <groupId& […]
一、SPI 是什么 SPI 的全称是Service Provider Interface,即提供服务接口;是一种服务发现机制,SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 如下图: 系统设计的各个抽象,往往有很多不同 […]
10月9日凌晨1点26分,事故发生后不少客户at我,有批评、有建议、有鼓励,由于9号早晨还要去出差,会有几个小时在飞机上,就没来得及一一回复。不论如何都要谢谢你们,因为你们,我才觉得富途所作的事情格外有意义,我们可以去努力和改善的地方还有非常多。 首先我要向大家郑重及诚恳地道歉:真的很对不起,让你们失望了,我们虚心接受所有的批评和建议,并会立即着手相应的改进。 虽然几次影响 […]
介绍 什么是状态机 有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automation,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。 -- 维基百科 使用场景 针对需要通过状态扭转达到流程控制的场景。例如:收货,上架这两个动作 […]
最近在一个项目中,因为涉及很多状态的流转,我们选择使用状态机引擎来表达状态流转。因为状态机DSL(Domain Specific Languages)带来的表达能力,相比较于if-else的代码,要更优雅更容易理解。另一方面,状态机很简单,不像流程引擎那么华而不实。 一开始我们选用了一个开源的状态机引擎,但我觉得不好用,就自己写了一个能满足我们要求的简洁版状态机,这样比较K […]
对于缓存你应该知道的都在这张图里: The Picture From ByteByteGo.
学习批量思想、异步思想和空间换时间思想,优化数据库操作、降低接口耗时,提高接口性能。了解更多实用技巧,提升开发效率。
作者:cheney ChatGPT4 相比 ChatGPT3.5 在逻辑推理能力上有了很大的进步,他的代码生成能力更是让我非常震撼,因此我尝试在工作中某些不涉密的基础工作应用 ChatGPT4 来提升研发效率,简单尝试之后发现确实有不少场景是有效的。本文将向大家展示如何充分利用 ChatGPT-4 这一强大的 AI 工具,并结合结对编程方法,从而在研发过程中实现显著的效率提 […]
学习如何使用Lombok插件,让你的Java代码变得更加简洁易读。探索其注解优势,自动生成代码,提高开发效率,减少开发时间!
在一个DDD架构设计中,领域层的设计合理性会直接影响整个架构的代码结构以及应用层、基础设施层的设计。但是领域层设计又是有挑战的任务,特别是在一个业务逻辑相对复杂应用中,每一个业务规则是应该放在Entity、ValueObject 还是 DomainService是值得用心思考的,既要避免未来的扩展性差,又要确保不会过度设计导致复杂性。今天我用一个相对轻松易懂的领域做一个案例 […]
阿里妹导读 本文主要针对Spring为什么要支持@Resource和@Autowired两个类似的注解做出了解答。 提到Spring依赖注入,大家最先想到应该是@Resource和@Autowired,很多文章只是讲解了功能上的区别,对于Spring为什么要支持两个这么类似的注解却未提到,属于知其然而不知其所以然。不知大家在使用这两个注解的时候有没有想过,@Resource […]
618 (1) Agent (2) chatglm (1) checkout (1) commit (2) Disruptor (1) Excel (1) FGC (3) G1 (1) G1GC (2) git (2) GLM (1) LangChain (1) LLM (3) OpenAI (2) ParNew (3) pull (1) push (1) solid (1) UUID (1) Vim (1) ygc (1) 业务编号 (1) 事务隔离级别 (1) 依赖注入原则 (1) 分布式ID (1) 分支 (1) 单一职责原则 (1) 大模型 (2) 大语言模型 (1) 开闭原则 (1) 微博 (1) 微服务 (1) 接口隔离原则 (1) 数据字典 (1) 数据导入 (1) 数据导出 (1) 方案设计 (7) 权限 (1) 架构师 (1) 死锁 (1) 测试策略 (1) 滴滴 (1) 版本控制 (2) 订单号 (1) 认证 (1) 配置 (1) 里氏替换原则 (1) 鉴权 (1) 降级 (1)
COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang