写好代码的七条好习惯
1.命名明确
尽量做到见名知意。
- 能用简洁英文表示尽量用英文
// 用户名
string userName = "Czhenya";
- 1
- 2
- 拼音也要尽量简单的全拼表示
string yongHuMing = "Czhenya";
- 1
- 尽量不用这种缩写
string yhm = "Czhenya";
- 1
- 尽量不用这种无意义命名
string n = "Czhenya";
- 1
2.命名风格
尽量使变量/函数命名风格一致。
建议写法:
- 驼峰命名法
// 用户名,用户ID
string userName = "Czhenya";
string userId = "123456";
- 1
- 2
- 3
- 下划线分隔
string user_name = "Czhenya";
string user_id = "123456";
- 1
- 2
不建议的写法:
- 全堆在一起
string username = "Czhenya";
string userid = "123456";
- 1
- 2
- 多种模式混合使用
string userName = "Czhenya";
string user_id = "123456";
- 1
- 2
- 拼音和英文混合使用
string yongHuName = "Czhenya";
string yingHuId = "123456";
- 1
- 2
3.写注释
建议养成写注释的习惯,一是自己看为了以后维护的时候方便回忆,二是给其他人看为了同事间互相合作。
- 要养成写注释的习惯,不要觉得写注释是浪费时间;
- 精简注释内容,不要写过长的无关紧要的话;
- 写的注释请和代码实际意图保持一致(修改代码时一定要维护注释);
看一个反面示例,代码如下:
Vector3 getV3()
{ if (isHeng) return Vector3.right * (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 120 + Vector3.up * (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 80; float x = Random.value * 140; float y = (float)System.Math.Sqrt((1 - (x * x / 19600)) * 7056); float xy = Random.value; return Vector3.right * (Random.Range(0, 2) == 0 ? -1 : 1) * x * xy + Vector3.up * (Random.Range(0, 2) == 0 ? -1 : 1) * y * xy;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎么样有没有想打人的冲动…这写的什么啊,我估计过不了一周,自己回头来看都不愿意看,更别说维护了。
4.尽可能把代码格式化
- 好的缩进格式是写好代码的基础
随便写一个函数,它的格式不正规甚至是错误的,即使它再简单,也不愿意多看一眼,有没有这种感觉?
一个反向示例:
void Test()
{ int x = 1; int y; if (Random.Range(0, 2) == 0) x = -1; y = -1; int z = 3;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 尽量不要把长代码写在一行
来对比下面这两段代码,你更愿意看哪个?
return Vector3.right * (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 120 + Vector3.up * (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 80;
- 1
float x = (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 120;
float y = (Random.Range(0, 2) == 0 ? -1 : 1) * Random.value * 80;
return Vector3.right * x + Vector3.up * y;
- 1
- 2
- 3
5.触发异常要处理
之前看博客时看过类似下面这样的代码,做了异常捕获,然后就没有然后了…
try
{ int intValue = Convert.ToInt32(defauleRule);
}
catch (Exception e)
{
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
难道添加这个异常捕获,就仅仅是为了使程序不报错吗? 哪怕你打印个日志也行啊,后续修改时也方便定位到是什么时候调用,出现了什么问题。
try
{ int intValue = Convert.ToInt32(defauleRule);
}
catch (Exception e)
{
// 处理异常
Debug.LogError(e); //throw e;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
PS:打印日志级别一定要用警告,这样监控系统就能时地监控到异常了。
6. 优化方法参数
loadConfigFile(int gameKind, bool isGroup, string ruleName, string tableConsumeType, bool isTip, int tipType, string defaultRule = "", Action changeRuleAction = null)
- 1
这么多的参数,计算有详细的注释也难免会有传值错误的时候吧。
自己使用时还勉强能用,一旦需要同事之间配合,光看到这么多的参数,就觉得头大了~
建议将逻辑分隔,这么多参数的方法肯定也是很臃肿的;适当的将单独的功能分隔开,是很好的处理方式。这样即使得代码逻辑清晰,也方便后续维护扩展。
7.使用短函数
试想一下:
- 有一个1000行的方法,里面逻辑写的非常完善,命名规范,计算方式也是解决问题的最优解;
- 另外一个是实现同样逻辑的代码,将上面的逻辑分成了几个方法,方法用途明确,局部变量名不是很规范(甚至有的很随意)。
你觉得这两种代码你更倾向于阅读哪个?或者说那种形式的更易懂?
最后需要明确一个错误:
单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。
总结
希望上述七条对你写出好的代码有所帮助。若你还有其他的好习惯,欢迎你留言分享出来,供大家学习!
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/114955258
- 点赞
- 收藏
- 关注作者
评论(0)