• 一个软件功能或特征(feature)由一个或多个逻辑上相关的系统能力组成,这些能力可以为用户提供价值,并由一组功能需求来描述的。 许多业务分析师使用这些功能特征作为描述项目范围的一种方式。然而,一个简单的列表并不容易显示各种功能的规模和复杂性。快速
  • 领域驱动设计DDD有两个难题:给事物命名,以及在另一个有界上下文中再次命名它们 icon
  • 没有上下文的数据就是噪音! 上下文为王 icon
  • VISA、万事达卡和美国运通卡充当清算和结算资金的卡网络。收单银行和发卡银行可以——而且通常——不同。 如果银行要在没有中介的情况下逐一结算交易,则每家银行都必须与所有其他银行结算交易。这是相当低效的。 icon
  • 使用不同的抽象级别更好地构建您的问题。 抽象阶梯是一种更巧妙地构建问题的工具。它有助于定义您需要更清楚地解决的问题。它可以帮助您超越最初的问题陈述。该工具使您能够提出正确的问题以在阶梯上上下移动。上移扩大范围,做到“见树不见林”。向 icon
  • 上下文映射,最早是由Eric Evans在领域驱动设计中描述的,是一种轻量级的方法,用来描述系统和系统的一部分之间的关系。 它本身不是技术性的。它暴露了组织的政治和构建系统的团队。当你开始绘制时,连接两个系统的每条边都定义了一个上游和一个下 icon
  • 微服务是开发软件的最具可扩展性的方式。但是你需要一个好的设计,让开发团队自主工作和部署,而不会互相干扰,否则你将失去可扩展性的好处。领域驱动开发允许我们通过将更大的系统分解为独立的单元、了解每个单元的职责并确定它们之间的关系来规划微服务架构。在本文中,我们将学习领域驱动设计的基础知识 icon
  • 软件的核心是处理和解决可用的业务上下文和问题。今天的企业业务领域通常是庞大而复杂的,并且正在增长/变化——以及接受这种增强的软件。领域驱动设计 (DDD) 是一种软件开发方法,其中软件工件与核心业务概念和目标完全一致。领域驱动设计由 icon
  • 在您的软件开发生涯中开发应用程序可能采用的众多方法之一是API-First Approach。在本文中,我们将深入探讨其核心概念并了解有关此方法的更多信息,我们还将熟悉在此方法中可能需要的一些工具。 背景从 icon
  • CI/CD部署管道可以帮助开发软件和组织架构来促进快速流动,从而提高业务敏捷性。 任何软件交付工作的核心都应该是部署管道,Je icon
  • 聚合数据能简化它,但让我们失去了信号和我们需要理解我们所看到的内容的上下文。 聚合是分析时间序列数据的标准最佳实践,但它会通过剥离关键上下文而产生问题,以至于您甚至不知道自己失去了多少潜在洞察力。在这篇文章中,我将首先讨论聚合如何成为问题,然后通过 icon
  • 自从 Hadoop 和 MapReduce 诞生以来,数据工程社区一直非常关注数据转换的商品化。所有 Hadoop 抽象,如 Hive、Pig、Crunch 等。在 Hadoop 之上构建以进一步简化数据转换。通过简化数据转换,Apache Spark 对 dbt 数据工程社区取得了重大飞跃 icon
  • 微服务架构是开发具有竞争力的软件平台的基准,基于松散耦合的服务,易于更改、部署、横向扩展,同时也将更改和部署的风险降至最低。与 REST 同步调用相比,事件驱动是服务内通信,应该避免服务之间的耦合。但是,如果我们在设计上不小心,我们仍然可以通过使用事件来开发高度耦合的微服务。这将导致 icon
  • DRY是我遇到的第一个编程原则,可能也是我在成为开发者的第一年中唯一意识到的原则。它也可能是最简单的理解原则之一。如果你在你的代码中看到两件相同的东西,也许它们就应该是一件东西。这一点很难说得通。但是,我认为DRY就像其他的原则一样--它有它的位置,但最好是适度的。而我认为,由于它的普遍性和 icon
  • 你是把每个微服务放在它自己的 git 存储库中,还是使用 monorepo?如果是后者,您如何在同一个 repo 中处理多个服务? 回答1. 我一直为每个服务使用一个 repo,但这主要是因为我们在工作中使 icon
  • 在经营企业的过程中,不可能预见到可能发生的每一种情况,并事先为它们准备好可以自动执行的纯粹基于规则的方案。这是否意味着你不应该使用基于规则的方法?当然不是! 它的意思是,在许多情况下,你的规则方法需要对实时插入的情感、人类判断力和常识尽可能友好。< icon
  • 互联网的关键架构原则之一是模块化; 模块化是一种设计原则,它有意使组件高度独立(“松散耦合”);当一个系统由具有可识别边界的较小的独立部分组成时,它就是模块化的。 在设计模块化架构时,系统架构师以 icon