当我们在讨论代码格式化时,我们讨论的是换行符的位置,一行应该有多少个字符,以及介于两者之间的所有内容。看似如此简单的事情,实际上却是编程中最激烈的争论之一。
对代码进行格式化和样式化的方式,比你以为的影响要大得多。当新人进入代码库时,他们最先看到的便是代码是如何编写的,规范的做法是提供完整的文档,帮助新人理解对他们来说相对陌生的代码。
编程其实是一项艰苦的脑力劳动,格式不一致的代码更是增加了工作的难度。因此,拥有一个格式化的代码库可以使开发人员的工作更加省力高效。本篇文章将介绍一些在代码格式化过程中可以用到的开发工具和编程方式。
01
代码格式化救星Prettier
Prettier可以说是代码格式化的救星。Prettier在整个科技行业都得到了很好的应用,包括Facebook、Salesforce、PayPal、Spotify、Discord等。所有Salesforce编程语言都支持Prettier,因此无论是在编写LightningWeb组件还是在Apex中构建其后端,都可以通过Prettier使代码看起来美观易读,并且几乎不需要干预。
安装Prettier也很容易。如果使用VSCode,可以在扩展市场上找到PrettierExtension。为了让Prettier能够格式化Apex,首先需要安装一个扩展,这也非常简单,只需按照下面的命令操作。
npminstall--save-dev--save-exactprettierprettier-plugin-apex
用最简单的话来说,Prettier会去除代码的所有样式,并以它认为最好的方式重写它。还可以将它设置为每次保存时都如此操作。
当字符的数量达到一定的阈值时,Prettier将其分成多行,以增加可读性。默认情况下是80个字符。示例如下:
↓↓↓
Prettier做了很多工作来帮助保持一致的风格:
添加分号
一致的报价用法
一致的尾随逗号
函数/方法声明和参数之间的间距一致
一致的缩进间距(通常是四个或两个空格/制表符)
括号内项目周围的间距一致
02
超越自动格式化程序
代码的自动格式化程序可以帮助直观的理解代码库。开发人员可以更进一步,通过养成与自动格式化程序结合使用的好习惯,以进一步改进我们在代码中的意图。
分组逻辑块
这涉及到使用换行符将代码行组合成更小的、逻辑上相关的代码块。逻辑分组可能是比较主观的,我认为这是大致在同一件事上工作的代码行。
比方说,我们在联系人记录上设置了大量的字段,可以将所有的联系人邮箱地址字段视为一个逻辑块。这也可以应用于实例变量,将那些可能一起工作或具有相似主题的变量分组。
控制Flow语句前的换行符
首先,先来定义控制Flow语句(以下任何一种):
If/else语句
Switch语句
Dowhile循环
While循环
For循环
Break语句
Continue语句
Return语句
我们还可以在此规则中包含以下异常Flow语句:
Throw语句
Try/Catch/Final块
上述的所有语句都用于定义条件代码块,或控制通过它们的Flow。由于这些语句对我们的代码行为方式有着巨大影响,因此清楚地表明这一点对于代码可读性至关重要。我们只是通过在这些语句之前引入换行符来实现这一点。但是,如果这些语句是代码块中的第一行,就需要避免在这些语句前使用换行符。
03
始终使用{花括号}
这是一个非常明确的规则,尽可能使用花括号。这意味着没有单行“if”语句或“for”循环。这条规则不仅仅是为了提高可读性,也是为了减少由于缺少大括号而出现错误的可能性。
尽管看起来很简单,但代码格式化是代码库最重要的方面之一,缺乏标准化会很快导致难以维护和容易出错的代码。
素材来源:自由侠部落