10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

文章:领域模型管理与 AOP

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

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

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

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

关注

评论

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

全链路灰度新功能:MSE 上线配置标签推送

阿里巴巴中间件

阿里云 微服务 云原生

在 WSL2 上部署 PyTorch

吴脑的键客

WSL2 Windows 10 PyTorch

实力上榜|海泰方圆跻身2022企业网络安全服务Top15

电子信息发烧客

【杂谈】网络协议(一)

自然

网络 8月月更

[教你做小游戏] H5小游戏技术选型分析,低代码?小游戏框架?canvas或SVG?还能用React?

HullQin

CSS JavaScript html 前端 8月月更

多核驱动时代的降维打击 英特尔异构混合架构破局之路

科技之家

什么数据库这么猛?5.6 版本刚开源一个半月,8.0 版本竟然就要启动了?| StoneDB 社区答疑第二期

StoneDB

MySQL 数据库 开源 StoneDB 8月月更

Beetle编译/部署自动化

转转技术团队

CI/CD

多模态算法在视频理解中的应用

之家技术

人工智能 算法 视频 多模态

参与 TDesign 收获了什么?听听社区贡献者怎么说

TDesign

设计 产品经理 设计师

开源一夏 | 一个裸机工程转FreeRTOS的实例

矜辰所致

开源 stm32 STM32CubeMX 8月月更 FreeRTOS

828选华为云,实惠更实用——为什么选择华为云CDN的企业多?

sofiya

字典服务的设计与管理

Java 架构

leetcode 503. Next Greater Element II 下一个更大元素 II(中等)

okokabcd

LeetCode 算法与数据结构

Java开发微信公众号初体验

源字节1号

前端开发 后端开发 小程序开发

诚邀|8月31日,【因果学习和决策优化挑战赛TOP10队伍作品秀】邀您共享因果学习智慧盛宴

九章云极DataCanvas

人工智能

TDesign 设计资源大更新,产品经理和设计师都可以省心啦~

TDesign

设计 设计师

圆壹智慧创始人兼CEO 潘麓蓉:AI制药工业落地的痛点与前进方向

阿里云弹性计算

HPC 高性能计算 AI制药

分布式系统接口用例自动回归实践

转转技术团队

接口测试

华为云CDN&云视频通信专场:828低价购,CDN0.05元/GB起,短信0.006元/条起

sofiya

你就是函数响应式编程(FRP)啊?!【附 RxJS 实战】

掘金安东尼

前端 函数式编程 8月月更

灵魂拷问:你精神内耗了吗?由TA来治愈吧

白洞计划

前端食堂技术周刊第 49 期:Deno即将迎来重大变革、Blitz 2.0 Beta、Chrome删除HTTP/2服务端推送

童欧巴

JavaScript typescript deno

开源一夏 | Foundation对于模态框以及Subsystems的深入运用的理解心得

恒山其若陋兮

开源 8月月更

已有小程序应用转App的一种技术

Speedoooo

小程序 小程序容器 小程序转app

付费会员之我见-02(44/100)

hackstoic

商业模式 付费会员

开源一夏 | 23张图,4500字从入门到精通解释Redis

wljslmz

redis 开源 8月月更

【杂谈】网络协议(二)

自然

网络层 8月月更

“九章云极DataCanvas AI平台赋能厦门航空”荣获AI平台应用标杆案例

九章云极DataCanvas

人工智能

九章云极DataCanvas YLearn因果学习开源项目荣获“可信AI实践优秀案例”奖

九章云极DataCanvas

直播预告 | 流程挖掘如何助力头部制造业实现千万级增长?

望繁信科技

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