编程基础/编程风格
编程风格是在编写计算机程序的源代码时使用的一组规则或指南。遵循特定的编程风格将有助于程序员阅读和理解符合该风格的源代码,并有助于避免引入错误。[2] 每种语言都有自己的一套规则。遵循正确的指南非常重要,以确保代码正常运行。例如,Javascript 不一定需要在函数内部进行缩进。缩进是一种良好的做法,以便用户可以看到它。在 python 中,代码必须缩进才能运行程序。
在编程行业中,人们希望软件程序易于维护。这种愿望集中在金钱上。简单地说,维护一个写得好的程序成本更低。程序维护的一个重要方面是使源代码列表清晰易读。为此,我们将考虑以下内容
- 文档
- 垂直对齐
- 注释
- 缩进
- 有意义的标识符名称一致地输入
- 适当使用 Typedef
以上项目对于源代码编译来说并不需要。从技术上讲,编译器不会像人类阅读源代码那样阅读源代码。但这正是重点;我们希望使源代码更容易被人阅读。你不应该混淆什么是可能的(从技术上讲会运行)和什么是好的(可接受的良好编程实践,可以产生可读的代码)。
对于这些项目中的每一个,请检查所选编程语言的风格指南以确定标准和最佳实践。以下是一些要考虑的一般指南。
文档通常使用几行注释放在程序的顶部。信息量将根据支付员工或独立承包商编写代码的公司要求或标准而有所不同。
您在文档区域内看到了这一点。所有项目都在同一列中对齐。当定义变量时,这种垂直对齐再次出现。在声明变量或常量时,许多教科书在一行上放置多个项目;像这样
float length, width, height;
虽然这在教科书中很常见,但它通常不符合大多数公司使用的标准。您应该将每个项目声明在它自己的行上;像这样
float length; float width; float height;
这种每行使用一个项目的方法更易于被人阅读。找到标识符名称的速度更快,因为您可以更快地垂直阅读列表,而不是水平搜索。一些程序员会按字母顺序列出它们。
函数内部的代码行也垂直对齐,并且通常从左侧缩进两个或四个空格。缩进有助于在视觉上突出显示代码块。
专家对是否以及何时在源代码中添加注释有不同的看法。有些人断言,源代码应该用很少的注释编写,因为源代码应该是自解释的或自文档化的。另一些人建议代码应该被广泛注释,其中超过 50% 的非空白字符应该包含在注释中。 [3]
在这两种观点之间是断言,注释本身既不有利也不有害,重要的是它们是正确的并且与源代码保持同步,如果它们是多余的、过度的、难以维护或无助,则应该省略它们。[4]
此外,注释不应该太长。您可以通过将注释分成多行或通过添加分隔符来创建多行注释来更改长度。
所有注释都应该具体说明程序的某个部分应该做什么。重要的是,您的注释应该易于理解,并且对于任何阅读它的人来说都应该是简单的,以便让您自己或其他人更容易理解。
对于使用大括号的语言,有两种常见的缩进样式
function(parameters) { // code }
function(parameters) { // code }
无论哪种情况,重要的是要保持代码块的开始和结束大括号之间的垂直对齐。
用于缩进代码块的空格数通常为两个或四个空格。应注意确保 IDE 或代码编辑器为缩进插入空格而不是制表符。
顾名思义,“标识符名称”应该清楚地标识您正在谈论的是谁(或什么)。称您的配偶为“Snooky”可能只对您有意义。这就是为什么在像潜在工作场所的面试官这样的其他人面前称您的配偶为“Snooky”会导致混乱、疑问,甚至错误的谣言,说您爱上了 Nicki Minaj。如果您不说一个对人们有意义的名字,每当这个想法是真或假时,每个人都会对这个名字指的是什么产生自己的想法。这就是为什么大多数人可能需要看到她的全名(Jane Mary Smith)才能适当地识别您正在谈论的是谁。编程中的相同概念也是如此。变量、常量、函数和其他标识符应该使用有意义的名称。此外,这些名称在程序中使用时,应该在大小写方面保持一致。不要将变量定义为:Pig,然后在程序中稍后将其输入为:pig。
对于过程程序(与面向对象程序相反)中的标识符,一个好的经验法则是对函数标识符使用动词-名词组合,对常量和变量标识符使用名词或形容词-名词组合。如果函数名称需要两个动词或两个名词才能完全描述函数,那么它可能应该拆分成单独的函数。
- 括号
- 用于识别 C++、C#、Java 和 JavaScript 等语言中的代码块。
- 一致
- 一条规则,说明在整个源代码中始终如一地输入标识符名称的大小写。
- 注释
- 插入源代码文件中的信息,用于记录程序。
- 文档
- 一种方法,用于保留有助于他人理解信息系统或其一部分的有用信息。
- 缩进
- 一种用于使源代码部分更显眼的方法。
- 有意义的
- 一条规则,说明标识符名称必须易于被阅读源代码的其他人理解。
- 垂直对齐
- 一种方法,用于垂直列出项目,以便更易于快速阅读。