编码规范
华为的编码规范主要包括以下几个方面:
命名约定:变量、函数等命名应清晰、明了,有明确含义,避免使用单个字符或容易混淆的缩写。常量命名应全部大写,单词间用下划线分隔。文件命名应遵循特定规则,如C文件以.cpp结尾,头文件以.h结尾。
排版格式:使用空格进行缩进,每次缩进4个空格。行宽建议不超过120个字符。大括号应各独占一行,并位于同一列。在操作符两侧、逗号后、分号后等位置应添加空格。
注释风格:文件头注释必须包含版权许可、版本号、生成日期、作者等信息。函数头注释应列出函数的目的、功能、输入参数、输出参数、返回值等。
作用域管理:优先使用命名空间来管理全局函数、全局常量和全局变量。使用匿名命名空间或static关键字来封装不需要导出的变量、常量或函数。
头文件使用:每个.cpp文件应有一个对应的.h文件,用于声明需要对外公开的类与接口。
变量:一个变量只能有一个功能,避免使用全局变量,明确全局变量的初始化顺序。
表达式:确保表达式的值在任何允许的标准运算次序下都是相同的。避免在if语句或函数参数中使用赋值语句。
注释:注释内容要清楚明确、不能有歧义。文件头部应进行详细注释,包括版权说明、版本号等。
阿里巴巴的Java编码规范则涵盖了以下方面:
编程规约:手册分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约等维度。
方法参数类型:必须一致,避免出现自动装箱拆箱操作,以防产生难以排查的异常。
SimpleDateFormat的使用:指出SimpleDateFormat是线程不安全的,提示开发者在使用时需要注意。
对于我而言,我应该要遵守:
-
命名约定
变量和函数:使用有意义的英文单词,避免使用缩写,使得代码自解释。例如,使用userCount而不是uc。
常量:全部大写,并用下划线分隔单词,如MAX_USERS。 -
排版格式
缩进:使用4个空格进行缩进,不使用Tab。
行宽:每行代码不超过100个字符。
大括号:遵循K&R风格,即左大括号后换行,右大括号前换行。 -
注释风格
文件头注释:包括版权信息、文件描述、版本信息等。
函数注释:描述函数的功能、参数、返回值和可能的异常。 -
作用域管理
命名空间:使用命名空间来避免全局变量和函数的冲突。
静态变量:尽量使用静态变量替代全局变量。 -
变量使用
单一职责:一个变量只用于一个目的,避免多功能变量。