Wade Waldron是一位来自于BoldRadius资深软件开发者,他在一次演讲中表示,他在几年前开始结合使用领域驱动设计(DDD)与洋葱架构,他代码质量从此得到了极大提高。一开始他仅仅使用了DDD,但随着结合使用洋葱架构,他发现他代码更加易读易懂了,维护难度也降低了许多。\\ 洋葱架构有时也被称为端口和适配器(Ports and Adapters)架构,或者是六边形(Hexago
转载 2023-12-21 16:04:56
65阅读
博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch。基于最新.Net 7.0 RC1, 数据库采用PostgreSQL, 目前实现了包括多租户在内12个特性。该架构解决方案主要参考了NorthwindTraders, sample-dotnet-core-cqrs-api 项目,&nbs
转载 2023-12-15 17:14:34
308阅读
《DDD实战课》读书笔记四(几种常见架构及对比)架构介绍整洁架构洋葱架构架构架构说明六边形架构(端口适配器架构架构架构说明三种架构对比与分析 架构介绍整洁架构洋葱架构架构架构说明整洁架构最主要原则是依赖原则,它定义了各层依赖关系,越往里依赖越低,代码级别越高,越是核心能力。外圆代码只能指向内圆,内圆不需要知道外圆任何情况。领域模型实现领域内核心业务逻辑,它封装了企业级
刚开始做java开发,用博客记录一些知识,做以积累。这篇文章大部分都是翻译英文资料,英语一般,翻译有点蹩脚,外加自己少部分理解。原英文资料:Domain-Driven Design with Onion Architecture国外一位开发者 Wade Waldron结合洋葱架构使用了领域驱动设计后,代码质量得到显著提高,并且可读性、可理解性和易于维护性也都大大加强。洋葱架构有时候也被叫做
转载 2023-09-03 09:25:43
234阅读
前言因为对框架源码生疏,笔者最近在看博文视点陈昊《Laravel框架关键技术解析》。看到书中反复提及管道处理,写下一些自己所思所想。书中一直在描述Laravel框架如何优雅,例如在第6章<Laravel框架中设计模式>中写这个管道处理使用了装饰器模式,很elegant;在第7章<请求到响应生命周期>又把装饰器模式提一遍,说中间件&请求是怎么用这个管道处
转载 2023-12-01 09:21:58
194阅读
1、Set基本用法ES6提供了新数据结构Set。它类似于数组,但是成员值都是唯一,没有重复值。Set本身是一个构造函数,用来生成Set数据结构。var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4上面代码通过add
转载 2024-07-26 16:15:51
21阅读
# 洋葱架构:软件设计新思路 洋葱架构(Onion Architecture)是一种软件架构模式,旨在通过分层结构来增强应用程序可维护性和可测试性。其核心思想是以“洋葱”形象化不同层次之间关系,从内到外逐层构建系统。接下来,我们将深入探讨洋葱架构概念,以及如何在实际项目中实现它。 ## 洋葱架构层次 洋葱架构通常由以下几个层次组成: 1. **核心层(Domain Layer)*
原创 10月前
156阅读
这几天在为实习作准备,打算系统地重新学一下java基础。这里是我在看《Java核心技术卷I》时候记下一些小点,比较杂乱,但是也有一定参考价值,放在这里给后来者和自己以后参考。 如有纰漏敬请指教!java“大数值”(big number)是一个Java对象,能够表示任意精度值用Double.isNaN()来判断是否为not a number,其他方法类似\n换行 \r回车声明一个变量之后必
转载 2024-09-20 06:49:01
18阅读
# 理解和实现“洋葱架构洋葱架构(Onion Architecture)是一种用于软件开发设计模式,旨在增强应用程序可测试性和灵活性。它通过将应用程序业务逻辑和外部依赖分离开来,构建一个层次分明结构,在这种结构中,核心业务逻辑被放置在中心,而依赖关系逐渐向外扩展。 ## 流程概述 下面是实现洋葱架构一般步骤: | 步骤 | 说明
原创 10月前
36阅读
领域驱动设计(Domain-driven design,DDD)是一种为复杂需求开发软件方法,它将软件实现与不断发展核心业务概念模型紧密地结合在一起。领域是一个知识范畴。它指的是我们软件所要模拟业务知识。领域驱动设计中心是领域模型,它对一个领域流程和规则有着深刻理解。洋葱架构实现了这一概念,并极大地改善了代码品质,降低了复杂性,并且支持不断发展企业系统。为什么要用洋葱架构?领
koa洋葱模型源码、洋葱模型实现koa介绍koa源码解析目录针对applicationuse方法讲解洋葱模型中间件概念中间件工作原理:中间件执行顺序(洋葱模型): koa介绍koa是一个精简node框架,它主要做了以下事情:基于node原生req和res为request和response对象赋能,并基于它们封装成一个context对象。基于async/await(generator)中间
转载 2023-11-30 09:22:37
116阅读
 ————————————————————————————————————————————————————————《概览》tor 源码包可以从官网下载,可能需要预先利用其它=*翻^=*墙*软件才能访问该站点。分析 tor 源码有助于我们理解当代最强大之一互联网匿名、隐身、审查规避软件运作原理。为了从整体上把握住程序逻辑与功能,本系列会将源码重要部分通过函数调用流程图总结,以便站在
虽然身为架构师,设计一个高质量架构依然是复杂与困难。简单来说,动用大量资源只为了一套优质三高架构并不正确,而是该在了解当前业务现状情况下,创造出灵活、可维护、健硕能成长。就拿近两年程序员行业饱受争议 DDD(领域驱动设计)来说,事实上,领域驱动设计思维可以很好解决企业大型架构所遇到绝大部分难题(理论层面至少是这样),例如上下映射,就可以在本质上把业务架构模块解耦,最高程度做
## 洋葱架构:构建可维护应用程序 在软件开发中,架构设计至关重要。洋葱架构(Onion Architecture)是一种强调分层和解耦架构模式,旨在帮助开发者创建更可维护和可扩展应用程序。该架构基本思想是将业务逻辑与外部依赖分离,从而提升代码可测试性。 ### 洋葱架构层次结构 洋葱架构通常分为以下几个层次: 1. **核心层(Domain Layer)**:包含业务模型和业
原创 8月前
44阅读
我们一般看到传统分层架构是这样: 在 The Onion Architecture 中介绍了下图洋葱架构,从里到外是领域模型、领域服务、应用服务,外面的都会用到里面的内容,最外围是容易变化内容,如界面、测试和基础设施(如数据存储等)。这个图表明了以领域模型为中心,而不是以数据为中心。 下图为一个示例:   欢迎转载,转载请注明:转载自周金根 [ h
原创 2010-01-27 09:45:00
1907阅读
# 洋葱架构搭建:一种灵活程序设计方法 ## 引言 在软件开发过程中,项目的复杂性与需求多样性往往使我们面临许多困难。为了提高代码可维护性、扩展性和可测试性,许多开发者逐渐采用“洋葱架构”这一设计模式。本文将深入探讨洋葱架构基本概念、优点,并通过一个简单示例来演示如何搭建洋葱架构。 ## 什么是洋葱架构洋葱架构(Onion Architecture)是一种软件设计模式,旨在将
▎作者简介作者冯丹是一名非常有激情一线程序员,喜欢java强大面向对象能力,scala简洁函数式编程范式以及Akka这种优秀响应式编程框架。今天文章可以让读者了解DDD落地一种具体措施。领域驱动设计DDD(Domain Driven Design)主旨思想就是不再把需求分析和代码实现分解为两个独立过程,代码即方案,这对于代码设计提出了更高要求。要求即使是非开发人员也能非常容易
转载 2023-07-12 16:14:36
196阅读
# 理解和实现“洋葱架构” 在软件开发中,“洋葱架构”是一种分层架构,旨在帮助我们隔离核心业务逻辑与外部依赖。这种架构能够增强代码可测试性、可维护性和可扩展性。本文将通过一个简单例子来探讨洋葱架构实现步骤,同时使用代码示例和图表来帮助理解。 ## 洋葱架构基本流程 下面是实现洋葱架构步骤: | 步骤 | 说明 | |------|------| | 1 | 定义核心业务逻辑
原创 10月前
104阅读
一、自动生成和发布领域事件我在OninArch1.0实现了对删除实体自动生成和发布领域事件,并通过订阅这个领域事件,将删除实体数据备份至回收站表中,以备审计和数据恢复。本次我改进了这个特性,对实体数据新增,修改和删除都会自动生成和发布领域事件。我认为尽量不要通过修改代码来新增和发布领域事件,这会导致新增业务功能也需要修改代码而不是新增代码来实现,不符合对修改关闭和对扩展开放设计原则。应
蛋白质是我们都有所了解一种生物大分子,那么它实际上是怎样呢?我们可以通过构造一份相关思维导图来了解蛋白质基本组成和结构。下图是一份通过iMindMap软件制作思维导图,接下来我们会对它进行详细介绍。图片1:蛋白质组成和结构思维导图 一、组成1.元素组成组成蛋白质基本元素有碳、氢、氧、氮、硫;微量元素还有磷和碘等。由于蛋白质中平均含氮量为百分之十六,所以可以通过测定化合物中
转载 2024-09-11 16:08:49
122阅读
  • 1
  • 2
  • 3
  • 4
  • 5