大家好,我现在开始写书了,书名为:《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. 处理时间转换不正确-Springboot、springclound、feign、http请求

    SpringBoot.SpringCloud.feign.前后端时间解析不正确时,我们可以自定义HttpMessageConverters,以达到我们希望的结果 参考链接:https://www.cn ...

  2. edge 浏览器部分功能

    模拟打印情况的调试

  3. 查看Linux 日志

    # 直接定位到第100行 less +100g xx.log   # 定位到最后一行 less +GG xx.log   # 定位到第100个字节的位置 less +100P xx.log   # 直 ...

  4. 基于mysql纯java的智能题库(后期填写注释)

    1 package controller; 2 3 import admin.entity.Admin; 4 import admin.service.AdminService; 5 import a ...

  5. vue 3.0 引入swiper 8 direction不生效

    需要手动给元素高度  <swiper         class="my-swiper"         :modules="modules"       ...

  6. linux which及软硬链接使用

    which查看系统命令位置,which vi /bin #放置系统一般命令 /sbin#放置系统管理相关命令 /user/bin /user/sbin 软链接 ln -s 源文件 链接文件 #1.如果 ...

  7. mysql数据库如何支持emoji表情

    mysql数据库的默认字符集utf8,只能存储3个字节的数据.标准的emoji表情是4个字节,在APP端输入 保存表情是用户的普遍需求和行为. 插入数据库报错如下: java.sql.SQLExcep ...

  8. layui中文离线文档PDF下载

    失效链接处理 layui中文离线文档 PDF 下载 本站整理下载: 链接:https://pan.baidu.com/s/18FbllhLEezXTn-y1eiiNKg  提取码:nuqz      ...

  9. 06 HBase安装与伪分布式配置

    1.下载压缩文件 2.解压 3.修改文件夹名 4.修改文件夹权限 5.配置环境变量 6.伪分布式配置文件 7.启动HDFS,启动Hbase 8.进入shell界面 9.停止Hbase,停止HDFS运行

  10. unittest "ResourceWarning: unclosed <socket.socket fd=864, family=AddressFamily.AF_INET..." 解决办法...

    将代码封装,并使用unittest调用时,返回如下警告: E:\intall\python-3.7.4-amd64\lib\unittest\suite.py:84: ResourceWarning: ...