JavaScript代码中的坏味道

开发 前端
编写软件很难。 只有少数方法可以做到正确,有很多方法可以做到错误,使我们的生活更加艰难。在本文中,我们将通过一些代码气味来探讨编写不良代码的一些方法。

编写软件很难。 只有少数方法可以做到正确,有很多方法可以做到错误,使我们的生活更加艰难。

在本文中,我们将通过一些代码气味来探讨编写不良代码的一些方法。

[[329878]]

具有不同接口的替代类

由于重复,两个功能相同但接口不同的类并不好。

我们不想那样。 因此,我们可能要使用共享代码创建一个超类,然后使子类具有不同的方法。

库类不完整

重用并没有被高估。

图书馆建设者的工作艰巨。 他们可能会开设不完整的课程,但不允许我们修改它们以完成我们希望他们做的事情。

因此,这使库类对我们毫无用处,除非我们可以添加所需的功能。

我们可能必须直接向这些类添加新方法来解决此问题。

例如,如果我们导入了一个类,则可以通过编写以下代码来添加自己的方法:

  1. const mixin = { 
  2.   foo() { 
  3.     //... 
  4.   }, 
  5.   bar() { 
  6.     //... 
  7.   } 
  8. Object.assign(Foo.prototype, mixin); 

在上面的代码中,我们将Foo类的原型中的代码与mixin对象中的方法合并,以使用Object.assign方法将更多方法合并到该类中。

数据类型

数据类是仅具有字段的类。

这些类可能被其他类过多地操作。

因此,如果所有公开领域都公开了,我们应该封装它们。

如果需要,我们还可以封装收集字段。

为了封装它们,我们可以将字段设为私有,并添加访问和设置它们的方法。

拒绝继承

子类继承父类可以访问它们的方法。

如果我们不需要父类中的这些类,则可以将它们下推到子类中。

然后,并不是所有的子类都将从父类继承方法,而它们仍然可以留在需要它们的子类中。

注释

评论对某些事情很有用。 我们可以评论为什么要执行某项操作,但是由于我们已经在代码中进行了操作,因此无需在评论中说明我们如何执行操作。

还注释代码是不好的。 首先,我们应该把它们带走,因为它们没有运行。

不属于自己的条件

我们应该将条件语句分成自己的一行,以便我们可以更轻松地阅读它们。

所以不用写:

  1. if (foo) { 
  2.   //... 
  3. } if (bar) { 
  4.   //... 

我们写:

  1. if (foo) { 
  2.   //... 
  3. if (bar) { 
  4.   //... 

注释可选参数

可选参数在JavaScript中应具有默认值。 例如,我们可以编写以下代码来指示参数是可选的:

  1. const foo = (a = 1) => { 
  2.   //... 

[[329879]]

> Photo by Samantha Gades on Unsplash

当心"死存储"

死存储是指我们为变量分配值,但不使用原始值就重新分配了值。

因此,我们实际上并不需要原始值,因此可以删除该行。

所以不用写:

  1. let x = 1
  2. x = 8 * 10; 

我们写:

  1. let x = 8 * 10; 

不要反转我们的布尔值

双否定总是比直接条件表达式更难读。

因此,我们应该以更直接的方式编写是可能的。 例如,而不是写:

  1. if (!(x > 10)) {  
  2.   //... 

我们写:

  1. if (x <= 10) {  
  2.   //... 

如我们所见,第二条if语句比第一条if语句更易于阅读,并且更短。 他们都是一样的。

使用模板字符串

模板字符串是最好的JavaScript字符串。 我们可以在其中插入表达式,而其他任何类型的字符串都无法做到。

另外,我们可以通过在字符串中输入换行符来创建多行字符串。

由于反引号用作模板字符串的定界符,因此可以在字符串内部使用引号而不转义它们。

结论

模板字符串很棒。 它们使我们可以做更多旧式弦弦无法完成的事情。

要向不完整的库类添加更多方法,我们可以使用Object.assign向它们添加自己的方法。

另外,我们需要封装数据类,以使您的代码不会与数据类紧密耦合。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2019-10-11 09:07:46

Java代码对象

2012-07-13 09:35:58

PHP

2012-07-13 09:38:15

项目代码

2015-07-29 13:22:40

.NET代码

2021-05-26 11:50:37

代码优化Java

2012-07-19 10:42:17

项目

2018-08-24 21:25:02

编程语言代码重构GitHub

2022-01-26 10:29:24

微服务循环依赖代码

2022-05-07 10:01:20

好代码坏代码

2020-12-01 08:36:10

代码程序员函数

2020-04-26 10:01:14

编程学习技术

2019-09-29 16:17:25

Java代码性能编程语言

2011-10-31 14:53:23

Dart

2013-12-04 14:19:40

JavaScript代码重用

2018-03-29 14:51:59

智能公厕AI

2010-09-02 11:34:51

SQL删除

2012-05-28 15:32:05

PHP

2024-04-17 09:35:30

AI数字化

2024-09-05 10:17:34

2024-12-11 18:24:29

点赞
收藏

51CTO技术栈公众号