1 六个问题 1.1 为什么使用DDD DDD方法论核心是将问题不断分解,把大问题分解为小问题,大业务分解小领域,简而言之就是分而治之,各个击破。 分而治之是指直接面对大业务我们无从下手,需要按照一定方法进行分解,分解为高内聚的小领域,使得业务有边界清晰,而这些小领域是我们有能力处理的,这就是领域驱 ...
>模式介绍 结构型模式(Structural Pattern)的主要目的就是**将不同的类和对象组合在一起,形成更大或者更复杂的结构体**。该模式并不是简单地将这些类或对象摆放在一起,而是要**提供它们之间的关联方式**。不同的结构型模式从不同的角度来组合类或对象,它们尽可能满足各种面向对象设计原则 ...
原文:https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90 从分布式微服务架构迁移到整体式应用 ...
学习DDD的意义 作为技术人,都有一个成为大牛的梦。 有些人可以通过自己掌握了比较底层、有深度、有难度的技术来证明自己的能力。 但对于绝大多数的应用研发工程师来说,其大部分的时间精力,会被消耗在读不懂、讲不清的屎山代码中,以及复杂多变的业务迭代中。很少会有需要去接触高深技术的机会,即便是接触了,也很 ...
# 原型模式 ## 一、模式动机 原型模式(Prototype Pattern)结构较为简单,它是一种特殊的创建型模式,**当需要创建大量相同或者相似对象时**,可以**通过对一个已有对象的复制获取更多对象**。Java语言提供了较为简单的原型模式解决方案,只需要创建一个原型对象,然后通过在类中定义 ...
# 建造者模式 ## 一、模式动机 建造者模式(Builder Pattern)是最复杂的创建型模式,它**用于创建一个包含多个组成部分的复杂对象**,可以返回一个完整的产品对象给用户。它通过将**客户端与包含多个组成部分的复杂对象的创建过程分离**,使得**客户端无需知道复杂对象的内部组成部分与装 ...
1. 什么是C#组合模式? 组合模式是一种结构型设计模式,它允许将对象组合成树形结构以表示“整体/部分”层次结构。使用此模式,客户端可以按相同的方式处理单个对象和对象集合,而不必关注它们是单个对象还是组合对象。组合对象本身也可以作为容器,包含其他组合对象,形成更复杂的树形结构。 在C#中,组合模式是 ...
# 单例模式 ## 一、模式动机 单例模式(Singleton Pattern)是结构最简单的设计模式,它的**核心结构中只包含一个被称为单例类的特殊类**。通过**单例模式可以确保系统中一个类只有一个实例**,且该实例易于被外界访问,从而方便对实例个数的控制并节约系统资源。 - [ ] 如何确保一 ...
本文主要讲解了京东百亿级商品车型适配数据存储结构设计以及怎样实现适配接口的高性能查询。通过京东百亿级数据缓存架构设计实践案例,简单剖析了jimdb的位图(bitmap)函数和lua脚本应用在高性能场景。希望通过本文,读者可以对缓存的内部结构知识有一定了解,并且能够以最小的内存使用代价将位图(bitm... ...
解决的问题 避免新开发的代码影响提测的代码 避免生产环境出现问题后,修复后,由于代码混乱,无法合并到生产环境 解决多个需求并行开发,并行测试,合并上线的问题 我的设计思路 流程图工具我使用的是:diagrams.net 具体执行步骤 开发人员按需求粒度从dev建立分支 哪个需求或者哪些需求提测,就把 ...
本文从设计模式与编程语言的关系,设计模式与架构模式的区别,设计原则和设计模式的关系等几个维度进行了分析和解答。关于设计模式应该如何学习和应用的问题,给出了学习意见和实践心得。 ...
前段时间,随着阿里集团CEO张勇的公开信发布,阿里集团也做出了历史上最大的一次组织调整。 随着新的1+6+N的组织阵型的调整和落地,阿里曾经的中台战略,变得有点非常的尴尬了,似乎成为了一个巨大的争议。 ...
# 抽象工厂模式 >回顾工厂方法设计模式的不足:具体产品增加时,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度 ## 一、模式动机 - 产品等级结构:产品等级结构即产品的继承结构,即抽象产品与具体产品 - 产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组 ...
基于ssd磁盘,此我设计了比redis更好的缓存方案。此方案:没有缓存击穿问题。没有缓存雪崩问题。没有缓存污染问题。没有热key问题。 不需要snap和aof。支持任何sql库,sql库不需要带有任何分布式功能。 ...
简介 访问者模式(Visitor Pattern)是一种行为型模式。它封装一个访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。在不改变原有元素类数据结构的前提下,改变了元素类的执行算法。 当某些较为稳定的东西(数据结构或算法),不想直接被改变但又想扩展功能,这时候适合用访问者模式 ...
这几周与公司的软件开发专家(职称)讨论产品的软件新架构与方案,主要涉及两点 是否复用现有的核心机制 基于领域建模设计 关于第一点,双方达成一致。 关于第二点,领域可以理解为业务,业务专家(产品经理,需求工程师,临床工程师等)与研发人员一起,通过头脑风暴、事件风暴、会议、协作等方式,使得研发人员对产品 ...
LOD:迪米特法则(Law of Demeter) CRP:合成复用原则(Composite Reuse Principle) DRY:不要重复你自己原则 (Don’t Repeat Yourself Principle) KISS:KISS原则 (Keep It Simple and Stupid ...
一、前言 第二次在博客园上发布面向对象程序设计题目集的总结博客。经过几周的学习,面向对象的理念更加深入。虽然已经学了些面向对象程序设计,学好这部分内容还是有较大难度。 关于知识点 本次的题目集所体现的知识点已经不仅限于Java的语法知识,还需要考虑设计问题,不能看到题目就开始进行代码编写,需要考虑类 ...
工厂方法模式 简单工厂的不足 上节的简单工厂,需要拓展时比如修改工厂类,违背了设计模式的开闭原则 简单工厂类直接生成各个子类产品,而工厂方法则有一个抽象工厂类,声明了创建产品的工厂方法,而各个不同的子类产品交由各个不同的具体工厂去完成创建,拓展时,只需要新建一个具体工厂即可,具有更好的灵活性和拓展性 ...
简介 模板方法模式(Template Method Pattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...