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 (二十一、二十二) 第三章简介&整理前的准备
整理前的准备 到目前为止,我们积攒了很多示例了,并且每个示例也都贯彻了最的约定和规则. 在上一篇的小结也说了一个比较新的东西:编程体验优化. 在之前我们还积攒了一个问题:代码重复问题. 我们可是忍住整 ...
随机推荐
- java 为什么重写equals一定要重写hashcode?
前言 最近复习,又看到了这个问题,在此记录和整理,通过例子来说明这种情况的原因,使大家可以清晰明白这个问题. 初步探索 首先我们要了解equals方法是什么,hashcode方法是什么. equals ...
- Tensorboard详解(下篇)
间提壶华小厨 1 Tensorflow监控指标可视化 除了GRAPHS栏目外,tensorboard还有IMAGES.AUDIO.SCALARS.HISTOGRAMS.DISTRIBUTIONS.FR ...
- C# 添加、修改、删除PPT中的超链接
本文介绍通过C# 编程如何在PPT幻灯片中添加超链接的方法,添加链接时,可给文本或者图片添加超链接,链接对象可指向网页地址.邮件地址.指定幻灯片等,此外,也可以参考文中编辑.删除幻灯片中已有超链接的方 ...
- Jedis连接外部Redis
Jedis连接外部Redis 1.在服务器开放端口redis默认6379,如果有宝塔面板则还需要在宝塔放行6379端口 2.修改redis.conf 注释掉 绑定IP 127.0.0.1 # bind ...
- MATLAB 图像打开保存
一.图片读取保存 (1)读取 clear all [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); if isequal ...
- jQuery学习笔记01
1.jQuery介绍 1.1什么是jQuery ? jQuery,顾名思义,也就是JavaScript和查询(Query),它就是辅助JavaScript开发的js类库. 1.2 jQuery核心思想 ...
- 利用data文件恢复MySQL数据库
背景:测试服务器 MySQL 数据库不知何种原因宕机,且无法启动,而原先的数据库并没有备份,重新搭建一个新服务器把原data 复制出来 进行恢复 1 尽量把原data复制出来(一个都不要少以防意外 其 ...
- Centos8中安装JDK1.8
在这里是通过yum命令进行安装的 安装前检查是否安装了jdk # java -version 如果使用 yum 安装的 jdk,请使用下面命令卸载 yum -y remove java-1.8.0-o ...
- chrome浏览器的json格式化插件
JSON-Handle 下载地址: http://jsonhandle.sinaapp.com/ 插件下载后,在浏览器输入:chrome://extensions/ 将下载后的文件 ...
- js 实现浏览器全屏效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...