怎么才能写出“干净的代码”,编写干净代码的十大技巧

引言

著名的软件专家罗伯特·C·马丁在他的书《代码整洁之道》中写道:“编写干净的代码是你必须做的,才能称自己为专业人士。没有合理的借口去做任何不尽力而为的事情。

编程无疑是繁琐的,尤其是在人工智能、智能计算和测试自动化的时代。程序员不仅需要学习语言和学习算法,还需要编写复杂的工作应用程序。编写干净的代码类似于烹饪或摄影之类的活动–它看起来很容易,但实际上并非如此。尽管如此,由于提供了广泛的好处,这一点仍然至关重要。
优秀软件的一个重要特征是代码整洁。如果代码易于理解和修改,开发人员更喜欢在应用程序上工作。有时,代码匆忙赶在最后期限前完成,但最终会导致延迟,因为需要修复的错误更多。研究表明,与编写代码相比,阅读代码所花费的时间超过10:1。因此,需要干净的代码。

什么是干净的代码?

以下是干净代码的特征:

  • 它必须是可读的;
  • 它们看上去很雅致;
  • 它们必须易于理解,并遵循单一责任原则(SRP);
  • 干净的代码必须易于理解,易于修改,易于维护;
  • 干净的代码必须按照测试策略运行测试。

在他的书《面向对象的分析与设计》中,Brady brooch将干净的代码定义为“简单和直接”。干净的代码读起来就像写得很好的散文。干净的代码从来不会模糊设计者的意图,而是充满了清晰的抽象和直接的控制线。

编写干净代码的重要性

编写干净的代码有几个优点。其中一些包括以下内容:

  • 解决问题变得容易: 干净的代码从根本上改变了解决问题的方式,软件设计和算法变得更加刻意和优雅,反对强制性和约束性的解决方案。
  • 清晰的思想交流: 干净的代码减少了程序员团队在一起工作时发生争执和误解的可能性,最终导致更少的错误。
  • 所需维护更少: 干净的代码更容易阅读和理解,因此花在解析代码段的功能上的时间更少,从而有更多的时间用于更新、修订和扩展。

可遵循的最佳提示

在讨论了干净代码的定义和重要性之后,下面是编写和实现最佳策略的十大技巧。

1. 使用描述性名称

函数和变量的名称应尽可能具有描述性。例如,要引用字符和姓氏,可以使用变量名Developer和lastNameDeveloper,而不是仅使用名称。仅使用n更糟糕,因为使用该语法很难理解变量的组成部分。
函数的名称应始终以动词开头。例如,可以使用返回开发人员名称的模块getDeveloperName来代替调用随意的名称 name 方法.

2. 使用空行创建可读的代码

使用空行的好处如下:

  • 它们增加了代码的清晰度。
  • 额外的一行标识函数轻松结束的位置。
  • 行将变量的声明与操作函数分开。
  • 返回值之前的一行有助于理解该操作。

3. 不要向函数传送超过3个参数

在函数中使用一组参数会很难找到使用它们的位置。相反,只使用三个参数并在函数中遵循它们的逻辑会更有效,并使代码清晰易懂。
如果需要使用三个以上的参数,则向函数发送一个对象,并使用相关的键。

4. 一个函数只能执行一项任务

如果开发人员想要解决一个问题,就应该避免编写一个做多件事的函数。一个模块必须执行且只能执行一项任务。拥有两个或多个短函数比只有一个复杂的方法要好。

5. 函数代码必须简短

如果需要复杂的函数,使用类更可靠。如前所述,一个方法只能做一件事,并且必须简短。

6. 减少每一行代码的字符数量

避免使用长行代码会使代码更易于阅读。线条的大小必须适合屏幕,因此不需要水平滚动。许多工具(如Prettier)允许开发人员控制他们代码的格式。

7. 注释的使用

使用注释有助于维护代码。虽然可以通过对函数和变量使用描述性名称来避免注释,但不建议这样做。注释使代码清晰、连贯。

8. 为提交创建描述性消息

提交需要一条描述性消息。这在将来理解代码的功能时会很方便。应避免未提供足够信息的声明。
对于开发人员来说,仅仅编写像重构这样的消息是不够逻辑的。像从CRM获取客户信息这样的语句是合适的。

9. 使用单元测试并实践测试驱动开发

编写单元测试是开发过程中的关键一步。它使代码干净、灵活且可维护。修改代码和减少错误的过程变得很容易。测试驱动开发(TDD)是软件开发中的一个过程,在这个过程中,需求被转换为特定的测试用例,然后是通过新测试的软件改进。根据罗伯特·马丁的说法,拓展署的三大定律如下:

  • 生产代码应该通过失败的单元测试。
  • 单元测试不应被编写为足以失败,而编译失败就是失败。
  • 应该只编写足以通过一个失败的单元测试的生产代码。

10. 学习设计模式

例如,设计模式是一个广泛的领域,它提供了由经验丰富的知名开发人员发现的用于处理软件中常见问题的解决方案。

总结

干净的编码是一项需要大量实践练习的技能。你学会了吗?

你可能感兴趣的:(Java,学习)