`

领域驱动设计学习笔记

 
阅读更多
第一章:
有效建模的要素
1.早期模型
2.双方的交流的基础
3.充实模型
4.提炼模型
5.认证与推翻

第二章:
1. 团队成员应该使用同一种模型语言进行沟通。
2. 模型图只是阐明设计要点和框架,细节体现在代码中,文档应该作为语言与代码的补充。
3. 模型图不适合用来生成代码,因为这个不能说的太细。
4. 文档应该解释模型的概念,帮助指引代码的方向,在代码中能体现的就不用出现在文档中。

第三章:
1. 建模人员必须参与开发,开发人员也需要参与建模。
2. 模型与代码要同步更新,重构才会更加顺利。

第四章:
1. 分层,每层只做自己的事情,下层不依赖上层,上层依赖同层和下层。
2. 分离各层的关注点,领域层应该重点关注领域模型,而不需要关心显示和存储问题。
3. 为项目选择合适的框架,不求万全之策,用框架来解决难点问题,可以避开不足之处。
4. smart ui,反模式,也有些好处,效率高,成本低,模块独立性好,对界面维护容易(不会影响其他功能)。

第五章:
1. Entity关心的是对象的唯一标识。value object关心的是对象属性,这些属性尽量设计成不会改变的。
2. 非规范化:将value object存在在entity所在的同一页上,场景:当访问时间比存储空间更重要时。
3. 在分布式环境中,传递副本到各个服务器中,而不是共享,因为传递引用影响性能。
4. service是领域模型中的一种模式,他包含了一些操作,如一些业务管理类。三个特征:
   a.这些操作不是实体中的一个自然部分。
   b.接口根据领域模型的其他元素定义。
   c.操作是无状态的。
5. service不仅在领域层使用,需要与其他层的service区分开。
6. 领域层service可以控制领域层暴露的接口粒度。
7. 领域驱动设计不一定只用面向对象范式,面向对象对一些处理大量数学问题及全局逻辑控制的领域不太适合,可以采用规则引擎等范式结合,但能够用的好还是比较困难的。
8. 尽量不要采用多种范式。如果非要用,注意四大原则。
   a.找到合适的模型概念。
   b.统一的语言
   c.不要一味依赖uml
   d.保持对工具(其他范式)的怀疑态度。

第六章:
1. aggregate对外只有一个根,可以将内部的数据通过vo传给外部,这样边界清晰,当要删除根时,可以将其中的所有实体删除,不用担心外部引用。
2. 聚合关系中的规则是固定的,否则多进程同时对局部的修改,可能违反总体的规则。也就是对外实现单根,不允许直接修改内部。
3. 对象的创建与对象的执行分开,且不能转移给客户,装配应交给factory.factory是领域的一部分。
4. 三种factory: 根,需要满足另一对象规则,独立factory.
5. 某些情况下不需要factory,如不关心多态。
6. 将规则放在factory是因为对象创建出来后基本用不到规则,那么放在factory中使创建出来的对象更简单。
7. repository用于封装批量查询。
8. factory与repository区别:factory用于创建新对象,repository用于重建对象。不要讲新对象和就对象混合在一起,这样会很混乱。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linux驱动程序设计学习笔记

    以上就是《Linux设备驱动程序》第三版学习笔记的主要内容,涵盖了Linux驱动开发的各个方面。通过深入学习和实践,你可以掌握构建高效、可靠的Linux驱动程序的技巧,为你的Linux开发事业奠定坚实的基础。

    灰狐驱动学习笔记系列文章

    灰狐的驱动学习笔记系列文章以其深入浅出、注重实践的特点,为驱动开发领域的学习者提供了一条清晰的学习路径。从环境搭建到高级主题的探索,灰狐用亲身经历和实践经验,帮助读者避免了许多常见的陷阱和误区,使得...

    灰狐驱动学习笔记系列源码

    【灰狐驱动学习笔记系列源码】是一份专注于Windows驱动开发技术的学习资源,它包含了"灰狐驱动学习笔记"的文章源码,旨在帮助开发者深入理解并掌握Windows驱动的开发技术。这一系列的学习资料是《Windows驱动开发...

    灰狐驱动学习笔记系列

    总之,《灰狐驱动学习笔记系列》是一套全面且深入的教程,适合那些希望进入或深化驱动程序开发领域的读者。通过学习这个系列,读者不仅可以掌握驱动程序的基本原理,还能获得解决实际问题的能力,从而在硬件与软件...

    VHDL语言学习笔记

    在学习笔记中,可能会包含一些典型的设计实例,如七段显示驱动器、UART串口控制器、简单的数字信号处理器等,帮助理解VHDL的实际应用。 8. **库和标准包** VHDL标准库包括IEEE库,其中的std_logic_1164库提供了...

    驱动二期学习笔记

    "驱动二期学习笔记"显然聚焦于这一领域的深入探索,特别是针对JZ2440处理器的驱动程序开发和U-Boot引导加载器的理解。JZ2440是一款常见的嵌入式微处理器,常用于教学和开发用途,因其简洁的结构和丰富的资源而受到...

    linux设备驱动学习笔记

    总之,Linux设备驱动程序是内核编程的重要领域,它涉及硬件操作、内核编程技巧和并发控制等高级话题。学习Linux设备驱动程序不仅可以提高对Linux内核的理解,也可以为开发高性能的嵌入式系统打下坚实的基础。

    软件考试系统架构设计师学习笔记(整理版)

    《软件考试系统架构设计师学习笔记(整理版)》是一份详尽的学习资料,主要针对的是软件考试中的系统架构设计师这一专业领域。这份笔记包含了自2008年以来的历年试题,是备考者全面掌握该考试内容的重要参考资料。...

    软件开发学习笔记

    这份"软件开发学习笔记"涵盖了多个编程语言和技术领域,如C#、Delphi、VB.NET以及DLL库的开发,还包含了ICCO Development Help的相关资料,旨在帮助学习者深入理解软件开发的核心概念和实践技巧。 首先,C#是一种...

    Linux内核与设备驱动程序学习资料笔记+源码.zip

    Linux内核与设备驱动程序学习资料笔记+源码.zipLinux内核与设备驱动程序学习资料笔记+源码.zipLinux内核与设备驱动程序学习资料笔记+源码.zipLinux内核与设备驱动程序学习资料笔记+源码.zipLinux内核与设备驱动程序...

    OA项目学习笔记下载

    本压缩包包含了一份OA项目的学习笔记,是深入理解并掌握OA项目开发与实施的重要资料。 在OA项目学习笔记中,我们可以探讨以下几个关键知识点: 1. **OA系统概述**:OA系统通常包括工作流管理、文档管理、协同办公...

    C++ 学习笔记 整理

    C++是一种强大的、通用的编程语言,被广泛应用于系统软件、应用软件、游戏开发、设备驱动、嵌入式系统等领域。这份"C++学习笔记"涵盖了C++的基础到高级概念,旨在帮助初学者和有一定经验的程序员深入理解并掌握C++。...

    bspmake的驱动学习笔记视频1(windows驱动开发技术详解)

    6. **驱动开发流程**:一般包括驱动设计、编写代码、编译、签名、安装和调试。驱动签名是确保驱动安全的重要环节,因为它防止了恶意驱动的安装。 7. **调试技巧**:使用WinDbg等工具进行驱动调试是必备技能,它可以...

    【C++学习笔记】一份详细的学习笔记,让你轻松掌握C++编程!

    C++是一种强大的、通用的编程语言,它的设计理念是面向对象,同时支持过程化编程,使得它在系统软件、应用软件、游戏开发、设备驱动程序等领域有着广泛的应用。 C++的学习首先从基础开始,包括变量、数据类型、...

    电机控制学习笔记.zip

    本学习笔记主要涵盖了电机控制的基础理论、控制策略以及实际应用等方面的知识,旨在帮助学习者深入理解电机控制的核心原理。 电机是工业生产和日常生活中不可或缺的动力来源,其控制技术直接影响到设备的效率、精度...

    80X86汇编语言程序设计学习笔记

    这份"80X86汇编语言程序设计学习笔记"是针对Intel 80X86系列处理器的汇编语言编程进行详细阐述的学习资料,适合对汇编语言感兴趣的程序员或计算机科学学生进行复习和深化理解。 80X86汇编语言的核心是基于Intel的...

    学习linux底层驱动笔记

    以上内容只是Linux底层驱动学习笔记中的一部分,实际笔记可能还包含了更多细节,如设备注册、内存管理、电源管理等。学习Linux驱动开发不仅需要理论知识,更需要动手实践,通过阅读源码、编写驱动来加深理解。随着...

    谭浩强C语言学习笔记

    谭浩强C语言学习笔记 这是一本关于C语言的学习笔记,涵盖了从基本概念到高级应用的所有方面。下面是从中提取的重要知识点: 一、C语言概述 * C语言的历史和发展 * C语言的特点:结构化、模块化、可移植性、高效性...

Global site tag (gtag.js) - Google Analytics