《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 等.虽然这些框 ...
随机推荐
- Vant+小程序+购物车实例
图片实例,看是否是您所需要的喔.... 扫码小程序可看实例操作,有啥问题也可扫码加群,很希望可以帮助到你喔! HTML部分: <view class="cart&q ...
- cp 备份文件命令
cp -p system.sh ./bak2022/systecm.sh.bak_`date '+%Y%m%d'` (备份system.sh文件后缀以bak_年月日命令)cp -rf old copy ...
- eclipse项目右键属性java Build Path等丢失
https://www.cnblogs.com/IDECIDETODOIT/p/3906831.html https://zhidao.baidu.com/question/133415688.htm ...
- 十大经典排序之堆排序(C++实现)
堆排序 通过将无序表转化为堆,可以直接找到表中最大值或者最小值,然后将其提取出来,令剩余的记录再重建一个堆, 取出次大值或者次小值,如此反复执行就可以得到一个有序序列,此过程为堆排序. 思路: 1.创 ...
- greenDao基础用法(一)
1.配置 1.1 在 build.gradle(project) 中,加入这句 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // a ...
- Lua元表应用举例:配置表格转为Lua配置表
把配置表格.xlsx数据转为Lua配置表,其实就是把表格数据用Lua写一遍,这里的实现重点就是setmetatable设置元表. 以下以表格student_info.xlsx举例,展示对应Lua配置表 ...
- JQUERY选择器大全(转载)
在Web应用程序中,大部分的客户端操作都是基于对象的操作,要操作对象就必须先获取对象,jQuery提供了强大的选择器让我们获取对象.我人为地将jQuery选择器分为两大部分:选择对象和筛选条件.选择对 ...
- jmeter学习-性能指标、jmeter初识
一:性能测试的指标 1. 并发/并发数/并发用户数 狭义的并发:同一时间做相同的一件事 广义的并发:同一时间做不同事情,混合场景,对服务器来说的并发 性能测试,先做简单的狭义并发,在做广义并发:先做单 ...
- 一分钟教你分清各种光纤跳线接头(SC、ST、FC、LC、MPO)
一分钟教你分清各种光纤跳线接头(SC.ST.FC.LC.MPO) 市场上常见的光纤跳线有以下几种接头:SC.ST.FC.LC.MPO,相信很多入门者和小编一样,面对各种英文缩写也是我只认识他们,却不 ...
- System.IO.IOException:“找不到资源“views.buttonstylepage.xaml”。”
初学作为记录(事发场景): WPFDemo的程序集中,定义了一个Views文件夹,该文件夹放一些页面Page.UI层面的东西.用Frame空间做导航的时候,始终报一个错误 // System. ...