freeCodeCamp/guide/chinese/cplusplus/clean-code-guidelines/index.md

109 lines
3.9 KiB
Markdown
Raw Normal View History

---
title: Clean Code Guidelines
localeTitle: 清洁代码指南
---
# 清洁代码指南
编码时,您遵循的编码风格非常重要。特别是当您与团队合作或计划分享您的团队时 码。 这些指南中的大部分都是标准的,可以应用于大多数编程语言,但是,这里有应用程序和 带有c ++代码的片段,因此您可以更轻松地熟悉它。 请记住,这些只是提高清晰度的建议,可以是个人偏好,所以请听取这些建议 考虑到但不要把他们带到信中。有时,破坏其中一些规则可以使代码更清晰。
## 使用好的变量名称并发表评论
确保你创建了一个好的变量名例如如果你正在创建一个游戏避免使用变量“a”使用类似“p1”的东西来指代玩家1. [匈牙利符号](https://en.wikipedia.org/wiki/Hungarian_notation)通常是传播的可以给你一些gidelines来声明变量。
另外,请使用评论,我甚至不开玩笑,只是尝试阅读你没有评论的一些旧项目......现在想象成为别人甚至没有编码。
## 全局变量
全局变量可以很容易使用,只需很少的代码就可以看起来像一个很好的解决方案。但是,当代码变得越来越大时,就越难以知道它们何时被使用。
您可以使用函数中声明的变量来代替使用全局变量,这些变量可以帮助您了解传递的值 并更快地识别错误。
```cpp
#include <iostream>
using namespace std;
// Global variables are declared outside functions
int cucumber; // global variable "cucumber"
```
## 使用goto继续等。
这是程序员之间的常见讨论,就像全局变量一样,这些类型的语句通常被认为是不好的做法。 他们被认为是坏的,因为他们导致[“spaguetti代码”](https://en.wikipedia.org/wiki/Spaghetti_code) 。当我们编程我们想要一个 线性流,当使用这些语句时,流被修改并导致“扭曲和纠结”的流动。
Goto过去曾被用过但是如果函数被创建那么就会引入那些结构化编程。 一般情况下请避免使用goto除非您确定它会使您的代码更清晰更易于阅读。一个例子可能是在嵌套循环中使用它。
break和continue的使用几乎相同。在开关中使用它们并尝试仅用于创建功能因此您只有一个出口点。
![IMG](https://imgs.xkcd.com/comics/goto.png)
## 避免更改for循环内的控制变量
通常有一些工作,看起来更清晰,更少混淆,例如。而循环。 做:
```cpp
int i=1;
while (i <= 5)
{
if (i == 2)
i = 4;
++i;
}
```
代替:
```cpp
for (int i = 1; i <= 5; i++)
{
if (i == 2)
{
i = 4;
}
// Do work
}
```
## 在顶部声明常量和类型
它们通常在库之后声明,这使它们变得更加容易阅读。 对于局部变量,它发生相同,在顶部声明它们(其他人为了节省内存而尽可能晚地声明它们看到: [cplusplus.com](http://www.cplusplus.com/forum/general/33612/)
## 最后只使用一个返回功能
就像我们之前说过的那样,我们倾向于只进行一次进入和退出以使流程更清晰。
## 即使在编写单行内容时也要使用花括号
系统地制作它将帮助您更快地完成它,如果您希望将来更改代码,您将能够毫无后顾之忧地完成它。
代替:
```cpp
for (int i = 1; i <= 5; i++)
//CODE
```
做:
```cpp
for (int i = 1; i <= 5; i++)
{
//CODE
}
```
## 其他建议
* #### 当您知道迭代次数时使用,而当您不知道迭代次数时使用。
* #### 在适当的时候使用const传递值/引用。这有助于节省内存。
* ####在大写字母中写入const以T开头的数据类型和小写的变量。
```cpp
const int MAX= 100; //Constant
typedef int TVector[MAX]; //Data type
TVector vector; //Vector
```