写点什么

文章:领域模型管理与 AOP

  • 2008-02-28
  • 本文字数:688 字

    阅读完需:约 2 分钟

如今,很多项目都关注于领域驱动设计,但事情并非总是那么容易。其中最重要的事情就是从只因技术原因而存在的代码中将领域代码分离出来。

Mats Helander 在 InfoQ 写了一篇文章,是关于如何用他称为领域模型管理的概念来设法处理领域模型。在文章中,Mats 引领读者一步步解决了在实现一个领域模型时涉及设计和关注点分离的普遍问题,解释了解决问题的方法,并传授了在这个过程中出现的面向方向编程、一对设计模式、以及关于对象 / 关系映射的一些知识。

在下面的文章摘录中,Mats 谈论了把基础架构代码放在哪里的问题:

随着基础架构代码的增长,找到一个处理它的优良架构变得越来越重要。问题主要在于——我们是否允许把一些基础架构代码放在我们的领域模型类里面,还是无论如何应该避免这样做?

避免基础架构代码进入领域模型类的论点是强有力的:领域模型应该表示应用程序所处理的核心业务概念。对于想大量使用其领域模型的应用来说,保持这些类干净、轻量级、易于维护是一个极好的架构目标。

另一方面,我们接下来将会看到,保持领域模型类完全不含基础架构代码——通常被称为使用 POJO/POCO(Plain Old Java/CLR Objects)领域模型,这种极端的路线也被证明是有问题的。最终往往导致采用笨重的、低效率的变通方法来解决问题——而且有些功能用这种方式根本不可能实现。

也就是说,我们遇到的还是一个权衡利弊的情况,我们应该尽量在领域模型类里面只放必不可少的基础架构代码,决不超出这个限度。我们付出领域模型的轻微发胖,换来效率的提高以及使一些必要领域模型管理功能有可能实现。毕竟,软件架构很大程度上是关于如何做一笔好买卖。

阅读全文:领域模型方面的管理 获取源代码

2008-02-28 02:401660
用户头像

发布了 151 篇内容, 共 69.2 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

Oracle SQL Language Reference手册中的错误

我不吃六安茶

ANTLR

TiDB 论文引发的 HTAP 数据库再思考

TiDB 社区干货传送门

数据库架构选型

Android技术分享|【Android踩坑】怀疑人生,主线程修改UI也会崩溃?

anyRTC开发者

android 音视频 UI 移动开发 主线程

【React源码系列】React Hydrate原理及源码剖析

爱切图的木子老师

React react源码 React服务端渲染原理 React Hydrate

TiSpark 如何扩展 Spark

TiDB 社区干货传送门

达摩克利斯之剑:开源软件的合规风险及防控策略

SEAL安全

开源安全 软件供应链安全 开源合规 软件供应链攻击

2022 CCF中国开源大会会议通知(第四轮)

CCF开源发展委员会

SpringMVC(六、声明式事务控制)

开源 springmvc 8月月更

上海前端培训学习好就业难吗

小谷哥

「周大福」WeOps助力周大福开启IT运维数字化转型之路

嘉为蓝鲸

网易DBA团队出品“Mysql实用手册”正式开源,Github日下载破万

冉然学Java

Java MySQL 数据库 开源 架构

使用 Spring Boot 构建 TiDB 应用程序

TiDB 社区干货传送门

TiSpark 原理之下推丨TiDB 工具分享

TiDB 社区干货传送门

Spark 性能调优

TiDB 社区干货传送门

性能调优

前端监控系列1| 字节的前端监控SDK是怎样设计的

字节跳动终端技术

前端 监控 sdk

Linux面试最高频的5个基本问题

千锋IT教育

带你了解TensorFlow pb模型常用处理方法

华为云开发者联盟

人工智能 模型

Redis让我凉在美团一面,摸爬滚打3个月,二战逆袭成功斩获Offer

冉然学Java

Java redis 数据结构 面试 美团

TiFlash DeltaTree Index 的设计和实现分析

TiDB 社区干货传送门

什么是编译器中的常量传播?

华为云开发者联盟

开发 编译器 常量传播 基本块

海泰方圆政务信息系统密码应用解决方案 保障政务业务和数据安全

电子信息发烧客

Go-Excelize API源码阅读(八)——UngroupSheets()

Regan Yue

Go 开源 源码刨析 8月日更 8月月更

Netty实战 -- 使用Netty实现分布式框架Dubbo RPC

Bug终结者

dubbo Netty RPC 网络通信 8月月更

vue-i18n国际化语言在项目中的使用

CRMEB

手写webpack tapable源码,官方tapable的性能真的就一定是好的吗?

爱切图的木子老师

前端 webpack 前端面试 webpack-tapable

TiDB 查询优化及调优系列(五)调优案例实践

TiDB 社区干货传送门

【等保小知识】过等保一定要买堡垒机吗?堡垒机有什么作用?

行云管家

网络安全 等保 堡垒机 等级保护 过等保

【直播回顾】OpenHarmony知识赋能六期第五课—WiFi子系统

OpenHarmony开发者

OpenHarmony

元宇宙-原来挺简单

刘旭东

WebGL 数字孪生 元宇宙 blender Shapr3D

学习大数据课程后好找工作吗?

小谷哥

使用 TiDB Cloud (DevTier) 构建 TiDB 集群

TiDB 社区干货传送门

文章:领域模型管理与AOP_架构_Mats Helander_InfoQ精选文章