standard的规范链接: https://standardjs.com/
CSS命名规范: https://getbem.com/introduction/
命名规范
命名规范是代码规范中的一个重要组成部分,它涉及到变量、函数、类、文件等各种命名方式。良好的命名规范可以提高代码的可读性、可维护性和可扩展性。
我们项目主要使用驼峰命名法。
变量命名:使用小写字母开始,后面的单词首字母大写,不使用下划线或其他分隔符。例如:firstName、lastName、age、phoneNumber 等。
函数命名:使用小写字母开始,后面的单词首字母大写,不使用下划线或其他分隔符。例如:getUserInfo、getUserName、setPassword、calculateTotal 等。
类命名:使用大写字母开始,后面的单词首字母大写,不使用下划线或其他分隔符。例如:Person、Student、Teacher、Course 等。
常量命名:使用大写字母,单词之间使用下划线分隔。例如:MAX_LENGTH、MIN_VALUE 等。
枚举命名:使用大写字母开始,后面的单词首字母大写,不使用下划线或其他分隔符。例如:Color、Size、Type 等。
泛型命名:使用单个大写字母。例如:T、K、V 等。
编码规范
1. 缩进规范:
- 使用 4 个空格作为一个缩进层级。 - 不要使用制表符,因为它们在不同的编辑器和环境中可能会显示不同的宽度。
2. 空格规范:
- 在运算符前后添加空格,例如:a + b。 - 在逗号后添加空格,例如:a, b, c。 - 在冒号后添加空格,例如: {'a': 1, 'b': 2} 。 - 在函数参数列表的左括号前不要添加空格,例如:foo(a, b, c)。
3. 注释规范:
- 在代码中添加注释,以便于其他人理解代码的含义和作用。 - 使用清晰的语言和格式编写注释,例如:使用英文、使用完整的句子、使用正确的标点符号等。 - 在代码中添加注释时,应该考虑到注释的位置和粒度,避免过多或过少。
4. 代码风格规范:
- 使用一致的命名规范,例如:驼峰命名法、下划线命名法等。 - 遵循一致的代码结构和格式,例如:花括号的位置、换行符的使用等。 - 避免使用魔法数字和硬编码的字符串,应该使用常量或枚举类型来代替。 - 避免使用全局变量和单例模式,应该使用依赖注入等方式来管理对象之间的依赖关系。
错误处理规范
1. 异常处理:
- 在代码中使用异常处理来处理错误和异常,避免使用错误码和返回值来表示错误。 - 在捕获异常时,应该使用具体的异常类型来捕获,避免使用通用的 Exception 类型来捕获。 - 在捕获异常时,应该考虑到异常处理的位置和粒度,避免过多或过少的异常处理。
2. 日志记录:
- 在代码中添加日志记录,以便于追踪错误和异常。 - 在记录日志时,应该使用清晰的语言和格式,例如:使用英文、使用完整的句子、使用正确的标点符号等。 - 在记录日志时,应该考虑到日志记录的级别和粒度,避免过多或过少的日志记录。
3. 错误信息:
- 在代码中使用清晰和具体的错误信息,以便于用户理解和解决问题。 - 在错误信息中,应该包含错误的类型、位置和原因等信息,避免使用过于简单或模糊的错误信息。
4. 异常处理的最佳实践:
- 在捕获异常时,应该及时处理异常,避免将异常传递到更高层次的代码中。 - 在处理异常时,应该考虑到异常的类型和原因,避免过于简单或模糊的异常处理。 - 在处理异常时,应该考虑到异常的影响和后果,避免对系统的稳定性和安全性造成影响。
安全规范
1. 密码加密:
- 在存储用户密码时,应该使用安全性高的加密算法,例如 SHA-256 或 bcrypt 等。 - 在用户登录时,应该对用户输入的密码进行加密处理,以便于和存储的密码进行比对。 - 在密码加密时,应该使用随机盐值,避免相同的密码被加密成相同的值。
2. SQL 注入:
- 在编写 SQL 语句时,应该使用参数化查询或存储过程,避免将用户输入的数据直接拼接到 SQL 语句中。 - 在参数化查询或存储过程中,应该对输入的参数进行类型检查和转换,避免恶意用户输入非法的参数。 - 在参数化查询或存储过程中,应该对输入的参数进行长度检查和过滤,避免恶意用户输入过长或包含特殊字符的参数。
3. XSS 攻击:
- 在输出用户输入的数据时,应该对数据进行过滤和转义,避免恶意用户输入的脚本代码被执行。 - 在输出用户输入的数据时,应该使用合适的 HTML 标签和属性,避免恶意用户输入的脚本代码被执行。 - 在输出用户输入的数据时,应该限制数据的长度和格式,避免恶意用户输入的数据对系统造成影响。
4. 安全性的一致性要求:
- 在整个系统中,应该遵循相同的安全规范和标准,避免不同部分之间存在安全漏洞。 - 在整个系统中,应该使用相同的加密算法和技术,避免不同部分之间的数据传输和存储存在安全漏洞。 - 在整个系统中,应该使用相同的认证和授权机制,避免不同部分之间存在越权访问和操作的漏洞。
性能规范
1. 代码优化:
- 避免重复代码,使用函数或类进行封装和复用。 - 优化循环和递归算法,减少时间和空间复杂度。 - 避免使用全局变量,使用局部变量或参数传递数据。 - 使用合适的数据结构和算法,提高代码效率和可读性。
2. 缓存使用:
- 使用缓存技术,避免频繁访问数据库和文件系统。 - 设置合适的缓存过期时间,避免缓存数据过期或失效。 - 使用缓存命名空间,避免不同数据之间的冲突。 - 使用缓存预热技术,提高系统的响应速度。
3. 数据库查询:
- 使用索引技术,加快数据库查询速度。 - 避免使用 SELECT *,只查询需要的字段。 - 使用 JOIN 和子查询,避免多次查询数据库。 - 避免使用 OR,使用 IN 或 UNION 替代。
版本控制规范
1. 使用合适的版本控制工具,如 Git、SVN 等,并在项目开始时就进行版本控制初始化。
2. 规范 Git 分支命名,通常主分支为 master,开发分支为 develop,特性分支为 feature/XX,修复分支为 hotfix/XX,具体可以查看git flow文档
3. 每次提交代码前,先进行本地代码的修改和测试,并确保代码风格统一。
4. 提交代码时,应该添加有意义的 commit message,简要描述该次提交的内容,方便团队成员理解修改的意图。
5. 及时拉取最新的代码,避免出现冲突或版本不一致的问题。
6. 避免在主分支上直接提交代码,应该在开发分支或特性分支上进行开发,并在开发成果稳定后合并到主分支上。
7. 定期进行代码合并和分支的删除,避免出现冗余和过多的分支。
8. 保护主分支的稳定性,避免引入新的问题或代码风格不一致的情况。
9. 定期进行版本发布和打标签,便于回滚或复原代码。
团队协作规范
1. 代码管理
- 确定代码管理的流程和标准,如分支管理、代码格式、commit message 等。 - 使用合适的代码管理工具,如 Git、SVN 等,便于代码的版本管理和协作。 - 遵循代码规范,保持代码风格的一致性,减少代码冲突和维护成本。 - 定期进行代码评审和质量检查,及时发现和解决问题,提高代码质量。 - 避免在代码中使用敏感信息,如密码、密钥等,确保代码的安全性。
2. 代码提交
- 确定代码提交的流程和标准,如代码审查、自动化构建、测试等。 - 提交代码之前,应该仔细检查代码,确保代码符合规范和质量要求。 - 提交代码时,应该附上详细的 commit message,描述代码变更的内容和原因。 - 避免频繁提交无用的代码,减少代码库的冗余和维护成本。 - 定期进行代码合并和分支管理,确保代码库的整洁和可维护性。
3. 代码评审
- 确定评审人员和评审时间,并及时通知评审人员。 - 确定评审标准和流程,如代码规范、代码质量、性能等。 - 评审过程中,评审人员应该仔细阅读代码,发现问题并提出改进建议。 - 评审结果应该及时反馈给开发人员,确保问题得到及时解决。 - 定期进行代码评审,提高代码质量和可维护性。
4. 团队协作
- 尊重团队成员的个人时间和隐私,避免在非工作时间打扰或干扰。 - 及时回复和解决团队成员的问题和需求,避免出现沟通瓶颈和延误。 - 定期进行团队内部培训和知识分享,提高团队成员的技术水平和工作效率。 - 遵循团队协作规范,保持团队成员之间的沟通和协作的顺畅和高效。 - 定期进行团队成员的绩效评估,发现和解决问题,提高团队的工作效率和质量。