• 从我职业生涯的一开始,我就一直在分析和绘制架构图。他们中的大多数人关注正在使用的技术以及它们如何相互通信。他们中很少有共同的商业目的。您有多少次需要在查看图表时与某人交谈以询问该服务的作用?那一个呢?在这篇文章中,我分享了一个显示元素业务目的的架构图。 icon
  • 尽管DDD的理念已经存在了10多年,但最近几天却获得了很多人的青睐。我认为这主要是因为人们开始注意到DDD所提出的思想与某类复杂性之间的关联,这类复杂性在涉及多个团队的大规模组织所构建的软件中反复出现。 尽管所有的现代架构原则和实践都为常见的问题提 icon
  • ChatGPT改变了游戏规则,而且,更广泛地说,这种语言模型可能是我们这一代最重要的开发工具。(承认这一点需要一些谦虚,因为我们正在为数据科学家开发一个开发工具。) 但是,无论是ChatGPT还是一些更大的后代模型,都不可能编写出我们的软件中最困难 icon
  • 无所不在的语言UL超越了形式语义和任何现有的协约,因为它能够创造一个新的现实,这个现实有时会与一个不存在的词或概念联系在一起,由每个人在同一种语境上下文BC中分享和达成共识,这是ChatGPT无法处理的先验问题。 < icon
  • 作为技术专家,我们花了很多时间学习最新的技术、开发实践和工具。这些对我们所做的工作非常重要,因此我们理所当然地给予它们大量的关注。有很多资源可以用来学习这些信息,无论是博客文章、会议、认证、视频等等。不过,了解技术只是战斗的一半。软件的建立是有原因的,是为了解决现实世界中的问题,为了做到这一 icon
  • 如果您的软件设计糟糕透顶,拥有出色的 Kubernetes 集群和最花俏的微服务基础架构将无济于事。 几年前,我在一家SaaS公司工作,该公司遭受了可能所有可能的软件开发问题。代码是如此的复杂,以至于增加一些简单的变化可能需要几个月的时间。所有的任 icon
  • 我正在阅读Vlad Khononov的《 icon
  • 第一性原理思维有助于解决复杂问题,因为它可以让您将问题分解为核心元素,然后从中系统地构建解决方案。与尝试使用先入为主的概念或根据您过去的经验对问题做出假设相比,这可能是一种更有效的方法。 它用于计算机科学、工程和物理学,但也可以从任何行业的第一性原 icon
  • 领域驱动设计(DDD)是一种软件开发方法,强调理解问题领域、业务需求和用户的重要性。DDD不是一种具体的技术或工艺,而是一套原则和最佳实践,通过使代码与业务需求相一致,帮助开发人员构建更好的软件。 DDD的主要原则之一是 "泛在语言 icon
  • 聚合Aggregate模式可能是领域驱动设计 (DDD) 中最重要的战术模式。本质上,它可以这样描述:聚合是可以被视为单个单元的域对象的集群。这意味着聚合中的对象密切相关,并且出于数据更改的目的被视为一个单元。聚合有一个根实体,它是聚合中的主要对象。根实体负 icon
  • 如果您的组织活跃于多个业务渠道或业务线,则映射有界/限界上下文可能会稍微复杂一些。 在为 Avanscoperta 编写软件时,我们经常将不同的事物归类为限界上下文,例如“培训”、“咨询”、“计划”与“财务”。过了一段时间,整个事情开始变得 icon
  • 建模是软件或系统开发的一个重要部分,然而在试图捕捉系统的行为时,并不常见到时间被使用。当我们这样做时,我们倾向于提取这个概念,并以计划任务的形式将其放在领域之外。 在这篇文章中,我将提倡把时间作为建模的起点,并建议偏离传统的调度器,而采用更加反应式 icon
  • 在您当前的应用程序中,您的业务逻辑有多复杂?它的范围可能从微不足道到极其复杂。人们不应该为一个微不足道的问题使用复杂的工具。我们大多数人,包括我自己,都习惯于编写所谓的 icon
  • 这是一个订购/销售书籍的商店。它是一个可定制的用于集成的开源应用程序。 创建一个允许请求的 API,最终客户可以订购和购买您的书。书店组件 店铺 客户 产品 类别 命令 订单项 icon
  • 几年来我一直在使用和制作Wardley Maps。它们是一个非常有用的工具,让我能够快速理解问题空间,并快速返回到我正在寻找的问题。对于几乎所有使用 W icon
  • “与领域专家的互动在实施软件中起着关键作用。你必须确保你理解你正在解决的问题。如果不先了解问题,就无法提供软件解决方案。”Vladik Khononov 是《学习领域驱动设计》一书的作者。在这一集中,我们深入讨论了领域驱动设计 (DDD),Vlad 首先分享了为什么理解业务领 icon