《3D编程模式》写书-第1天记录
大家好,我现在开始写书了,书名为:《3D编程模式》
我会在本系列博文中记录写书的整个过程,感谢大家支持!
这里是所有的的写书记录:
《3D编程模式》写书记录
为什么写书
去年我突发奇想,第一次发布了一个3D编程模式:依赖隔离模式。发布该文章后,陆续有两个编辑与我联系写书,不过我都暂时搁置了。过了大概一年后,我又突然开了“3D编程模式”的线上课程。为了备课,我就一口气提炼出了几个新的3D编程模式,完成了相关的代码和UML。然后我想干脆出书算了,于是我就与之前联系我的编辑沟通了一下,很顺利地就立项了,于是就开始了本书正式的写作。
鉴于之前写书的经验,我刻意控制了该书的篇幅,保持精简。反正后面可以通过再版的形式增加内容。
本书介绍
本书罗列了我从自己的实战项目中提炼出来的关于3D编程(主要包括“3D引擎/游戏引擎”、“编辑器”开发)的各种编程模式
我有什么积累
我已经在Web3D领域有1万小时的开发经验,主要工作包括Web3D引擎开发、编辑器开发
我的代表作为:
我为4家公司提供了3D引擎和编辑器的技术顾问、咨询的服务
更多关于我的成果请详见:如何做知识沉淀?我有什么知识沉淀?
同类型的书
本书跟下面几本书类似:
相比之下,本书的特点是提出了新的编程模式,适用于3D引擎、游戏引擎、编辑器开发
目前进度
我已经发布了第一个模式的样稿:
依赖隔离模式
我已经完成了第一轮的写作,完成了所有模式的代码、UML
技术栈
- 使用Typescript和Rescript作为编程语言(以Typescript为主)
- 使用WebGL作为3D图形API
特色
- 使用函数式编程范式
- 每个模式相互独立,用户可以选择性的阅读,从而降低学习成本
- 模式是从实际开发经验中提炼而来,实战性强
目标读者
- 3D引擎、游戏引擎开发者
- 编辑器开发者
- Web3D开发者
- 函数式编程的爱好者
能给读者带来什么收益?
- 学习适用于函数式编程的设计原则
- 学习3D引擎和编辑器的编程模式
- 可以直接应用案例代码到项目中
目录
第一部分:再看设计原则
结合项目的实战应用案例,回顾经典的设计原则
- 单一职责原则(SRP)
- 依赖倒置原则(DIP)
- 接口隔离原则(ISP)
- 迪米特法则(LoD)
- 开闭原则(OCP)
第二部分:提出新的设计原则
根据自己项目经验,提出新的适用于3D编程领域的设计原则
- 数据优先原则
- 纯组合原则
第三部分:编程模式
根据自己项目经验,提出新的编程模式
- 依赖隔离模式
- 积木模式
- 管道模式
- ECS模式
- 多线程模式
- 撤销重做模式
- 拼接模式
与我交流
欢迎大家加我的QQ群交流:

《3D编程模式》写书-第1天记录的更多相关文章
- 3D编程模式:依赖隔离模式
大家好~本文提出了"依赖隔离"模式 系列文章详见: 3D编程模式:开篇 本文相关代码在这里: 相关代码 目录 编辑器需要替换引擎 设计意图 定义 应用 扩展 最佳实践 更多资料推荐 ...
- 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...
- 开始3D编程前需注意的十件事
http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...
- Java多线程编程模式实战指南之Promise模式
Promise模式简介(转) Promise模式是一种异步编程模式 .它使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作.等 ...
- MVC编程模式
MVC编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表) ...
- 游戏编程模式KeyNote
[游戏编程模式KeyNote] 1.命令模式. 重做在游戏中并不常见,但重放常见.一种简单的重放实现是记录游戏每帧的状态,这样它可以回放,但那会消耗太多的内存.相反,很多游戏记录每个实体每帧运行的命令 ...
- 近中期3D编程研究目标
近几年一直在用业余时间研究3D编程,研究的中期目标是建立一个实用的开源3D编程框架.3D编程技术最直接的应用是开发游戏,所以3D编程框架也就是3D游戏开发框架.在我看来,游戏是否好玩的关键是能否为玩家 ...
- [.net 多线程]异步编程模式
.NET中的异步编程 - EAP/APM 从.NET 4.5开始,支持的三种异步编程模式: 基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern) 异 ...
- 跟Evan学Sprign编程思想 | Spring注解编程模式【译】
Spring注解编程模式 概况 多年来,Spring Framework不断发展对注解.元注解和组合注解的支持. 本文档旨在帮助开发人员(Spring的最终用户以及Spring Framework和S ...
- ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]
<诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...
随机推荐
- 解决linux时间转换为yyyy-MM-dd
linux时间显示为:Tue Nov 30 09:33:04 CST 2021 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd ...
- LINUX配置固定IP以及DNS
配置固定ip #vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=no ...
- tex基础
Tex中输入空格以及换行 1. 使用\ 表示空格以及调整空格的大小quad空格 a \qquad b 两个m的宽度quad空格 a \quad b 一个m的宽度 ...
- Quartus II 18.x Modelsim仿真设置
Quartus II 18.x Modelsim仿真设置 本节内容介绍在如何在QuartusII 应用环境下设置modelsim仿真选项,并进行波形仿真.下面以四位乘法器为例介绍. 在QuartusI ...
- pytorch卷积模块
nn.Conv2d() 常用的参数有in_channels,out_channels,kernel_size,stride,padding; 除此之外还有参数dilation,groups,bias ...
- C语言初级阶段7——指针4
C语言初级阶段7--指针4 结构体指针 1.概念:所谓的结构体指针就是指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针.如果把一个结构体变量的其实地址存放在一个指针变量中,那么这 ...
- 水印 canvas 实现
let str = info; let c = document.createElement("canvas"); document.body.appendChild.c; let ...
- Q:oracle19c 如何重建vm_concat函数
没有wm_concat是因为oracle12c数据库中废弃了wm_concat函数 --–登录dba用户sys权限,为wmsys用户创建可用的wm_concat函数,依次执行以下语句 第一步 定义对象 ...
- 磊磊零基础打卡算法:day16 c++ Trie树
5.19 Trie树: 用处:快速的查找和高效存储字符串集合的数据结构. 类似如此的查找,存储 其简单的两个操作:插入和删除 插入: void insert(char str[]) { int p; ...
- SQL Server链接数据库
有时候我们希望在一个sqlserver下访问另一个sqlserver数据库上的数据,或者访问其他oracle数据库上的数据,要想完成这些操作,我们首要的是创建数据库链接. 数据库链接能够让本地的一个s ...