当前位置: 首页 > news >正文

代码规范简述

目录

命名规范

代码格式

OOP规约

集合规范

并发规范

SQL语句规范

SQL 建表规范

SQL 索引规范

SQL 查询规范

控制语句规范

Javadoc 规范

其他规范


命名规范

1、包名:使用小写字母,多个单词之间用"."分隔,例如:com.example.mypackage。

2、类名和接口名:使用大驼峰命名法,即每个单词首字母大写,例如:MyClass、MyInterface。

3、方法名:使用小驼峰命名法,即第一个单词小写,后面每个单词首字母大写,例如:myMethod。

4、变量名:同样使用小驼峰命名法,例如:myVariable。

5、常量名:使用大写字母和下划线命名,例如:MY_CONSTANT。

6、参数名:与变量名相同,使用小驼峰命名法。

7、类型参数名:使用单个大写字母,例如:T、E。

8、枚举常量名:常量名全部大写,单词间用下划线隔开,例如:MAX_NUMBER。

注意所有的命名应该对应相应的单词,避免无意义的命名。

代码格式

1、缩进:使用四个空格进行缩进,不要使用制表符。

2、换行:每行代码长度不应超过80个字符。当一行代码过长时,可以通过换行来使其更易读。

3、空格:在二元运算符(如赋值、逻辑运算符等)两侧加上空格,但在一元运算符(如取反运算符)之后不加空格。例如:int result = 1 + 2; 和 if (!flag) { ... }。

4、大括号:在代码块的左大括号前加上一个空格,右大括号独占一行,除非是空代码块。例如:

if (condition) {// 代码
} else {代码
}


5、注释:注释应该清晰明了,简洁准确,且不应与代码格式冲突;注释应该放在需要解释的代码行的上方,或者与代码保持一定的间距。

6、异常处理:每个 try 块都应该有一个对应的 catch 块或者 finally 块。catch 块中应该包含恰当的异常处理代码。

其他:禁止出现代码多行注释,禁止出现无意义的空格,禁止出现行末空格,等等。

OOP规约

1、类命名:类名采用大驼峰命名法,例如:UserInfo;

2、方法命名:方法名采用小驼峰命名法,例如:getUserName();

3、变量命名:变量名采用小驼峰命名法,例如:userName;

封装性:封装性是面向对象编程的核心,要求类的属性和方法要定义为private,只能通过public方法来访问和修改;

继承性:继承性是面向对象编程的重要特性,要求子类和父类之间要保持适当的关系,不应该随意修改父类的属性和方法;

多态性:多态性是面向对象编程的又一重要特性,要求方法的参数类型和返回值类型要尽量使用父类或接口类型,便于扩展和维护。

集合规范

集合在声明后应该立即初始化,避免出现空指针异常;

集合的容量应该在初始化时指定,以提高程序的效率;

集合的类型应该尽量使用泛型,以提高代码的健壮性和可读性;

集合的遍历应该使用迭代器或foreach循环,不应该使用普通的for循环。

并发规范

线程安全:多线程环境下,应该保证程序的线程安全性,防止出现数据竞争和死锁等问题;

同步机制:在需要修改共享变量的地方应该加上同步机制,以保证数据的一致性和完整性;

线程池:在使用多线程时应该使用线程池,以避免线程的创建和销毁带来的性能损失。


SQL语句规范

每条 SQL 语句占一行,避免多条语句写在同一行;

SQL 语句的关键字统一使用大写;

表名、列名等标识符采用小写,多个单词用下划线连接;

SQL 语句中的字面量(如字符串、数字)使用单引号括起来;

注释可以使用双短横线--或 /* */ 表示。


SQL 建表规范

主键、唯一索引、普通索引等都需要命名,名称必须表达清楚索引的含义;

表名应该采用小写字母,单词之间用下划线隔开,例如:user_info;

字段名也应该采用小写字母,单词之间用下划线隔开,例如:user_name;

表字段必须加注释,注释内容应该表达字段的含义、业务含义以及约束条件;

应该根据实际情况选择合适的数据类型,以尽可能地节省存储空间;

不使用保留字作为字段名,以避免出现不必要的错误;

尽量避免使用 MySQL 关键字作为表名或列名,如 select、order 等。


SQL 索引规范

索引字段顺序应该优化,常用的放前面,复合索引优先考虑常用组合;

多表连接的 SQL 语句,应该在关联字段上建立索引,以提高查询效率;

避免在索引列上使用函数操作,如:select * from table where substr(name,1,3)='abc',应改为select * from table where name like 'abc%',以充分利用索引的优势。

注意:索引可以提高查询的效率,但过多的索引会降低。


SQL 查询规范

避免使用 SELECT *,只选择必要的字段;

避免在 WHERE 子句中对索引字段使用不等于操作符,如:where id<>10,这样会导致索引失效;

避免使用子查询或者 JOIN 进行大量数据的计算和查询,尽量减少对数据的扫描。

