文档章节

领域驱动设计学习的一些总结(阅读dddquickly有感)

yhchinabest
 yhchinabest
发布于 2016/08/07 14:57
字数 653
阅读 44
收藏 0

一 为什么要有领域驱动设计?

首先,计算机技术的作用(特别是软件技术)是为了解决现实世界某一个领域的问题,脱离了这些问题,单纯的算法,编程语言,或者操作系统都并没有实际的意义。但是开发人员往往只喜欢研究技术问题,而忽视了领域问题的学习。例如下面一个例子:

“我要在这个项目中使用苹果公司新推出的Swift语言,在服务器端使用Hadoop,最好再尝试一下深度 学习方面的技术”,然后就一头扎进这些时髦和高大上的技术之中。三个月后,你去问他需要解决的领域中的真实问题是什么,他还是一脸茫然。”

这样的开发人员就是兴趣驱动型的开发人员。只追求技术,而忽视领域问题的软件,质量自然也是无法保证。

  一个有力的观点指出了这一点:布鲁克斯老先生将维护软件的“概念完整性”作为软件开发的核心问题。软件之所以很复杂,难以维护,根本原因就在于软件概念的完整性遭到了破坏。甚至开发团队的成员从来就没有意识到有必要去维护软件概念的完整性,他们只是一些自行其是的开发人员,碰巧在于一个团队中一起堆代码而已。

   当然,在实际的开发过程中,经常有软件概念完整性遭到破坏的情况发生,一部分原因是开发人员喜欢追求高大上的技术,产品功能对他们来说只是甲方提的需求,他只用考虑技术上能否实现。另一方面是产品设计人员缺乏相关的素质,他们只能进行表面功能的设计,而无法看到软件需要解决的核心问题。最终造成功能设计和开发出来的功能完全脱离了实际要解决的问题,功能无法满足用户需求,也代码越来越难以维护,最终导致软件开发的失败。

   所以,必须要有领域驱动设计,通过分析问题模型,提炼出良好的领域模型,最大程度的维护软件概念的完整性,才是保证软件开发能够成功的关键。

© 著作权归作者所有

共有 人打赏支持
yhchinabest
粉丝 3
博文 42
码字总数 11431
作品 0
武汉
高级程序员
领域驱动设计与设计模式

作为程序员,你最喜欢在怎样的代码环境中编码?我们大部分时间是在维护代码或者在已有代码中添加需求,你是否吐槽过别人的代码有毒?我们希望别人的代码可读性好,易维护,添加新功能时,它有...

Jun_Wong
2017/12/23
0
0
[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结

原文:[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结 一、引用   其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计、领域...

杰克.陈
2017/12/05
0
0
2014年全球网站设计的15个趋势

1、超长网页设计 以往的长网页会挤满内容,我们习惯于下滑滚动网页来获取信息,但并非是挤满内容枯燥的长网页,而是由更多的留白空间以及快速响应技术合并而成的超长网页设计。这样的设计能使...

fjxichao
2015/01/15
0
0
数据驱动设计:从学习特征到学习算法

  编者按:人工智能许多问题的本质是搜索一个函数的最优解,那么如何确定一个最佳的搜索策略就成为了研究者们想要解决的问题。本文中,微软亚洲研究院视觉计算组研究员辛博和David Wipf向我...

微软亚洲研究院
02/27
0
0
你应该如何学习一个未知的技术领域?- 菜鸟小白篇

一、前言 2018年初开始从事线上课程的开发,陆续开发了几门课程,《人工智能产品经理最佳实践请添加链接描述》《知识图谱实战开发完全剖析请添加链接描述》和《智能对话机器人实战开发完全剖...

数据饕餮
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 放假前期焦虑症晚期

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享Matteo的单曲《Panama》: 《Panama》- Matteo 手机党少年们想听歌,请使劲儿戳(这里) @新垣吉衣OSC :我发现只要去有小朋友...

小小编辑
4分钟前
3
2
wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
36分钟前
1
0
Ubuntu集群-使用MAAS开始裸机安装

Ubuntu使用MAAS装机的七个步骤。 1、Setup your hardware You need one small server for MAAS and at least one server which can be managed with a BMC. It is recommended to have the M......

openthings
49分钟前
3
0
OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部