帮助编写简洁代码的7个编码规范

软件编码规范有很多条,下面7条规范特别重要,它们可以帮助你编写出简洁的、可维护的代码。

规则1:不要编写单元级别的代码坏味道

需要避免的单元级别的代码坏味道包括:过长的代码单元、复杂的代码单元以及长接口的代码单元、使用重复代码以及单元间存在紧耦合。其中前面三个原则会更为常见。

这些坏味道会使得代码不易理解、测试,可维护性变差。

规则2:不要编写不好的注释

虽然编码规范通常会有注释率的要求,但是注释必须要有价值,它能够说明复杂代码的逻辑,或者代码修改的原因。如果单纯地为了满足注释率的要求而添加了一些不好的或没有价值的注释,那可能会给人阅读代码带来障碍,反而影响可维护性。

规则3:不要保留注释掉的代码

软件开发人员在软件调试的过程中习惯用注释的方式屏蔽掉部分代码。但是,永远不要提交包含被注释掉的代码的软件版本。因为保留这些已经被注释掉的代码,可能会给软件维护带来障碍。

如果你觉得这些被注释掉的代码可能还会有用,你可以在开发库中保留它之后安全地删除它们再提交受控库。

规则4:不要保留废弃代码

废弃代码指的是根本不会被执行或者代码可能被执行,但是没有任何地方使用它的输出的代码。比如被注释掉的代码,方法中无法到达的代码,无用的私有方法 (私有方法没有被类中的任何代码调用)。

规则5:不要使用过长的标识符名称

好的标识符命名让代码读起来仿佛一种享受,而不好的标识符命名却让代码难以理解。

通常我们要避免使用过长的标识符名称。因为过长的标识符往往会意味着表示过多职责(例如 generateConsoleAnnotationScriptAndStylesheet)或者包括过多技术术语(例如GlobalProjectNamingStrategyC onfiguration)的标识符名称。

规则6:不要使用魔术常量

魔术常量指的是在代码中没有被清晰定义的数字或者字符串。以下面代码为例:

float CalculateFare(Customer c, long distance)
{
float travelledDistanceFare = distance * 0.10f;
if (C.Age <12)
{
travelledDistanceFare *= 0.25f;
}
else
if (C.Age >= 65)
{
travelledDistanceFare *= 0.5f;
}

return 3.00f + travelledDistanceFare;
}

这个代码示例中的儿童和老人的年龄界限看似熟悉的数字,但是请记住这些数字可能会在代码中的很多地方都会使用,而且票价率的熟知也可能会因为业务需要随时发生改变。

正确使用数字常量的做法应当如下面的代码所示:

private static readonly float BASE RATE = 3.00f;
private static readonly floatFARE PER KM = 0.10f;
private static readonly float DISCOUNT RATE CHILDREN =0.25f;
private static readonly float DISCOUNT RATE ELDERLY = 0.5f;
private static readonly int MAXIMUM AGE_CHILDREN = 12;
private static readonty int MINIMUM AGE_ELDERLY = 65;

float CalculateFare(Customer c, long distance)
{
float travelledDistanceFare = distance * FARE_PER KM;
if (c.Age < MAXIMUM_AGE_CHILDREN)
{
travelledDistanceFare *= DISCOUNT_RATE_CHILDREN;
}
else
if (C.Age >= MINIMUM AGE ELDERLY)
{
travelledDistanceFare *= DISCOUNT_RATE_ELDERLY;
}
return BASE RATE + travelledDistanceFare;
}

规则7:不要使用未正确处理的异常

如果异常没有被正确处理,软件频繁给出出错的信息,会极大地降低用户满意度,软件的质量大打折扣。正确处理异常要遵循以下3个原则:

  • 捕获一切异常。捕获异常是为了了解它们产生的原因以便加以改进,因此我们应当尽可能地捕获软件所有的异常。

  • 捕获特定异常。软件可能存在某些特定的异常,这些特定的异常可能使用通用的异常捕获方法如Throwable、Exception或者RuntimeException都无法捕捉,需要进行专门的设计。

  • 减少异常信息对用户的干扰。在异常信息展示给用户之前,应先将其转换成通用的信息,避免用户被具体的异常信息所“打扰”。

这正是:

编码规范千万条,最最重要有七条

代码注释和命名,魔术常量及异常

参考书目:代码不朽:编写可维护软件的十大要则,作者:(荷兰)约斯特·维瑟,译者:张若飞,出版社:电子工业出版社

(0)

相关推荐

  • Python编程入门动手做个虚拟地球吃透编程规则

    原创2021-03-01 16:40· 敲黑板 1)这是教学的第4课 2)在专栏里,可以找到之前的课程 3)持续更新,关注不迷路 4)有问题请留言,有问必答 敲出hello word 后,我在想是否能 ...

  • 第012节:编码规范

    本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性.本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一 ...

  • 【Python基础】如何编写简洁美观的Python代码

    作者 | ANIRUDDHA BHANDARI 编译 | VK 来源 | Analytics Vidhya 概述 Python风格教程将使你能够编写整洁漂亮的Python代码 在这个风格教程中学习不同 ...

  • go从编写web代码到部署linux服务器

    首先省略编写代码的过程,成功在本地ip测试成功后,将监听的ip和端口改为服务器的 首先你要知道需要配置的服务器的构架,一般是amd64,arm,可以在服务器里输入uname -a查看 然后进入目标项目 ...

  • 编写HTML代码

    大家常在论坛看到的那些漂亮的帖子多是漂亮的图片.音乐加上一些代码组成,这些代码就是传说中的HTML代码,觉得一个精美的代码帖子不外乎就是将文字+图片+音乐或再加上FLASH通过HTML标签编排组成的. ...

  • 「简洁代码」20个常用的JavaScript简写技巧

    原创前端小智2021-01-31 11:05:50 作者 | Amitav Mishra 译者 | 清风依旧 策划 | 田晓旭 本文发布在 jscurious.com 任何编程语言的简写技巧都能够帮助 ...

  • 整个宇宙都是高级文明编写的代码?

    转自:环球科学ScientificAmerican 如涉版权请留言删除 酷玩视界鸣谢 人类.所有生命乃至我们所处的宇宙是真实存在的吗?或者说,我们就像<黑客帝国>中所描述的那样,只是其他开 ...

  • VBE——编写 VBA 代码的地方(别怕VBA)

    听过VBA代码吗?羡慕能用代码高效办公的人吧!不会VBA代码?VBA代码很难写?别怕,Excel 可以自动生成它. VBA 过程在哪编写 使用宏录制器录下的宏,还有一个称呼--VBA过程.要使用VBA ...

  • C#命名规则和编码规范,让你的代码变得优美

    话不多说,直接上干货 属性.方法.事件和类名使用Pascal规则来命名 Pascal规则是指名称中单词的首字母大写 ,如EmployeeSalary. ConfimationDialog.PlainT ...

  • 编写VBA代码有哪些注意事项?

    HI,大家好,我是星光. 这篇给大家聊一下编写VBA代码有哪些注意事项. 不过需要提前说明的是,由于大家现在也没啥编程经验,以下内容有一部分可能很难理解,那就不必理解,知道有那么回事就OK.这就好比小 ...

  • Py:编写程序代码,把自己的微信号变为微信智能机器人自动和你的好友、群友聊天

    Py:编写程序代码,把自己的微信号变为微信智能机器人自动和你的好友.群友聊天 导读 编写程序,实现微信机器人自动和你的好友聊天. 先看效果 设计思路 第一步:先洗脸 第二步:照照镜子 第三步:哈哈,进 ...