目录 上一篇博文 本文流程 回顾上文 解释基本的操作 开始实现 准备 建立代码的文件夹结构,约定模块文件的命名规则 模块文件的命名原则 一级和二级文件夹 api_layer的文件夹 application_layer的文件夹 domain_layer的文件夹 infrastructure_layer的文件夹 index.html实现调用引擎API 用伪代码实现index.html 实现"CanvasJsAPI.setCanvasById" 实现"GraphicsJsAPI.s…
目录 上一篇博文 下一篇博文 前置知识 回顾上文 最小3D程序完整代码地址 通用语言 将会在本文解决的不足之处 本文流程 解释本文使用的领域驱动设计的一些概念 本文的领域驱动设计选型 设计 引擎名 识别最小3D程序的顶层包含的用户逻辑和引擎逻辑 根据对最小3D程序的顶层的分析,用伪代码初步设计index.html 识别最小3D程序的初始化包含的用户逻辑和引擎逻辑 识别最小3D程序的主循环包含的用户逻辑和引擎逻辑 根据用户逻辑,给出用例图 设计架构,给出架构视图 分析"基础设施层"的&q…
目录 上一篇博文 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文"限界上下文 实现"初始化所有Shader"限界上下文 实现用户代码并运行测试 大家好,本文根据领域驱动设计的成果,实现了init API. 上一篇博文 从0开发3D引擎(十):使用领域驱动设计,从最小3D程序中提炼引擎(第二部分) 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文&q…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题.整个过程大概是这样的,开发团队和领域专家一起通过 通用语言(Ubiquitous Language)去理解和消化领域知识,从领域知识中提取和划分为一个一个的子领域(核心子域,通用子域,支撑子域),并在子领域…
Martin Fowler在<企业应用架构模式>一书中写道: I found this(business logic) a curious term because there are few things that are less logical than business logic. 初略翻译过来可以理解为:业务逻辑是很没有逻辑的逻辑. 的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的.这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解.而在具体编码实现…
DDD(Domain-Driven Design) 领域驱动设计 1. DDD(Domain-Driven Design)是什么? DDD是Eric Evans在2003年出版的<领域驱动设计:软件核心复杂性应对之道>(Domain-Driven Design: Tackling Complexit…
原文:领域驱动设计(DDD)的实践经验分享之持久化透明 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到面向对象设计和领域驱动设计是两个不同层次的东西.你会面向对象并不代表你就会面向领域设计.后来,我无意中发现了一个网站,http://www.jdon.com,这个网站中所包含的知识在我看来非常深入,而且基本上都包含了现在一些最新的设计思想.我看了几篇文章后渐渐感觉到领域驱动设计并不是我想象中那么简单…
我们使用领域驱动设计(英文缩写为DDD)的方法来设计引擎,在引擎开发的过程中,领域模型会不断地演化. 本文介绍本系列使用的领域驱动设计思想的相关概念和知识点,给出了相关的资料. 上一篇博文 从0开发3D引擎(七):学习Reason语言 下一篇博文 从0开发3D引擎(八):准备"搭建引擎雏形" 概览 下面的资料粗略地介绍了DDD的相关知识点: 领域驱动设计学习输出 领域驱动设计(DDD)部分核心概念的个人理解 系统学习资料 相关资料为: DDD理论学习系列 为什么用DDD 参考领域驱动设…
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对象 的对应关系 + 路由分发 _registry = { } 2. 知识点 inclusion_tag yield urlencode _meta.model_name _meta.app_label 深浅拷贝 QueryDict对象默认不可改 _mutable=True 生成器 路由分发: - i…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 微服务不是泥球小单体,而是具备更加清晰职责边界的完整一体的业务功能服务.领域驱动设计的思想通过Domain的功能域设计,可以把核心功能与支撑功能很好的区分开.而在MVC的设计模式尝尝是把所有的:数据服务.定义的属性类.提供的功能都在一条线上,这样是非常快速的开发方式但在做微服务部署时候确很麻烦. 按照不同的业务场景可能设计出软件在数据库使用上会有单库单表或者分库分表,如果是一个…