干净代码的艺术:掌握贝蒂风格ð§§ð¾â»»
#初学者 #编程 #codenewbie #c

介绍

在使用任何编程语言开发软件时,遵守一致的编码样式对于维持可读性,协作和代码质量至关重要。对于C编程语言,一种广泛认可的编码样式被称为Betty。最初是为Linux内核开发而创建的贝蒂(Betty)在C编程社区中已变得很流行,提供了一组指南,以增强代码的清晰度和可维护性。

什么是贝蒂?

Betty是专门针对C编程语言量身定制的编码样式指南。它是为了在Linux内核开发社区中标准化编码实践标准化,以确保代码库具有凝聚力和可理解该项目的开发人员。

一致风格的重要性:

编码样式的一致性在协作项目中起着至关重要的作用,使团队成员更容易理解和修改彼此的代码。贝蒂(Betty)执行一套标准化的规则,包括命名惯例,缩进,间距和评论放置。通过遵循这些准则,开发人员可以生成干净,可读的代码,对他人更容易容易出现错误。

在本地机器上设置贝蒂。

sudo ./install.sh

运行以下命令以检查您的代码/文档是否适合Betty样式:

betty-style <filename>
betty-doc <filename>

让我们看一个使用Betty样式编码的简单指南

缩进

想象一下将代码库查看超过20小时。凹痕可帮助您轻松识别哪些部分快速找到信息。这确实有助于调试

  • 使用TAB缩进您的代码。 一组代码是一组卷曲括号({})内的每组语句

一个示例是我们的main函数中使用的

int main(void)
{
        return (0);
}
  • 请勿将多个语句放在单行上

这是一个不好的例子

if (condition) do_this;
do_something_everytime;

这是一个很好的例子

if (condition)
     do_this;

do_something_everytime;
  • 在多个压痕语句的情况下 - 开关语句 - switch关键字和下属case被放置在相同的凹痕级别上,如下所示
int add(int sum)
{
        var i = 0;
        switch (sum)
        {
        case 23:
                i = 34;
        default:
                i = 4;
        }
        return var;
}

牙套的使用{}

  • 应将开口和闭合括号放在下一行的开头。 这是一个不好的例子
if (condition) {
        statement1;
        statement2;
}

这个很好的例子

if (condition)
{
        statement1;
        statement2;
}

这也适用于函数。一个示例是主要功能

int main(void)
{
        return (0);
}
  • 应如上述示例所述缩进牙套的身体。

但是,此规则有例外。如果同一语句的延续遵循结尾括号,则需要添加它。一个例子是do....while语句。

do {
        body of loop;
} while (condition);
  • 何时写单个语句时,请勿使用牙套 一个示例是下面的代码
if (condition) 
        statement;

它也适用于此

if (condition)
        statement;
else
        statement;

请注意,这甚至在一个具有多个语句的地方都不适用。一个例子是

if (condition)
{
        do_this();
        do_this();
}
else 
{
        do_this();
}
  • 不要在单行上使用逗号来避免牙套
if (condition) 
   do_this(), do_this();

做这个

if (condition) {
        do_this();
        do_this();
}

使用空间

  • 在这些关键字之后使用空间ifelse ifswitchcaseforforwhilereturn
  • 但是,在以下看起来像功能之后不要使用空间:sizeoftypeofalignof__attribute__

这是一个用于参考的表

Image description

但是,请勿使用(内部)表达式周围的空间。
这是一个不好的例子

a = sizeof( struct file );

这是一个很好的例子

a = sizeof(struct file);
  • 在大多数二进制和三元操作员周围使用一个空间,例如:
= + - < > * / % | & ^ <= >= == != ? :
  • 请勿在 一般操作员周围使用空间
& * + ~ ! sizeof typeof alignof __attribute__ defined
  • 不要在线路结束时留下尾随的空格,否则您会收到以下警告

Image description

断断续续的性格

编码与可读性和可维护性有关。代码行不应太长,以至于需要横向滚动以读取它们。
线上的极限为 80列,强烈是首选极限

功能

函数只是代码的一部分,它可以做一个特定的事情。

  • 函数必须包含 40行代码
  • 函数中的本地变量不应超过5-10
  • 使用源文件时,用一个空白行单独的功能

在c中发表评论

/* This is a single line comment */
/**
 * This is a multiline comment
 * comments in C source code
 */

代码文档

在编程中使用文档对于任何人都能很好地理解代码非常必要。我们通过评论提供文档。通过在要点上添加评论,您可以提供上下文,解释和见解,以阐明您的代码目的,意图和复杂性。

Betty具有记录您的代码的样式。让我们看一下

如何记录功能

而不是常规的c多琳评论,该文档的评论块看起来像这样。

/**
 * main - This is the entry point of the code
 *
 * Return - 0 Successful
 */

int main(void)
{
        printf("Hello");
        return (0);
}
  • 如果函数必须返回值,则Return:标头标签是强制性

  • 必须将提供给功能的参数添加到其各自的标签中。

/**
 * sum - Calucates the sum of two numbers
 * @arg1 - First operand
 * @arg2 - Second operand
 *
 * Return: The sum of the two parameters
 */
  • 您可以添加其他部分,例如Example
/**
 * Sum- Makes the sum of two numbers
 * @arg1: First operand
 * @arg2: Second operand
 *
 * Return: The sum of two parameters
 *
 * Example:
 *    sum(10, 5); --> 15
 */

int sum(int num1, int num2)
{
        return (num1 + num2);
}

使用Betty编码样式作为程序员非常有益。它确保您的代码保持一致,可读并且具有明确的清晰度。

我相信这对您来说是一本很棒的阅读,尤其是如果您是C程序员,并且是ALX软件工程和霍尔伯顿学校的学生。喜欢并发表评论,如果您发现它有帮助。

Linux Kernel coding style

中阅读有关编码风格的更多信息

Github上关注我,让我们在Twitter上进行分离,并在LinkedInð

上形成良好的联系