总之,SQL 语句的书写规范、建表规范、索引规范、查询规范等都可以提高 SQL 的效率,减少错误和异常。在实际开发中,我们应该尽量遵循这些规范,写出高效、安全、易于维护的 SQL 语句。

控制语句规范

1、不能在条件判断中使用复杂的表达式,应该将复杂表达式的结果赋值给一个变量,然后在条件判断中使用变量。

2、在判断 null 值时,应该使用 isnull() 或者 is not null 而不是 = null 或者 != null。

3、switch 语句必须带有 default 分支,并且 default 分支放在最后。

4、使用循环时,应该注意:

在使用 for 循环时,应该尽可能地使用增强型 for 循环来代替传统的 for 循环,以提高代码的可读性和可维护性;
在使用 while 循环时,应该注意循环条件的正确性,避免出现死循环;
对于 do-while 循环,应该尽可能地避免使用,以提高代码的可读性和可维护性。

5、在使用递归时,应该注意递归深度的控制,避免因递归深度过大导致程序崩溃。

6、在使用 switch 语句时,应该注意:

switch 语句中的每个 case 分支都应该使用 break 语句或者 return 语句结束,以避免出现意外的控制流程;

当 switch 语句中的 case 分支较多时,应该使用 break 语句或者 return 语句来明确地结束每个分支;
对于可能出现 null 值的情况,应该使用 switch 语句的 default 分支来处理,以避免出现空指针异常。

Javadoc 规范

【Javadoc规范是Java开发中的一种文档规范,用于生成API文档,提供代码文档化和注释工具。Javadoc注释是一种特殊的Java注释,可以提取类、方法、变量等信息,生成HTML格式的API文档。Javadoc注释以/**开头,以*/结尾,可以用于注释类、方法、变量等元素】

其中包含丰富的标签,可以描述注释的各种属性,例如:
1、@param:用于描述方法参数的名称和说明;
2、@return:用于描述方法返回值的类型和说明;
3、@throws:用于描述方法可能抛出的异常;
4、@see:用于引用其他类、方法或变量;
5、@deprecated:用于标注已经过时的方法或变量。

Javadoc注释不仅可以用于生成API文档,还可以提高代码的可读性和可维护性,方便其他开发人员理解代码和接口。因此,在Java开发中,Javadoc规范是一个非常重要的文档规范。
注意:
对于每个类、接口、方法、字段,都应该写一个对应的Javadoc注释,描述其作用、参数、返回值等信息。

其他规范

异常处理规范:包括异常处理的方式、处理顺序、日志记录等的规范,要求程序要能够正确处理异常,避免出现不必要的错误;

日志规范:包括日志的级别、格式、位置等的规范,要求程序要能够记录必要的日志信息,便于排查和解决问题;

性能规范:包括代码的优化、避免资源浪费、减少网络传输等的规范,要求程序要具有高效性、可伸缩性和可扩展性;

安全规范:包括密码存储、数据加密、SQL注入、XSS攻击等的安全规范,要求程序要能够保证数据的安全性和可靠性;

测试规范:包括单元测试、集成测试等的规范,要求程序要具有可测试性和可维护性。

http://www.lryc.cn/news/27477.html

相关文章:

  • 【Java集合框架】篇五:Map接口
  • Typroa安装教程
  • 【MySQL】存储引擎
  • 芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决
  • 【大数据监控】Prometheus、Node_exporter、Graphite_exporter安装部署详细文档
  • 《C++ Primer》 第十一章 关联容器
  • WebRTC标准与框架解读(1)
  • 数据结构的一些基础概念
  • 【Python每日一练】总目录(不断更新中...)
  • latex插入图片(自用)
  • 【微信小程序】-- 网络数据请求(十九)
  • K8S 实用工具之一 - 如何合并多个 kubeconfig?
  • 阿里云ECS服务器的6大功能组件
  • 外贸建站多少钱?不同预算对应的建站方案!
  • Vue3中hook的使用及使用中遇到的坑
  • 数据库-差集交集并集
  • spark性能调优(四):网络
  • 高性能 WPF 图表控件LightningChart.NET:支持从 Web 服务器获取数据 | 附最新版试用下载
  • 文科女生月入14k背后:转行IT软件测试不是谁都学得来!
  • GB28181监控视频统一汇聚平台LiveGBS将海康大华华为宇视等厂家监控设备统一接入后如何生成固定播放链接或者固定的流地址可以直接无插件播放或者拉取
  • 认识BUG
  • C++string类型内置的搜索函数
  • Disruptor 消费线程丢失、写入无限阻塞问题
  • 【禅道测试环境搭建及安装】Linux上的禅道安装教程,从环境搭建开始
  • spring-boot rabbitmq整合
  • CentOS7安装redis redis常用命令
  • 世界文明的脉络
  • map和set 的封装
  • Springboot集成kafka(环境搭建+演示)|超级详细,建议收藏
  • Qt 绘制图表 - Qt Charts版