目录 上一篇博文 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文"限界上下文 实现"初始化所有Shader"限界上下文 实现用户代码并运行测试 大家好,本文根据领域驱动设计的成果,实现了init API. 上一篇博文 从0开发3D引擎(十):使用领域驱动设计,从最小3D程序中提炼引擎(第二部分) 继续实现 实现"DirectorJsAPI.init" 实现"保存WebGL上下文&q…
目录 上一篇博文 下一篇博文 前置知识 回顾上文 最小3D程序完整代码地址 通用语言 将会在本文解决的不足之处 本文流程 解释本文使用的领域驱动设计的一些概念 本文的领域驱动设计选型 设计 引擎名 识别最小3D程序的顶层包含的用户逻辑和引擎逻辑 根据对最小3D程序的顶层的分析,用伪代码初步设计index.html 识别最小3D程序的初始化包含的用户逻辑和引擎逻辑 识别最小3D程序的主循环包含的用户逻辑和引擎逻辑 根据用户逻辑,给出用例图 设计架构,给出架构视图 分析"基础设施层"的&q…
目录 上一篇博文 本文流程 回顾上文 解释基本的操作 开始实现 准备 建立代码的文件夹结构,约定模块文件的命名规则 模块文件的命名原则 一级和二级文件夹 api_layer的文件夹 application_layer的文件夹 domain_layer的文件夹 infrastructure_layer的文件夹 index.html实现调用引擎API 用伪代码实现index.html 实现"CanvasJsAPI.setCanvasById" 实现"GraphicsJsAPI.s…
作者:小傅哥 博客: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. 初略翻译过来可以理解为:业务逻辑是很没有逻辑的逻辑. 的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的.这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解.而在具体编码实现…
简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,ABP依赖于领域驱动设计这门方法论,由于其门槛较高,给使用者带来了不少理解上的难度.尤其是三层架构对.NET开发者影响太深,有时很难对领域驱动设计产生直观的理解. 在本文中,打算从传统的简单三层架构谈起,介绍一个实际场景下的三层业务逻辑实现,然后再与领域驱动设计中的对应实现形成对比,以便让开发者形成直观…
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…