《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 等.虽然这些框 ...
随机推荐
- Apache HTTPD 多后缀解析漏洞复现(Kali)
通过vulhub靶场进行复现操作 1.首先搭建靶场环境(采用Kali) cd /vulhub/httpd/apache_parsing_vulnerability //进入对应漏洞目录,具体 ...
- font-awesome vue/react 通用的图标
在开发项目中遇到了矢量图标 一套绝佳的图标字体库和CSS框架 vue 中引入font-awesome 直接npm install font-awesome --save 就可以了,里边包含了样式和字体 ...
- 20200921--同行列对角线的格(奥赛一本通P89 2 二维数组)
输入三个自然数n,i,j(1<=i<=n,1<=j<=n),输出在一个n*n格的棋盘中(行列均从1开始编号),与格子(i,j)同行,同列,同一对角线的所有格子的位置. 如:n= ...
- Ajax属性
如何创建一个 Ajax <script> window.onload=function(){ 1)创建一个异步调用对象 va ...
- iview的表格 render
view的表格 render 先看一下效果图 效果题 代码如下 render render:(h,params)=>{} //h指dom对象,params指当前每一行数据(param ...
- PHP如何在两个大文件中找出相同的记录?
1.引言 给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿), 机器内存限制100M,该如何找出其中相同的记录? 2.思路 处理该问题的困难主要是无法将这海量数据一次性读进内存中 ...
- nRF52832出现“APP_UART_COMMUNICATION_ERROR”的错误的问题
在调试nRF52832的uart的过程中,发现调试信息会时不时打印"APP_UART_COMMUNICATION_ERROR"这个错误,看上去似乎毫无规律.查看SDK的相关说明,可 ...
- Spyglass CDC工具使用(二)
最近一直在搞CDC (clock domain crossing) 方面的事情,现在就CDC的一些知识点进行总结. 做CDC检查使用的是Spyglass工具.以下内容转载自:Spyglass检查之CD ...
- find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
- jsp执行流程
Jsp执行流程 jsp -----java ----class E: \student\apache-tomcat-8.5.30\work\Catalina\localhost\JspProject ...