您需要 登录 才可以下载或查看,没有账号?注册
x
【脚本命名规范】 一、脚本命名规范 程序脚本命名应遵循驼峰式命名法,即开头字母大写,后续连续单词首字母大写。脚本命名一定要能表明脚本的含义,这样开发者能在很短时间内识别该脚本的功能,达到快速上手开发的目的。
二、变量命名规范 变量命名也应该遵循驼峰式命名法,在此基础上,对于全局静态常量,则命名首字母大写;对于全局私有变量,以下划线‘_’开头;对于全局公有变量,应该以m字母开头,以下划线‘_’作为连接符,连接变量名称;如下图:
变量命名应该以带有变量含义的相关单词命名,切记勿出现类似a,b,c,d,i等等单字母的命名,不便于后续迭代。 三、方法命名规范 方法命名也应该遵循驼峰式命名法,且开头首字母须大写,方法名称应能表明方法的含义。 【脚本注释规范】 一、脚本功能描述 开发者在创建一个脚本后,首先应为该脚本添加功能描述注释,清楚描述该脚本的功能和作用,最好加上开发者名称(便于其他参与开发者追溯开发情况),以及开发Unity版本信息(不同版本的Unity对于不同C#脚本的API会有区别)。 二、方法注释 对于基类中的方法,应该描述清楚其作用含义: 对于具体方法,如果方法较为复杂,可以将其尽量描述清楚,方便后续迭代。 【脚本开发规范】 一、变量应该定义全局还是局部 通常,全局变量,在底层解释器执行时,会将其存放至堆内存中,而局部变量如果未存在外在引用的话,会存放至栈内存中。存放于堆内存,需要垃圾回收器不定时的进行内存回收,这就涉及到GC问题,频繁GC会降低程序性能,因此在定义一个变量时需要考虑清楚该变量的作用域。 [size=12.0000pt]二、禁止硬编码 所谓硬编码,即将一些可变因素强行注入至一段程序中,如下图中,就是一个典型的硬编码例子: 对于上述书写,假如项目很大,类似的字段会不计其数,这些字符串数据会分布在几十甚至上百个类文件当中,如果某天客户需要修改其中部分信息,那么这些数据光定位找到就需要花费一些时间,如果反复修改,繁琐度可想而知,因此硬编码是一个很不规范的写法,正规开发应该是将这些信息统一规整至一个类文件中,这样便于管理,如果客户频繁修改部分数据,也能很快定位到,如下图: 再比如下图更复杂的计算,需要反复思考测试修改算法,以达到最优解,如果将可变因素写死至算法中,每次修改算法,将会有很多处需要不断修改,繁琐度可想而知,所以去除硬编码才能将我们的时间和繁琐度下降至最低: [size=12.0000pt]三、模块划分 程序开发,通常会将一个项目的多个功能,按照功能分布至不同文件夹中,这就是划分模块。划分模块十分重要,程序因此出现了各种架构设计。好的模块划分,会使程序开发事半功倍。如下图的一些模块,我们能一眼大概猜出每个模块的功能,然后根据模块去定位脚本,开发效率自然提升。 [size=12.0000pt]四、基于接口开发原则 基于接口开发,一般是基于模块化的程序划分。假如一个项目多人开发,每人负责一部分,这就涉及到模块开发,对于大型的程序开发,一个开发者不可能也不是必须完全读懂另外一个开发者所开发出的全部功能逻辑,但是会涉及到功能的使用问题,如何能够快速使用,便引出了基于接口开发。 如下图,对于一个音频与歌词同步的功能,在实现过程中还是比较复杂的,涉及的脚本文件会较多,但是开发者在开发类似功能时,应考虑到其他开发者的功能使用难易问题,也就是作为开发者,开开发该功能完成后,应该为其他开发者暴露一个接口,其他开发者只需调用该接口,就能快速完成新功能的接入使用。 比如以上功能,第三方开发者在使用时,只需调用该接口,即可使用。 因此,基于模块化的接口开发,是开发者最重要的必备技能之一。举其他例子,通常第三方SDK的开发,都是基于此原则,比如AR使用、第三方平台分享、微信支付等等功能的接入,作为第三方开发者无需知道SDK的内部实现过程,调用接口即可完成该功能的快速使用。
|