代码规范
代码规范问题是这样的一个问题:高性价比,不被重视,实际做的时候难以做好
- 统一的规范有利于代码简洁,进而利于控制复杂度,关于复杂度可以参见之前的文章(http://blog.csdn.net/toughbro/article/details/48917125)
- 大家都会说需要有一个统一的规范,但是实际做起来,还是容易各做各的
- 实际上能遵从统一的代码规范,我在职业生涯里还没有遇到做的特别好的(真把这个当回事的)
但实际上在工作经历中,在局部小型团队(或者说常常一起工作的几个人)在代码规范上,以及在代码整洁度上做的比较好,这个对于项目的整体健康度是非常有益的–其中排名第一的益处,就是你一直在一个让人愉悦的代码中工作和阅读,这点很棒.
而代码规范最重要的一点就是其性价比,你只需要遵从一个非常简单的规则,一个刚学编程两天的人就可以做到的事情,就可以立刻让你的项目有一个不错的提升,这个对于团队实在是没什么理由不去遵循的.
代码规范的一些原则
这一点上很赞同< game engine architecture >里面的说法:
- 你需要有一个尽可能简单易行的,一个最小集
- 也就是去定义一个最常用情况下的代码怎么写
代码规范的演化和一个案例
开始工作的时候,那时候IDE的功能还很弱,使用的规范需要通过命名方式来表明各个变量的类型,属性等等(匈牙利命名法…)
但是随着IDE的功能变强,基于semantic的语法高亮愈发贴心,代码规范也可以更加简单了,这里是我们在unity3d脚本(c#)使用的一个:
使用一个最简单的,以便于大家开发出统一风格,便于阅读的代码
//ref https://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx
public class CodeStandard //类名大写
{
//变量放在类的最前面
static public int StaticMember;//static变量放在最前面,public变量名
public int PublicMember;//public变量名开头大写,使用大写字母断词
private int privateMember;//非public的变量名开头小写,使用大写字母断词
public void Func(int param) //函数名大写,参数小写
{
var localVar = 1; //local变量名小写
}
}
一些解释:
- 变量放最前面,Visual Assist里面自带立刻查看文件中函数,所以函数放后面并不影响,但是数据放后面就崩溃了…
- public变量名不能带m开头,否则这个暴露接口的时候在unity里面会断字多断出来一个m(mMyName, 在unity里面变成M My Name)
- protected,private变量,参数,local变量是开头小写,这个默认情况下是彼此之间是区分不开,这个通过语法高亮插件来解决:
https://visualstudiogallery.msdn.microsoft.com/fd89374f-892a-42d6-8207-da8fefa93fdf
这个插件很棒,可以根据semantic来区分成员变量,参数,local变量,进而可以自己定义出各个变量的命名,这样各个成员变量,局部变量,参数变量都可以直接颜色区分:
使用的时候,把VA的语法高亮选项关掉,然后自己去option里面设置就好,很好玩!!!