“我们如何证明,通过遵循“代码整洁之道”(CleanCode)就可以编写更多的代码呢?”当人们试图将“代码整洁之道(CleanCode)”的原则应用于现有的代码库时,我经常会问这个问题。我认为这是合情合理的。当我们开始重构遗留代码时,通常会将内容提取到较小的方法中。然后再将方法提取到类中。很快,我们可能就能感觉到原来30行的方法现在已经分散在不同的类中。我们想知道的是:这在实际上是否是更容易维护了呢。也许我们是一个小团队。也许我们必须支持我们继承的一个相对较大(并且没有文档记录的)的代码库。寻求代码可维护性是一件好事。错误在于,认为代码可维护性与代码行数(linesofcode,LOC)相关。
「和我一起学XXX」是我2023年的一个新企划,目的是向读者(也包括未来的自己)介绍我正在学习的某项新技术。文章会通过长期反复迭代的方式保持其内容的新鲜度。文章有较大内容更新时,会在文章开头进行更新时间说明(由于时间精力有限,更新的内容只能保障少数几个平台的同步,请见谅)。1.什么是Three.jsThree.js是一个基于WebGL的3DJavaScript开源库(遵循MIT协议),它使JavaScript开发者能够更方便地在Web应用中创建3D场景。请注意该定义的如下部分:基于WebGL:WebGL是一种3D绘图协议,对于开发者而言,它是一组更底层的绘图API,它负责绘制点,线与三角形,使
「和我一起学XXX」是我2023年的一个新企划,目的是向读者(也包括未来的自己)介绍我正在学习的某项新技术。文章会通过长期反复迭代的方式保持其内容的新鲜度。文章有较大内容更新时,会在文章开头进行更新时间说明(由于时间精力有限,更新的内容只能保障少数几个平台的同步,请见谅)。1.什么是Three.jsThree.js是一个基于WebGL的3DJavaScript开源库(遵循MIT协议),它使JavaScript开发者能够更方便地在Web应用中创建3D场景。请注意该定义的如下部分:基于WebGL:WebGL是一种3D绘图协议,对于开发者而言,它是一组更底层的绘图API,它负责绘制点,线与三角形,使
序: 又是很久没出随笔文章了,一篇文章有时候整理一天,实在是抽不出来时间。 最近在回顾几年前的项目时,发现这个智慧三维消防可视化项目很有回顾价值,索性就拿出来讲讲。 首先,我们要知道消防里的知识,不是简简单单的几个灭火器,烟感报警器这么简单的,消防是自有一套完整体系的,光是消防相关的产业年产值就有几千个亿。而我们普通非专业人士常见的消防设备只是消防产业中的皮毛。 单是消防系统就可以分为很多类,常见的有消防给水系统、消火栓系统、自动喷水灭火系统、气体灭火系统、防烟排烟系统、火灾自动报警系统等等。这些系统内部的组成结构又各有不同。每个系统里就有几十个甚至上百个不同的消防设备。比如我们常见的
序: 又是很久没出随笔文章了,一篇文章有时候整理一天,实在是抽不出来时间。 最近在回顾几年前的项目时,发现这个智慧三维消防可视化项目很有回顾价值,索性就拿出来讲讲。 首先,我们要知道消防里的知识,不是简简单单的几个灭火器,烟感报警器这么简单的,消防是自有一套完整体系的,光是消防相关的产业年产值就有几千个亿。而我们普通非专业人士常见的消防设备只是消防产业中的皮毛。 单是消防系统就可以分为很多类,常见的有消防给水系统、消火栓系统、自动喷水灭火系统、气体灭火系统、防烟排烟系统、火灾自动报警系统等等。这些系统内部的组成结构又各有不同。每个系统里就有几十个甚至上百个不同的消防设备。比如我们常见的
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助建模首先我们需要一些贴图素材贴图素材一般可以在3dtextures网站上找到,这里我找了2份,包含了墙的法线贴图和潮湿地面的法线、透明度、粗糙度贴图通过kokomi.AssetManager将贴图素材一次性全部加载出来,将它们应用到Mesh上,加上基本的环境光照,即可完成最基本的建模//光照constpointLight1=newTHREE.PointLight(config.color,0.5,17,0.8);pointLight1.position.set(0,2,0);this.scene.add(pointLight1);..
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助建模首先我们需要一些贴图素材贴图素材一般可以在3dtextures网站上找到,这里我找了2份,包含了墙的法线贴图和潮湿地面的法线、透明度、粗糙度贴图通过kokomi.AssetManager将贴图素材一次性全部加载出来,将它们应用到Mesh上,加上基本的环境光照,即可完成最基本的建模//光照constpointLight1=newTHREE.PointLight(config.color,0.5,17,0.8);pointLight1.position.set(0,2,0);this.scene.add(pointLight1);..
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前段时间接触了Three.js后,试着用他加载了一些模型three.js初体验简陋的了解了一下three.js的相关使用,并且写下了第一篇文章。但是过后还是对很多一知半解,作为不会建模且目前没有接触到相关业务需求的开发,难道没有模型就什么都不会了吗?因此我觉得有必要来试试没有模型的情况下自己来构建场景,以便于加深理解。我在前端干工地,最后成果如下图。预览地址从图中可以看到,整个画面由以下构成地面房子天空下面就能一步步的构建这个场景。一、准备工作我这里的环境是vue3+vite,基本环境准备好后就要安装three.js的库,安装完成后就
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前段时间接触了Three.js后,试着用他加载了一些模型three.js初体验简陋的了解了一下three.js的相关使用,并且写下了第一篇文章。但是过后还是对很多一知半解,作为不会建模且目前没有接触到相关业务需求的开发,难道没有模型就什么都不会了吗?因此我觉得有必要来试试没有模型的情况下自己来构建场景,以便于加深理解。我在前端干工地,最后成果如下图。预览地址从图中可以看到,整个画面由以下构成地面房子天空下面就能一步步的构建这个场景。一、准备工作我这里的环境是vue3+vite,基本环境准备好后就要安装three.js的库,安装完成后就
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助建模首先我们需要一些贴图素材贴图素材一般可以在3dtextures网站上找到,这里我找了2份,包含了墙的法线贴图和潮湿地面的法线、透明度、粗糙度贴图通过kokomi.AssetManager将贴图素材一次性全部加载出来,将它们应用到Mesh上,加上基本的环境光照,即可完成最基本的建模//光照constpointLight1=newTHREE.PointLight(config.color,0.5,17,0.8);pointLight1.position.set(0,2,0);this.scene.add(pointLight1);..