大神级程序员透露的11个不传秘籍(下篇)

115 阅读6分钟

上篇跟大家普及的更多是编程过程的基础技巧,虽然基础但是如果能转化吸收并较好的运用,对你能有不小的提升。

接下来则侧重分享项目实战过程中需要掌握的技巧。

image.png

6. 通过代码缩进提高可读性

错落有致的代码能更容易阅读。

不同语言的缩进规则有所不同,JavaScript通常是两个空格,可以根据团队习惯有所调整,例如有人习惯用tab缩进,默认是四个空格。

但是像Python语言是严格要求四个空格缩进的,如果用错会导致代码报错。

优化前:

function printHello() {
console.log("Hello, world!");
}

printHello();

优化后:

function printHello() {
    console.log("Hello, world!");
}

printHello();

上述代码通过缩进使代码更清晰,也更容易阅读。

通常,每当启动新块时,都应缩进代码。块是一起执行的代码段。

例如,块可以是函数、if 语句或 for 循环。

image.png

7. 通过换行提高代码可读性

除了使用缩进提升代码可读性外,我们还可以适当的使用换行来提升可读性。

通过换行让代码块与块之间更清晰。

示例一:

function printHello() {
    console.log("Hello, world!");
}

function printWelcome(name) {
    console.log("Hello, " + name);
}

通过换行,分隔开两个函数,使整体可读性提升

示例二:

let firstName = '启强';
let lastName = '高';

alert(lastName + firstName);

通过换行,将变量的声明与使用分隔开,更清晰

当然也不要过量的使用换行,肆意使用可能会产生相反的效果。

8. 善于使用数组、循环及条件判断提升效率

数组、循环及条件判断都是很基础的知识,虽然很容易掌握,但如何使用也有不少学问。

下面带你了解其中一些基础知识,

  • if(条件判断):

提前整理归纳判断条件,避免不必要的嵌套if语句

优化前:

if (x > 0) {
    if (x < 10) {
        console.log("x介于0与10之间,但不等于");
    } else {
        console.log("x大于等于10");
    }
} else {
    console.log("x小于等于0");
}

优化后:

if (x > 0 && x < 10) {
    console.log("x介于0与10之间,但不等于");
} else if (x >= 10) {
    console.log("x大于等于10");
} else {
    console.log("x小于等于0");
}

优化后逻辑更清晰,也避免多层嵌套导致不易阅读

  • for & array(再结合数组与循环)

通过数组与循环减少重复代码量。

友情提示一点,未来项目实战中,尽量避免将数据库语句执行直接放在循环中触发,这样容易导致超负载。

可以先通过循环整合处理好需要的条件语句,再合并统一进行执行处理。

优化前:

let number1 = 10;
if (number1 > 0 && number1 < 10) {
    console.log("number1介于0与10之间,但不等于");
} else if (number1 >= 10) {
    console.log("number1大于等于10");
} else {
    console.log("number1小于等于0");
}

let number2 = 10;
if (number2 > 0 && number2 < 10) {
    console.log("number1介于0与10之间,但不等于");
} else if (number1 >= 10) {
    console.log("number1大于等于10");
} else {
    console.log("number1小于等于0");
}

优化后:

let numbers = [-5, 0, 5, 10, 15];

for (let i = 0; i < numbers.length; i++) {

    let x = numbers[i];
    
    if (x > 0 && x < 10) {
        console.log(x+"介于0与10之间,但不等于");
    } else if (x >= 10) {
        console.log(x+"大于等于10");
    } else {
        console.log(x+"小于等于0");
    }
}

优化后通过循环有效的减少了大量代码量,且整体逻辑更易于阅读及修改。

image.png

9. 尽可能的编写使用文档或接口文档

代码中写好注释是一个好习惯,但那是为了便于我们回顾代码,检查纠错。

日常中我们经常需要编写函数或者接口来支持实现一个整体的功能,可能这些接口原本已经有其他人实现过。

但是因为没有具体的文档可以方便查阅,我们容易重复造轮子重新编写一个。

这样不仅效率低下,而且还不利于后期优化修改。

工欲善其事必先利其器

当然为了避免重复造轮子,我们更要利用好的库与框架。

使用大佬们写好的且功能经过大众考验迭代的工具。

毕竟自己造的轮子一开始可能是正方形的,虽然勉强能用,但是没经过时间和过程的打磨是缺少一定效率的。

必要的时候甚至连项目都可以通过找到现成的加以改造来避免无意义的工作。

编写文档是一件很痛苦的事,但是如果代码中已经有规范的注释,我们可以借助一些自动化文档生成工具实现自动化文档编写。

如何才能更好的支持自动化生成文档:

  • 使用清晰且具有描述性的变量和函数名称。

  • 函数尽量做到极简,一个函数对应一件事,容易描述。

  • 通过使用命名常量来避免幻数(没有明显含义的数字)。

  • 使用空格将代码分隔为逻辑块。

  • 使用清晰一致的编码约定。这使您的代码更易于阅读和理解,即使对于不熟悉您的代码库的人也是如此。

  • 提前找到满意的文档生成方式,并尽可能迎合它的规则。

同时学会查看文档,使用文档,也是很有必要的。

通过了解优质项目的文档来提升自己的文档水平,同时也能为自己储备工具知识库,当需要实现某些功能时,不必再自己动手造轮子。

例如《微信小程序开发文档》或者《Vant中文文档》都是很不错的库或者框架类项目的文档。

image.png

10. 编写简洁可靠的代码

我们可以通过SOLID框架来思考如何编写简洁可靠的代码。

SOLID 是一个缩略词,引用了五个关键的软件设计原则,由敏捷软件开发宣言的创始人、《清洁代码》的作者 Robert C. Martin 创造。

SOLID 的五大设计原则是:

  • **单一责任原则。**该原则指出,每个类或模块都应该有一个(并且只有一个)更改原因。换句话说,每个类或模块应该只负责一件事。

  • **开/闭原则。**该原则指出,软件应该开放扩展,但避免修改。也就是说,你编写的类与模块应该具有更好的拓展性,且不需要修改代码本身。

  • **里氏替换原则。**该原则指出,子类应该可替代其超类。也就是说,子类应该能够代替其超类而不会引起任何问题。

  • **接口隔离原则。**该原则指出,不应强迫客户依赖他们不使用的方法。换句话说,每个接口都应该很小,并且专注于特定目的。

  • **依赖反转原则。**该原则指出,应反转依赖项。也就是说,高级模块不应依赖于低级模块。相反,两者都应该依赖于抽象。

这些原则对于新手可能不好记忆与理解。但是当你积累一定编程经验后你会慢慢意识到其中的重要性。

11. 使用代码版本控制系统

每一段代码都包含着程序员的汗水,不要让它在不经意间遗失。

image.png

常见的代码版本控制系统有:

  • Git

  • Svn

  • Mercurial

通常更建议使用Git,具体的Git使用方法及部署方法可以参考《Git快速入门》

使用代码版本控制系统的好处:

  • 有助于多人团队协同开发时,相互间代码的协同管理

  • 避免误删文件等操作导致代码丢失,导致加班复原

  • 利用好分支开发有助于代码审查,减少BUG

  • 能更清晰的观察到每次迭代的代码,有利于调试与修复