写好代码的七条好习惯
发布日期:2021-06-29 19:10:18 浏览次数:3 分类:技术文章

本文共 2672 字,大约阅读时间需要 8 分钟。

写好代码的七条好习惯

1.命名明确

尽量做到见名知意。

  • 能用简洁英文表示尽量用英文
// 用户名string userName = "Czhenya";
  • 拼音也要尽量简单的全拼表示
string yongHuMing = "Czhenya";
  • 尽量不用这种缩写
string yhm = "Czhenya";
  • 尽量不用这种无意义命名
string n = "Czhenya";

2.命名风格

尽量使变量/函数命名风格一致。

建议写法:

  • 驼峰命名法
// 用户名,用户IDstring userName = "Czhenya";string userId = "123456";
  • 下划线分隔
string user_name = "Czhenya";string user_id = "123456";

不建议的写法:

  • 全堆在一起
string username = "Czhenya";string userid = "123456";
  • 多种模式混合使用
string userName = "Czhenya";string user_id = "123456";
  • 拼音和英文混合使用
string yongHuName = "Czhenya";string yingHuId = "123456";

3.写注释

建议养成写注释的习惯,一是自己看为了以后维护的时候方便回忆,二是给其他人看为了同事间互相合作。

  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;}

怎么样有没有想打人的冲动…这写的什么啊,我估计过不了一周,自己回头来看都不愿意看,更别说维护了。


4.尽可能把代码格式化

  1. 好的缩进格式是写好代码的基础

随便写一个函数,它的格式不正规甚至是错误的,即使它再简单,也不愿意多看一眼,有没有这种感觉?

一个反向示例:

void Test(){
int x = 1; int y; if (Random.Range(0, 2) == 0) x = -1; y = -1; int z = 3;}
  1. 尽量不要把长代码写在一行

来对比下面这两段代码,你更愿意看哪个?

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.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;

5.触发异常要处理

之前看博客时看过类似下面这样的代码,做了异常捕获,然后就没有然后了…

try {
int intValue = Convert.ToInt32(defauleRule);} catch (Exception e) {
}

难道添加这个异常捕获,就仅仅是为了使程序不报错吗? 哪怕你打印个日志也行啊,后续修改时也方便定位到是什么时候调用,出现了什么问题。

try {
int intValue = Convert.ToInt32(defauleRule);} catch (Exception e) {
// 处理异常 Debug.LogError(e); //throw e;}

PS:打印日志级别一定要用警告,这样监控系统就能时地监控到异常了。


6. 优化方法参数

loadConfigFile(int gameKind, bool isGroup, string ruleName, string tableConsumeType, bool isTip, int tipType, string defaultRule = "", Action changeRuleAction = null)

这么多的参数,计算有详细的注释也难免会有传值错误的时候吧。

自己使用时还勉强能用,一旦需要同事之间配合,光看到这么多的参数,就觉得头大了~

建议将逻辑分隔,这么多参数的方法肯定也是很臃肿的;适当的将单独的功能分隔开,是很好的处理方式。这样即使得代码逻辑清晰,也方便后续维护扩展。


7.使用短函数

试想一下:

  • 有一个1000行的方法,里面逻辑写的非常完善,命名规范,计算方式也是解决问题的最优解;
  • 另外一个是实现同样逻辑的代码,将上面的逻辑分成了几个方法,方法用途明确,局部变量名不是很规范(甚至有的很随意)。

你觉得这两种代码你更倾向于阅读哪个?或者说那种形式的更易懂?

最后需要明确一个错误:

  单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。


总结

  希望上述七条对你写出好的代码有所帮助。若你还有其他的好习惯,欢迎你留言分享出来,供大家学习!

转载地址:https://czhenya.blog.csdn.net/article/details/114955258 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Unity 报错之 The type or namespace name ‘UI‘ does not exist in the namespace ‘UnityEngine‘
下一篇:C#设计模式 之 原型模式

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月08日 02时09分07秒