Skip to content

Latest commit

 

History

History
94 lines (58 loc) · 4.2 KB

codestyle.md

File metadata and controls

94 lines (58 loc) · 4.2 KB

代码风格

  • 缩进

1、使用的缩进的字符数为4,用Tab来进行缩进,因为当程序需要2或3个缩进时,使用4格缩进,不会使语句过长超过屏幕,也便于阅读。

2、在使用if或while等嵌套结构时,在if或while等语句下再进行Tab缩进,使程序看起来更加美观。

  • 变量命名

1、局部变量的命名采用下划线分隔法,局部变量名采用英文单词的来命名,这样更能明白变量的含义。

正例:student_id/teacher_id

2、遇到含义相同的变量,会在末尾用1,2来区别。但也有例外,在使用循环变量时,因无特殊含义,仅用i,j,k来定义。

正例:p1/p2/p3

3、在标识符命名方面,少采用缩写,若采用缩写就会用发音的部分来命名,并在不容易看出的缩写命名后添加注释。标识符长度跟随所要表达的含义来增减长度,以使其更容易理解。在标识符命名中,最重要的是要保持一致性——在整个程序中,对变量或是函数一类使用相同的命名规则。

正例:int temp 和 int tmp

  • 每行最多字符数

1、每行含缩进不允许超过90个字符。

2、当一个程序行很长时,在适当位置运用回车键将程序分行,使其不破坏语句的完整性,也使语句看起来显得不混乱、零散。

  • 函数最大行数

1、一个函数允许包含语句的行数我限制为80行,不包括空行和注释。

2、一个函数的最大长度和函数的复杂程度以及缩进大小成反比。

  • 函数、类命名

1、函数名使用lowerCamelCase风格,必须遵从驼峰形式。函数名用动词打头,以名词结尾的形式(少数会只有动词命名),使函数功能更容易理解。

正例:getName/setId

2、类名使用UpperCamelCase风格,必须遵从驼峰形式。

正例:InfectStatistic/LibrarySystem

  • 常量

1、对常量的命名采用全大写的方式。

正例:public static final int YEAR = 365;

2、如果变量值仅在一个范围内变化用Enum类。如果还带有名称之外的延伸属性,必须使用Enum类,下面正例中的数字就是延伸信息,表示星期几。

正例:publicEnum{MONDAY(1),TUESDAY(2),WEDNESDAY(3), THURSDAY(4),FRIDAY(5),SATURDAY(6),SUNDAY(7);}

  • 空行规则

1、变量定义和方法实现间增加空行,便于阅读。

2、在函数之间,增加空行来分割函数,这样使函数之间显得不拥挤,区分更加明显。

  • 注释规则

1、类、类方法的注释使用/内容/格式。

2、一般在变量名后,添加一行注释。

正例:char option; //功能选项

3、边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

  • 操作符前后空格

1、在操作符前后添加空格,利于代码的清晰度

正例:int i = 0;/sum = x + y;

  • 大括号位置

1、我习惯将左大括号放在行尾,而将右大括号放在行首。对if等语句和函数(定义)没有放置位置的区别(使用do-while例外)。

  • 左大括号前不换行。
  • 左大括号后换行。
  • 右大括号前换行。
  • 右大括号后还有else等代码则不换行;表示终止右大括号后必须换行。

2、在if等语句块较为简单时,我会省略左右大括号的使用,以使程序显得简短且美观。

  • 其他规则

1、在需要使用变量时,我会在使用前定义,而不是在使用时才定义,这样当一些需要用到其值时,无法获得的情况。例如:

正例:int i;
   for(i=0;i<n;i++)

2、在多个变量赋值时,进行分开赋值,而不会写在同一行,使程序更加美观。

正例:x = 1;
   y = 2;
   z = 3;

3、变量初始化时,提倡在尽可能小的作用域中声明变量,离第一次使用越近越好。这使得代码易于阅读,易于定位变量的声明位置、变量类型和初始值。

正例:int i = 3;

4、在使用一些变量、字符串或者数组时,为避免其被不必要的修改,也为编译时类型检测增加了一层保障,更好的尽早发现错误。

正例:public void printInfo(const char *s);