JavaScript代码中的坏味道

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

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

具有不同接口的代码道替代类

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

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

库类不完整

重用并没有被高估。代码道

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

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

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

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

const mixin = {    foo() {      //...   },   bar() {      //...   } } Object.assign(Foo.prototype, mixin); 

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

数据类型

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

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

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

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

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

拒绝继承

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

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

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

注释

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

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

不属于自己的条件

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

所以不用写:

if (foo) {    //... } if (bar) {    //... } 

我们写:

if (foo) {    //... } if (bar) {    //... } 

注释可选参数

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

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

> Photo by Samantha Gades on Unsplash

当心"死存储"

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

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

所以不用写:

let x = 1; x = 8 * 10; 

我们写:

let x = 8 * 10; 

不要反转我们的布尔值

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

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

if (!(x > 10)) {     //... } 

我们写:

if (x <= 10) {     //... } 

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

使用模板字符串

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

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

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

结论

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

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

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

系统运维
上一篇:a、变更前的公司证件扫描件(代码证或者营业执照)及联系人身份证复印件、变更后的公司证件扫描件(代码证或者营业执照)及新的联系人身份证复印件;身份证复印件需本人签名,公司证件复印件需加盖公章。
下一篇:如果你的潜在终端必须是这个米(域名),那么潜在终端并不多,也没有硬通货,那么你的域名应该在终端有兴趣购买时出售。否则,你可能得自己留着吃。