109 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								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的使用几乎相同。在开关中使用它们并尝试仅用于创建功能,因此您只有一个出口点。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 避免更改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 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 |