Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因
我们在整理阶段解决了一些意外的问题。但是这些问题仅仅只是被解决而已,我们并没有去思考过这些问题是为什么产生的?以及在以后我们如何去避免这些问题的产生?
方法所在类的命名问题,最后我们通过方法分类解决了,并且学习了类的第一作用:方法的集合。
解决之后导致了大量的弃用代码,为了标记弃用代码,我们又简单学习了 System.Obselete 这个 API。
这样的意外问题真是好啊,可以让我们一下学习很多东西。不过如果在工作中或者做项目中全是意外问题,而身边又没人知道这么解决,那么每天肯定都会过得非常辛苦。
那么究竟是什么导致我们类的命名问题呢?
笔者的答案就是知识面少、知识量少、加上经验少。不过这个答案,只是一个设定而已。假定读者和笔者都不知道类的第一作用,并且是刚入门不久的 Unity 开发者,刚入门不久之后开发者肯定知识面少经验也少这是很正常的。所以按照这个设定走剧本的话,那么遇到这么多意外的问题就是很自然的事情。
知识面少
知识面少,很容易理解,就是如果只会写 MenuItem,那么可以自己写出来示例一到示例七的代码。如果会好好运用访问权限,并且会设计方法,那么可以自己写出来示例八到示例十三的代码。如果知道类可以是方法的集合,那么就不会遇到这个方法所在类命名的问题了。
但是这个类可以是方法的集合这个观点,是笔者的观点,是直接在文章告诉大家的,是笔者产生的知识。虽然我们都知道类可以封装、继承、多态,并且还有静态类还能有访问权限甚至类可以进行拆分实现(partial),而且还可以用静态 this 扩展。但是对于方法所在类命名这个问题,我们只要知道类可以是方法的集合这个知识就可以解决了。当然在 C# 中结构体 (struct) 也可以是方法的集合。
知识量少
到目前为止呢,我们积累了 13 个示例,而又通过这 13 个示例学习了很多知识,这些就是我们的知识量总和,很少了。
经验少
经验少,就是解决过的问题少,不过这是很正常的。按照设定,我们是第一次搭建库和框架,在这方面经验完全是零,所以说经验少也没有错。
不过没关系,这些呢都有应对策略的 :
- 知识面少,主要是遇到的问题类型少,在本专栏的后续,会把笔者在搭建框架的过程中解决的所有能扩展知识面的问题都一个不落的进行分析解决。
- 知识量少,我们搭建知识库的目的,就是为了多增加知识量。
- 经验少,解决策略同 1.知识面少。
我们只要多解决一个类的命名问题,我们的知识面就广了一点,知识量就多了一点,经验就多了一点。
不过到此,还没有回答,如何避免”方法所在类命名“的这种问题。
要如何避免,这种问题遇到一次下次就知道如何解决了。那就多遇到这样的问题,这样在进行编码的时候就会有更多的设计工具来避免这样的问题。
当然也可以不用每次都遇到问题才去接触新的东西,可以先知道个大概的方向,根据这个方向去学习新的东西,在学习新的东西的时候去思考下能用在库的什么地方,用了是不是会更好?这样思考之后,在某一天遇到适用 的场景的时候,自然就会想到学到的东西了。
而学到的东西要记录下来,我们的知识库,有一个功能就是把新的知识点记录下来。
类似的问题,其实还有“产生了很多弃用的代码”等,这些是问题诞生的背后原因是和这个问题是一样的。
产生了很多弃用的代码,本质上是徒增了很多工作量。但是任何对代码的整理都离不开工作量的增加的,不过笔者认为这点工作量还是值得的。
小结
通过问题分析,我们得到了一种全新的学习思路。以往我们是为了解决问题才去接触新的知识,新的 API,并把这个新的知识和 API 收录到我们示例里。而现在的思路呢,则是先学习新的东西,学习之后去思考,新的东西,能否用在我们的库中?用了是不是会让库变得更好?
而这是另一个学习思路。前者是被动接触新东西,是遇到了问题才去学习,后者是主动学习,学习之后再思考他的适用场景。两种各有优劣,前者的学习效率会比较高,就是会在最短的时间内学习最需要学的内容,缺点是一般会学得比较浅。后者是主动学习,学习之后知识不一定能够解决问题,但是呢,如果思考知识的适用场景,会让我们更深刻地理解知识。两者缺一不可。
以上这两点,就是今天这篇文章的核心。
- 根据问题去学习,并收集。
- 主动学习,并思考适用场景。
今天的内容就这些,我们在下篇接着解决问题。
转载请注明地址:凉鞋的笔记:liangxiegame.com
更多内容
QFramework 地址:https://github.com/liangxiegame/QFramework
QQ 交流群:623597263
Unity 进阶小班:
- 主要训练内容:
- 框架搭建训练(第一年)
- 跟着案例学 Shader(第一年)
- 副业的孵化(第二年、第三年)
- 权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro
- 主要训练内容:
关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。
Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因的更多相关文章
- Unity 游戏框架搭建 2019 (二十五) 类的第一个作用 与 Obselete 属性
在上一篇我们整理到了第七个示例,我们今天再接着往下整理.我们来看第八个示例: #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; ...
- Unity 游戏框架搭建 2019 (二十六) 第一轮整理完结
昨天呢我们把第八个示例整理完了.整理之后学习了类的第一作用:方法的集合,还有 Obselete 这个 API.并且在进行整理的时候贯彻了我们新的约定和规则:先确保功能有效,再去做变更和删除. 今天我们 ...
- Unity 游戏框架搭建 2019 (三十九、四十一) 第四章 简介&方法的结构重复问题&泛型:结构复用利器
第四章 简介 方法的结构重复问题 我们在上一篇正式整理完毕,从这一篇开始,我们要再次进入学习收集示例阶段了. 那么我们学什么呢?当然是学习设计工具,也就是在上篇中提到的关键知识点.这些关键知识点,大部 ...
- Unity 游戏框架搭建 2019 (二十七、二十八)弃用的代码警告解决&弃用的代码删除
在前两篇,我们把所有的示例重头到尾整理了一遍. 当前的状态如下: 要做的事情: (完成) 备份:导出文件,并取一个合理的名字. 遗留问题: (完成) 第八个示例与之前的示例代码重复,功能重复. (完成 ...
- # Unity 游戏框架搭建 2019 (三十四、三十五) 9 ~ 10 示例整理
第九个示例 目前代码如下: using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace QFramework { p ...
- Unity 游戏框架搭建 2019 (二十三) 备份与版本号&危险的操作
先列出上一篇的总结: 要做的事情: 备份:导出文件,并取一个合理的名字. 遗留问题: 第八个示例与之前的示例代码重复,功能重复. 约定和规则: 每个示例在 QFramework 目录下创建一个文件夹, ...
- Unity 游戏框架搭建 2019 (二十七) 弃用的代码警告解决
在前两篇,我们把所有的示例重头到尾整理了一遍. 当前的状态如下: 要做的事情: (完成) 备份:导出文件,并取一个合理的名字. 遗留问题: (完成) 第八个示例与之前的示例代码重复,功能重复. (完成 ...
- Unity 游戏框架搭建 2019 (四十四、四十五) 关于知识库的小结&独立的方法和独立的类
在上一篇,我们完成了一个定时功能,并且接触了 Action 和委托.lambda 表达式这些概念. 到目前为止,我们的库作为知识收录这个功能来说,已经非常好用了,由于使用了 partial 关键字,所 ...
- Unity 游戏框架搭建 2019 (二十一、二十二) 第三章简介&整理前的准备
整理前的准备 到目前为止,我们积攒了很多示例了,并且每个示例也都贯彻了最的约定和规则. 在上一篇的小结也说了一个比较新的东西:编程体验优化. 在之前我们还积攒了一个问题:代码重复问题. 我们可是忍住整 ...
随机推荐
- webapck学习笔记
该笔记是博主学习webpack课程时做的笔记,里面加了一些自己的一些理解,也踩了一些坑,在笔记中基本上都更正过来了,分享给大家,如果发现什么问题,望告知,非常感谢. 1. 为什么要学webapck 为 ...
- Hive支持的文件格式和压缩格式及各自特点
Hive中的文件格式 1-TEXTFILE 文本格式,Hive的默认格式,数据不压缩,磁盘开销大.数据解析开销大. 对应的hive API为:org.apache.hadoop.mapred.Text ...
- Git提交代码的流程——新手适用
pull:是下拉代码,相等于将远程的代码下载到你本地,与你本地的代码合并push:是推代码,将你的代码上传到远程的动作完整的流程是: 第一种方法:(简单易懂) 1.git add .(后面有一个点,意 ...
- C语言自学网官方微信相关功能使用方法
一.微信扫描关注微信公众账号(C语言自学网),我们会不定时更新关于编程的技术文章和相关资讯,了解大佬的成长之路. 二.回复“C语言学习资料”,将显示由我们精心整理的全套C语言学习资料的下载地址及链接. ...
- Tensorboard详解(下篇)
间提壶华小厨 1 Tensorflow监控指标可视化 除了GRAPHS栏目外,tensorboard还有IMAGES.AUDIO.SCALARS.HISTOGRAMS.DISTRIBUTIONS.FR ...
- ArcGIS Engine的安装
1.双击安装文件“setup.exe”. 2.点击“Next”. 3.选择“ I accept the license agreement”,点击“Next”. 4.选择“Complete”,点击“N ...
- ESPCMS-Seay自动加手工代码审计
ESPcms代码审计 源码下载地址:http://yesky.91speed.org.cn/sw/180001_190000/rar/espcms_utf8_5.4.12.05.14.rar 1.自动 ...
- 数据分析_numpy_基础1
数据分析_numpy_基础1 创建数组 方法 说明 np.array( x ) 将输入数据转化为一个ndarray| np.array( x, dtype ) 将输入数据转化为一个类型为type的nd ...
- JS函数详解
什么是函数呢? 对于JS来说,我们可以把函数理解为任意一段代码放在一个盒子里,在我们想要让这段代码执行的时候,直接执行这个盒子里的代码就行.专业一点来讲:js函数就是由事件驱动的可执行课重复只用的代码 ...
- 多源第k短路 (ford + 重新定义编号) / 出发点、终点确定的第k短路 (Spfa+ 启发搜索)
第k短路 Description 一天,HighLights实在是闲的不行,他选取了n个地点,n各地点之间共有m条路径,他想找到这m条路径组成的第k短路,你能帮助他嘛? Input 第一行三个正整数, ...