• 尽管DDD的理念已经存在了10多年,但最近几天却获得了很多人的青睐。我认为这主要是因为人们开始注意到DDD所提出的思想与某类复杂性之间的关联,这类复杂性在涉及多个团队的大规模组织所构建的软件中反复出现。 尽管所有的现代架构原则和实践都为常见的问题提
  • 为任何领域、技术或平台设计可演变的高质量API的成熟模式 本书提供了理论和实践的健康组合,包含了许多深刻的建议,但从未失去大局观......以现实世界的经验为基础,以学术的严谨性和实践者社区的反馈为基础进行记录。我相信,[它]将为社区提供良好的服务
  • 问:我的背景是来自php和一点点java,在这种条件下,我已经养成了使用面向对象的习惯,所以当我用go写一个api时,我使用了java中的oo概念,并在go中使用(到处都是指针,大胆的接口和浅层模块),但go不是过程化的吗? 如何在这里最大限度地正确抽象和项目架构来制作一个api? icon
  • 有些语言的特点是否使某些设计模式不复存在?  在我的经验中没有。相反,有一些语言的特点可以促进某些模式的发展。作为一个简单的例子,看看Strategy策略模式: 1、在C语言中,我们可以通过向策略用户传递一个指向策略函数的指针作为参数,或传 icon
  • 神奇的是,设计模式没有什么神奇的。许多被认为是复杂的模式在表面下反而显得很简单,甚至是容易的。 以事件源为例:简而言之,你可以在流的末端追加事件,然后从流中读取所有事件。所以要追加关于对象或流的新的业务事实,然后读取所有的事件,并从中建立当前的状态,这样才能知道发生了 icon
  • 我们将讨论为什么编写更多可读的代码,而不是简明(短)的代码。之后,以下是关于如何做到这一点的策略: 变量、类和函数的命名 辅助函数 代码注释 枚举/字典/密封类/等等。 包的组织和命名 < icon
  • 低层设计(LOW LEVEL DESIGN,简称LLD)面试很痛苦,如果您想破解 SDE 2,FAANGM 和所有其他 TOP STARTUPS 都要求您通过这一轮,与您分享一份完整指南,帮助您顺利破解这些 LLD: 什么是低级设计 icon
  • 设计模式是针对常见软件设计问题的可重用解决方案。它们提供了一种描述和记录软件架构的方法,以及供开发人员交流软件设计的通用词汇表。 有几种类型的设计模式,包括创建模式、结构模式和行为模式。 创建模式处理对象创建机制,试图以适合情况的方式创建对象。 结构模式处理对象组合,创建对象之间的关系以形成 icon
  • 模板方法是一种行为设计模式,它允许您在基类中定义算法的骨架,并让子类覆盖这些步骤而不改变整体算法的结构。模板方法是定义算法骨架的默认实现,其他方法可以在具体类型中重新定义。 这里算法整体结构不只是指普通算法 icon
  • 通常,数据是分步处理、提取和转换的。因此,一系列数据处理阶段可以称为数据流水线。 选择哪种设计模式? 有很多事情需要考虑,即使用哪个数据栈?需要考虑哪些工具?如何从概念上设计数据管道?ETL 还是 ELT icon
  • 解释器模式是  一种设计模式,它指定如何评估语言中的句子。解释器模式描述了如何为简单语言定义语法。 如果一个问题经常发生并且需要很长的重复步骤来解决它,那么问题实例可能会用一种简单的语言来表达,并且解释器对象可以通过解释用这种简单语言编写的句子来解 icon
  • Visitor允许您将“外部”操作添加到整个类层次结构中,而无需更改这些类的现有代码。 访问者另外一个定义是:封装了一种对异构对象集合进行操作的算法。它允许在同一数据上写入多个不同的算法,而无需修改数据(或其主要行为)。 icon
  • 这个模式背后的想法非常简单:创建一个可以但不需要持有所有值的对象,当所有需要的字段都存在时,用它来构建我们需要的类型。 为了熟悉Rust中的构建器模式,让我们首先比较一下我们的代码在有和没有构建器的情况下会是什么样子: icon
  • 有没有想过如何对属于具有多个依赖属性的实体的 API 请求/响应执行验证?在这种情况下可以执行什么类型的验证?使用什么设计模式?如何构建代码?底层设计应该是什么样的?如何使代码和设计具有可扩展性以适应验证模块的更多依赖属性?如果与属性相关的任何逻辑在未来得到增强,如何使代码和设计灵活以确保需 icon
  • 泛在语言(无处不在的语言UL:Ubiquitous Language) 是 DDD 核心的一个强大的想法。但领域语言并不总是能满足我们的领域需求,有时“标准”对于实际工作更具吸引力。 泛在语言是一种通用的、严格的语言,由程序员、设计师和领域专家在一 icon
  • 我从你那里看到的关于清洁代码的大多数解释包括我在视频中提到的所有事情:喜欢继承层次结构而不是if/switch语句,不暴露内部("德墨忒尔法则 Law icon
  • Java 中的回调操作是一个函数传递给另一个函数并在某个操作完成后执行。回调可以同步或异步执行。 在同步回调的情况下,一个函数紧接着另一个执行。 在异步回调的情况下,一个函数在一段不确定的时间后执行,并且与其他函数没有特定的顺序发生。 icon
  • 本文目的是提供这几种模式的简化示例。可以在我的Github上找到[url=https://github.com/bgdnvk/patterns]此存储库[/url icon