编程规范
笔者一直觉得自己的编程不够规范,突然想到准备简单学习一下这种规范
1. 命名规范
命名规范有助于提高代码的可读性和理解性。不同的命名风格有助于区分不同类型的变量、函数、类等。
变量和函数命名:
- 驼峰命名法(CamelCase):大多数编程语言都使用驼峰命名法。变量名和函数名从小写字母开始,后续每个单词的首字母大写。
- 示例:
userName
,getUserInfo()
- 示例:
- 下划线命名法(Snake_case):在变量和函数名称中使用下划线来分隔单词。常见于 Python 等语言。
- 示例:
user_name
,get_user_info()
- 示例:
- 大写命名法(UPPER_CASE):常用于常量或枚举的命名,所有字母大写,单词之间用下划线分隔。
- 示例:
MAX_SIZE
,PI_VALUE
- 示例:
- 驼峰命名法(CamelCase):大多数编程语言都使用驼峰命名法。变量名和函数名从小写字母开始,后续每个单词的首字母大写。
类名命名:
- 帕斯卡命名法(PascalCase):类名的每个单词首字母大写,没有下划线。
- 示例:
Person
,EmployeeInfo
- 示例:
- 帕斯卡命名法(PascalCase):类名的每个单词首字母大写,没有下划线。
常量命名:
- 常量通常使用大写字母,并且单词之间用下划线分隔。
- 示例:
PI
,MAX_LENGTH
- 示例:
- 常量通常使用大写字母,并且单词之间用下划线分隔。
命名注意事项:
- 避免使用缩写:除非非常常见(如
URL
,HTML
),否则避免使用缩写,保证代码的可读性。 - 有意义的名称:变量名和函数名应清晰表明其用途和功能。
- 避免使用缩写:除非非常常见(如
有时候会给函数参数前加上一个下划线,以此来区分是函数参数还是外部全局变量
2. 缩进与格式化
正确的缩进和格式化有助于提高代码的可读性,尤其是当代码变得复杂时。
缩进:
- 空格 vs 制表符(Tab):通常推荐使用空格而不是制表符。一个常见的约定是每级缩进使用 2 或 4 个空格。
- 一致性:无论使用空格还是制表符,保持整个项目一致性至关重要。
行宽:
- 为了避免代码横向滚动,建议将每行代码的长度限制在 80 到 120 个字符之间。
空格的使用:
- 操作符前后加空格:操作符(如
=
,+
,-
,*
)前后应加空格,增加代码的可读性int a = 5 + 3; // 正确 int a=5+3; // 错误
- 逗号后加空格:在列表、函数参数等中,逗号后应加一个空格。
let arr = [1, 2, 3]; // 正确`
- 换行:在表达式比较长时,可以在合适的位置拆分为多行,保证代码不会过长并保持可读性。
- 操作符前后加空格:操作符(如
3. 注释
注释是帮助开发人员理解代码的重要工具。良好的注释可以减少维护代码的难度。
- 函数和方法注释:每个函数和方法应该有简短的注释,说明其功能、参数和返回值。
/**
* 计算两数之和
* @param {number} a - 第一个数字
* @param {number} b - 第二个数字
* @returns {number} - 两数之和
*/
function add(a, b) {
return a + b;
}
- 类注释:类应该有描述其用途和功能的注释。
- 避免过多注释:如果代码本身足够清晰,尽量避免不必要的注释。代码应该自解释。
- 注释样式:使用单行注释 (
//
或#
) 或多行注释 (/* ... */
) 时,要根据项目的代码风格一致地使用。
4. 函数与方法设计
- 单一职责原则(SRP):每个函数应该只做一件事,函数的功能应该尽量简单和专一。避免一个函数做多个不相关的事情。
- 函数长度:函数应该保持简短,一般控制在 20 行以内。
- 参数数量:尽量减少函数的参数数量,通常不超过 3 到 4 个。如果参数太多,可以考虑将它们封装到一个对象中。
5. 代码结构与组织
- 文件组织:不同的功能应该分配到不同的文件中。每个文件应该具有单一的责任,并且文件命名应清晰表达其内容。
- 类与函数顺序:类和函数的定义顺序应遵循一定的规则,通常是先定义类,再定义类方法。
- 模块化:大型项目应该使用模块化设计,将代码拆分为多个独立的模块,每个模块完成一个独立的功能,方便管理和重用。
6. 错误处理
- 异常处理:使用适当的错误处理机制(如
try/catch
或try/except
)捕获和处理可能的异常,避免程序崩溃。 - 返回值和错误码:在没有异常处理机制的语言中,通常会使用返回值或错误码来指示函数执行是否成功。
- 清晰的错误信息:错误信息应简洁且具有描述性,便于开发人员定位问题。
7. 性能优化
- 避免不必要的计算:在循环中避免重复计算相同的值,将计算移出循环。
- 数据结构选择:选择适合的算法和数据结构,以提高程序的效率。
- 内存管理:对于需要手动管理内存的语言(如 C/C++),要特别注意内存分配和释放,避免内存泄漏。
8. 版本控制与提交规范
- 提交信息:每次提交都应该有清晰的提交信息,简洁地描述本次提交的内容和目的。
- 分支管理:合理使用 Git 或其他版本控制工具的分支管理功能,确保开发、测试和生产环境的代码隔离。
9. 安全性
- 输入验证:对于来自外部(如用户输入、API 请求等)的数据要进行充分的验证和清理,防止 SQL 注入、XSS 攻击等安全问题。
- 加密与存储:对敏感信息(如密码)进行加密存储,使用安全的加密算法。