把稳!
把稳!
想要作为精良的程序员必须遵守一些不成文的规定。本文不是在谈论算法、数据构造、软件架构和程序设计,而是在谈论一些更基本、更主要的东西:可读性。
源代码是程序员耗尽了心血和精力的作品,以是不应当存在“快刀斩乱麻”的征象。忽略这些规定看似让代码天生速率加快,但事实上每每导致事倍功半。
代码敲一次,阅读无数次。因此,优化代码提高可读性显得尤为主要。为了帮助天生高度可读的代码,本文归纳总结了必须遵守的3个主要规定。遵照这些规则可以帮助利用代码的职员掩护、扩展和调度代码。此外,可读性高的代码更不随意马虎出错。

这三个技巧最好的地方在于: 可以立即实现。不须要演习韶光。仅仅须要几分钟就能蜕变成更精良的程序员!
利用描述性的变量和函数名
程序代码每每包含上千单词。当然,也有篇幅较短的代码。利用自阐明变量和函数名使代码更随意马虎阅读、理解、掩护和后续扩展。举个例子:
在编写这段代码时,开拓职员确切地知道要实现的是哪种功能。但是,其他人能理解吗?这就要看灵感和缘分了。开拓职员可以添加一条注释来描述这段代码的用场,但是利用描述性变量名能够更直不雅观地见告读者干系信息,比如:
看!
现在是不是更随意马虎理解了。仅通过利用描述性变量名,读者就可以立即理解该代码能将华氏温度(Fahrenheit)转换为摄氏温度(Celsius)。现在定义一个函数实现上述代码功能,并不雅观察根据函数名和参数名对可读性的影响程度。
“简短”版:
“细节补充”版:
很明显:比起只用单个字母表示变量和函数名的“简短”版,“细节补充”版须要花费更多的打字韶光。
但是,理解这两个版本的代码又须要多永劫光呢? 自阐明代码不仅为读者节省了许多理解代码的韶光,同时也为开拓职员节省大量韶光。为了变动程序细节或者编写拓展程序,开拓职员常常须要回顾数月前编写的代码。然后就一脸懵的看着屏幕:“我滴个神啊,我都写了啥?任何可以优化阅读性的方法都值得付出额外的打字韶光。
利用适当的缩进
由于Guido van Rossum 决定在他设计的Python编程措辞中逼迫实行缩进,以是利用Python进行编程的读者可以跳过本节。
如果利用的是如C、C++、Java、JavaScript、PHP、C#、PHP等其他受众良多的编程措辞,那么牢记这条技巧:
按层次缩进代码。
可以利用制表符或者空格,空格按3次或者按4次也可按照开拓职员的喜好而定。只要记住缩进在编程中是必须的就OK了。接下来通过比较一些JavaScript代码来进一步解释。这段代码:
· 将100至110华氏度换算成相应摄氏度。
· 将转换后的值四舍五入至个位(使数据变为整数)。
· 将所有偶数摄氏度值输出到掌握台(这是通过利用模数运算符”%”完成的,该操作符返回整数除法的余数。因此,11% 2 =1,12% 2 = 0)
没有缩进的版本:
有缩进的版本:
代码中还添加了一些空缺行来进一步构造化代码。这两段代码中哪个的可读性更高呢?
恰当地利用函数
通过利用函数可以构建可重复利用的代码块。这些还可以使代码更构造化、更具可读性和可理解性。能够避免重复的代码是函数最主要的特性。
定义函数(或类、模块等等,这取决于利用哪种编程措辞)可以办理在代码库中多次涌现相同的代码段的冗杂状态。下述示例便是很好的示范:
上述代码输出华氏度数值和相应的摄氏度数值。很明显,上述代码存在重复性代码段,这种情形下创建一个函数就可以更快速地完成上述功能:
更清爽对吧!
代码看起来更干净、更简洁。而且,它比前一个示例更具描述性。那个公式只会在定义ConvertAndPrint函数时涌现一次。如果只是想把华氏度转换成摄氏度但是不显示这些数据呢?可以通过定义不同的函数来实现:
有木有!
这种方法构建了含有自阐明代码的构建块,以便在不同的程序设计段中以多种办法重复调用这些构建块。
到这就结束了?No!
还是有的地方代码重复性很高啊。PrintFahrenheitAndCelsius 函数须要输入4个值。那么只想转换3个值的时候怎么办呢?想转换300个值的时候又该怎么办呢?当然有一个更好的方法!
根据利用的编程措辞不同,抽象化函数的参数数量的方法可能不太一样。但是,大多数开拓职员会通过利用容器(如矩阵或者List)办理这个问题。
末了的改变使函数更优胜:
· 它更短,更随意马虎阅读,
· 限定更少,更加通用。
结语
遵照一些大略的规定(规范化辅导)能使源代码将更随意马虎阅读(从而进一步理解、掩护和扩展)。
同时,利用函数(或者其他编程措辞的任何抽象方法)来创建可重复调用的构建块,抽象化参数使代码限定更少、适用范围增大。
对函数和变量恰当地重新命名可以增加源代码的可读性。就像读故事一样清晰、大略、随意马虎理解。
利用这三个技巧,手中的代码将宛若重获新生,熠熠生辉。
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”