大家好,我现在开始写书了,书名为:《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天记录的更多相关文章

  1. 3D编程模式:依赖隔离模式

    大家好~本文提出了"依赖隔离"模式 系列文章详见: 3D编程模式:开篇 本文相关代码在这里: 相关代码 目录 编辑器需要替换引擎 设计意图 定义 应用 扩展 最佳实践 更多资料推荐 ...

  2. 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]

    ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...

  3. 开始3D编程前需注意的十件事

    http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...

  4. Java多线程编程模式实战指南之Promise模式

    Promise模式简介(转) Promise模式是一种异步编程模式 .它使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作.等 ...

  5. MVC编程模式

    MVC编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表) ...

  6. 游戏编程模式KeyNote

    [游戏编程模式KeyNote] 1.命令模式. 重做在游戏中并不常见,但重放常见.一种简单的重放实现是记录游戏每帧的状态,这样它可以回放,但那会消耗太多的内存.相反,很多游戏记录每个实体每帧运行的命令 ...

  7. 近中期3D编程研究目标

    近几年一直在用业余时间研究3D编程,研究的中期目标是建立一个实用的开源3D编程框架.3D编程技术最直接的应用是开发游戏,所以3D编程框架也就是3D游戏开发框架.在我看来,游戏是否好玩的关键是能否为玩家 ...

  8. [.net 多线程]异步编程模式

    .NET中的异步编程 - EAP/APM 从.NET 4.5开始,支持的三种异步编程模式: 基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern) 异 ...

  9. 跟Evan学Sprign编程思想 | Spring注解编程模式【译】

    Spring注解编程模式 概况 多年来,Spring Framework不断发展对注解.元注解和组合注解的支持. 本文档旨在帮助开发人员(Spring的最终用户以及Spring Framework和S ...

  10. ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]

    <诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...

随机推荐

  1. 人森第一个iOS app,写给我家baby的!纪念一下

    用python写的,对于非专业iOS开发来说,py是个不错的选择,使用beeware框架,感觉和写前端差不多

  2. goland 快捷键

    goland常用快捷键 Coldestmonth 2018-07-17 17:26:37 18067 收藏 14版权Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/-/ )Ctrl+D ...

  3. Day1.无敌难受且成功

    Markdown学习 标题 字体 ctrl+b.l.u.k加粗.斜体.下划线.超链接 引用 大于号+空格 分割线 三个*** ###都 图片 !+[]+() 英文输入法的符号 输入的图片路径可本地也要 ...

  4. KMP算法学习记录

    Foreword: 初学KMP匹配算法,不得其门,总感觉自己想,想不出来,看书上文字解释晦涩难懂.不能准确的捕捉算法设计时候的灵光和思路 .于是自己试着完成了一遍,现将过程记录下来,以供复习. Con ...

  5. jmeter 正则表达式提取关联参数

    自己也是初学,今天就正则表达式提取关联参数举几个例子. 理论: 1.提取单个字符串: 假如想匹配Web页面的如下部分:name = "file" value = "rea ...

  6. 【ES6】迭代器

    简介 在 JavaScript 中,迭代器是一个对象,它定义一个序列,并在终止时可能返回一个返回值. 更具体地说,迭代器是通过使用 next() 方法实现迭代器协议的任何一个对象,该方法返回具有两个属 ...

  7. mergehex tools安装

    (1)nRF5x command line tools包括Jlink驱动以及Nordic自己开发的一些命令行工具,具体包括Jlink驱动,nrfjprog,nrfutil以及mergehex等. 下载 ...

  8. 转:MyBatis 日志打印

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012666996/article/details/79106599Mybatis SQL语句控制台 ...

  9. C# IDataReader转换为Json

    1 /// <summary> 2 /// IDataReader转换为Json 3 /// </summary> 4 /// <param name="dat ...

  10. Linux基础——操作系统

    1. 操作系统(Operation System,OS) 操作系统作为接口的示意图 如果想在裸机上运行自己所编写的程序,就必须用机器语言书写程序如果计算机上安装了操作系统,就可以在操作系统上安装支持的 ...