DDD领域驱动设计
高内聚低耦合的集中决策设计
假设,我们正在构建另一个电子商务平台。其关键业务流程之一当然是处理订单。付款成功后,订单模块(域)必须异步调用仓库,准备购买的货物。然而,这些货物可能并不在那里。通常情况下,这不是什么大问题,因为我们.
概念、实体、数据三者之间区别?
幽默:没有逻辑约束的微服务
什么是团队拓扑? - martinfowler
任何大型软件工作,如大公司的软件产业,都需要大量人员,而只要有大量人员,就必须想办法把他们分成有效的团队。组建以业务能力为中心的团队有助于软件工作对客户的需求做出响应,但所需的各种技能往往让这些团队不.
洋葱片架构 - odrotbohm
Xapo银行去中心化的DDD架构实践分享 - martinfowler
Xapo银行使用领域驱动设计、团队拓扑和架构建议流程三种方式实现企业架构的去中心化:软件架构在构建软件系统实践中的作用一直备受争议。在大多数组织中,你会发现某种 "架构 "功能,通常打着 "企业架构 .
DDD实践中如何设计上下文BC之间的映射关系?
如何区分产品基础设施和技术基础设施 : 技术基础架构--不需要构建业务/产品背景,主要由开发人员使用。它不会立即影响用户体验,并且可以包含在一个特定的行会中。 产品基础设施——影响用户体验或有产品需求.
前端能整合后端的界限上下文BC吗?
在理解域、子域、限界上下文、模块等之间的差异时遇到过困难?问题在问题空间中,也就是我们需要解决的问题中:Domain领域(例如,酒店)子域(例如,“预订”、“住宿”)。领域包含知识以及我们想要解决的一.
如何通过80%抽象建模防止单体走向混乱
验证与业务规则的区别 - Mark Seemann
验证是区别于业务规则的定义。本文提出了软件开发中验证的定义:介绍了我目前是如何区分验证和业务规则的。我发现这种区分是有用的,尽管这也许是一个因果关系颠倒的例子。我的定义是这样的:验证是一个决定数据是否.
关于领域建模的最佳书籍
如果有人在我早期的职业生涯中告诉我,我将成为函数式编程的有力倡导者和函数式软件工程基础书籍的作者,我一定会觉得难以相信。函数式编程真的值得我为之奉献一生吗?然而,一旦我体验到函数式编程的纯粹之美,就再.
团队拓扑:模块化与划分团队相结合
Martin Fowler的同事Matthew Foster描述了团队拓扑和领域驱动设计如何帮助组织扩展技术架构和团队结构,从而显着提高开发速度。模块化架构能改善软件交付吗?是的!但要注意一些问题。这.
康威定律:团队结构与软件架构之间的相互作用
使用反需求方法寻找隐藏的业务逻辑和系统边界
领域驱动设计:协调软件架构和业务战略
本书首先介绍了DDD的基本概念,强调了准确理解和建模业务核心领域的必要性。然后,它解释说,组织可以通过将软件解决方案与现实世界的问题领域相一致来开发更有效和更有价值的软件系统。书中提出的一个关键观点是.
业务规则的两种类型 - Ronald
规则往往直接涉及到行为:不穿衬衫,不提供服务。这种规则被称为行为behavior规则。世界上这样的规则比比皆是;商业和社会都建立在这些规则之上。规则也可以间接地与行为相关,通过帮助形成行为所依据的理解.
使用事件风暴建模作为微服务设计的技巧 - Nick
什么是业务规则? - Ronald
规则是行为或行动的指南。它为判断或评价该行为或行动提供标准。每条规则都倾向于取消某种程度的自由。规则是你如何在一个群体或社区内从无序中创造秩序并确保一致的经验。每当你希望能够解释结果的 "原因 "时,.
使用状态机和 TypeScript 进行领域建模
希望通过这篇文章完成的是让人们以不同的方式看待 TypeScript,并展示我认为是主流语言中最好的类型系统之一。先上代码:type Line = { sku: string; quantity:.
在单体到微服务迁移中如何重构关系数据库?
黑石贝莱德如何实现基于领域驱动的资产管理?
Alan Moore (Aladdin 首席架构师、技术研究员和董事总经理)描述了贝莱德在资产管理中使用领域驱动设计DDD,以及我们如何使用它来定制、扩展和调整 Aladdin 以满足客户的需求。Al.
1580万美元的软件错误
64 个软件错误、复杂的业务规则和 1580 万美元的错误!如果我们的官僚主义使按时支付教师工资这样看似简单的事情难以完成,那么我们如何才能解决我们作为一个城市所面临的其他挑战呢?2022 年,旧金山.
DHH:如何从微服务中恢复?
我不否认在某些情况下微服务优先的架构很有意义,但我认为这种情况很少见。绝大多数系统都可以通过启动并保持在一个宏伟的单体中得到更好的服务。昨天引爆互联网的Prime Video 案例研究只是最新的例证。.
领域驱动设计:做正确的事
任何给定软件项目的成功都可以归结为一个相当简单的定义或规则:我们需要构建正确的东西,我们需要正确构建这个东西。这是一个非常抽象和简单的定义,即使不是原始的定义。然而,这是一个很难争论的问题。做正确的事.
使用事件建模实现软件协作和业务设计
讲故事使人类能够将知识传给下一代,并依赖于我们存储记忆的方式。我们可以通过举例说明,一个系统从开始到结束应该做什么,在时间轴上,而且没有分支。要做到这一点,我们需要用特定的时间线画一条线,代表状态在不.
不确定性并非人类缺陷,而是这个世界的特征 | Psyche Ideas
使用ChatGPT帮助DDD领域建模的案例
Rust适合领域概念吗? - Reddit
我使用Rust将近一年了,我写了大约2万行代码(CLI、WebAssembly应用、Web服务器......)。在我看来,编程范式的演变是朝着越来越大的设施去操作代表领域概念的结构。例如,一个Java.
Jay Little:低代码软件开发是一个谎言
设计一个该死的解决方案实际上是软件开发过程中最困难的部分。低代码工具通过暗示编写代码是最难的部分来欺骗客户。任何低代码工具都不能使你免于花时间正确设计你的定制软件,也不能使你免于在围绕半成品设计建立解.