当前位置:网站首页>Domain Driven Design - MDD
Domain Driven Design - MDD
2022-08-05 01:52:00 【台塑】
I. MDD
In domain-driven design, the most important thing is Model Driven Development, model-driven development (MDD).There is a famous saying in the programming world "rely on the abstract rather than on the concrete".This is both a principle of design and a process in MDD.The model is abstracted from the specific business through thinking.
In the early software development, there are generally clear and specific requirements, and the industry is relatively fixed.Such software does not have high design requirements or the design cannot play an important role in it.As the saying goes, "kill a chicken with a butcher's knife".But this does not mean that design is not important. As the complexity and scale of software businesses continue to grow, the importance of software design is increasingly reflected.
In this process, the fixed mode and the work that is relatively easy to separate from the actual business are more conducive to the rapid introduction of the design, and the actual situation is also the same.But the complex business and the parts that are inextricably linked to the business are difficult to abstractly design.However, it does not mean that it is impossible. Domain design is the way to solve this practical scenario, and whether it is possible to abstract the actual energy into a model, which can drive the development of the entire business logic.A good model can not only have better business flexibility and scalability, but also can be jointly improved by different application personnel with the help of a common language, and finally guide software coding to realize business functions.
A key point here is that in the previous model design, the model is the model, and the program design is the design, and the two are basically separated, but in MDD, the boundaries between the two are blurred, or theThe two should be organically unified.That's the point, a model, used synchronously.
When it comes to MDD, we have to mention MDA, MDA, Model Driven Architecture, Model Driven Architecture, which was proposed by the International Object Management Group (OMG, Object Management Group) in July 2001 based on the formalization of MDDmodel-driven architecture.The so-called driver architecture is actually the separation of models and technologies to achieve portability, interoperability and reusability.Due to the decoupling of the business code, it can better adapt to the expansion and adaptability of the two levels.Iterative development of technology and changes in business have no impact on each other.
The description of MDD can use some familiar modeling standards (UML, MOF, XMI, etc.) to achieve readability.
With MDD, there will be MDF, that is, MDD Framework, a model-driven development framework. After all, it is meaningless to build something from scratch and constantly recreate some wheels.At the same time, it can occupy the market, make high-profile money, and serve multiple purposes with one stone. It is the best to engage in frameworks.There is no description of the MDF framework here, and the focus is on MDD.
Second, the core of MDD
What is the core of MDD?The consistency between the model and the design must be strictly guaranteed within a controllable range.As mentioned earlier, MDD is to ensure the adaptability of the model. It cannot be like pure model design. In the actual development stage, the model basically has no effect.MDD maintains the availability of the entire model throughout the programming development cycle.It is necessary to use some development tools and auxiliary means on this basis.For example, the requirements for some paradigms and the matching degree of tools.
As long as a practical model is designed, software development is actually a unified iterative process of continuously refining the model, design and code.
Three, MDD driver process
First of all, it is necessary to understand some professional terms of MDD: domain, bounded context, association, entity, value object, domain service, etc.These will be explained in detail later, here we will focus on the driving process:
1. Deriving the preliminary domain and bounded context (module) from the actual business scenario, as well as the relationship between the contexts;
2. Analyzing the context and dividingEntities and value objects;
3. Associate aggregate entities and value objects to obtain aggregate categories and aggregate roots;
4. Design repository (repository) from aggregate roots, and design how to create entities and value objects;
5. Apply the model and constantly reconstruct the model in practice.
Four. Summary
To learn any kind of knowledge, you must grasp the main part and follow the outline.Enter the space without gaps.Domain design, first of all to do a good job of MDD, the ability of abstract model is the ability of your domain design.To have the ability to have a good abstract model, in addition to being sensitive to the domain division (that is, the boundary) of the business itself, have a good domain idea, be familiar with the means and methods of model creation, and have a deep grasp of technology applications.To create a good domain model.
Learn more, apply more, think more, and improve the level of thinking.
边栏推荐
- Knowledge Points for Network Planning Designers' Morning Questions in November 2021 (Part 2)
- 超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满
- <开发>实用工具
- 【Endnote】Word插入自定义形式的Endnote文献格式
- DDOS攻击真的是无解吗?不!
- 【TA-霜狼_may-《百人计划》】图形4.3 实时阴影介绍
- GC高德坐标和百度坐标转换
- Exercise: Selecting a Structure (1)
- 英特尔 XDC 2022 精彩回顾:共建开放生态,释放“基建”潜能
- Gartner Hype Cycle:超融合技术将在2年内到达“生产力成熟期”
猜你喜欢
The use of pytorch: temperature prediction using neural networks
张驰咨询:揭晓六西格玛管理(6 Sigma)长盛不衰的秘密
(17) 51 MCU - AD/DA conversion
iNFTnews | What can NFTs bring to the sports industry and fans?
超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满
KingbaseES V8 GIS数据迁移方案(2. Kingbase GIS能力介绍)
ExcelPatternTool: Excel table-database mutual import tool
Interview summary: Why do interviewers in large factories always ask about the underlying principles of Framework?
【TA-霜狼_may-《百人计划》】图形4.3 实时阴影介绍
Bit rate vs. resolution, which one is more important?
随机推荐
[Unity Entry Plan] Handling of Occlusion Problems in 2D Games & Pseudo Perspective
【七夕如何根据情侣倾听的音乐进行薅羊毛】背景音乐是否会影响情侣对酒的选择
深度学习训练前快速批量修改数据集中的图片名
.Net C# 控制台 使用 Win32 API 创建一个窗口
PCIe Core Configuration
开篇-开启全新的.NET现代应用开发体验
Interview summary: Why do interviewers in large factories always ask about the underlying principles of Framework?
如何基于OpenVINO POT工具简单实现对模型的量化压缩
缺陷检测(图像处理部分)
张驰咨询:揭晓六西格玛管理(6 Sigma)长盛不衰的秘密
How to create an rpm package
ORA-00604 ORA-02429
HOG特征学习笔记
2022 EdgeX中国挑战赛8月3日即将盛大开幕
详细全面的postman接口测试实战教程
Exercise: Selecting a Structure (1)
pytorch的使用:使用神经网络进行气温预测
安装oracle11的时候为什么会报这个问题
【MySQL系列】- LIKE查询 以%开头一定会让索引失效吗
如何发现一个有价值的 GameFi?