文章目录
前言
提示:这里可以添加本文要记录的大概内容:
关于如何在项目中保持干净的代码编写和学习好的技术
提示:以下是本篇文章正文内容,下面案例可供参考
一、如何保证代码的整洁
1、数据库
首先从数据库设计开始,就要保证你的数据库设计规范,字段选型正确,数据库表名起的让人能一眼看出这张表是干什么的,字段的注释,类型的相关注释,都要遵循阿里巴巴的Java开发规范,或者说保持你自己的一种规范原则。而不是说随意创建,随意起名,不规范的数据库设计,会导致你在开发阶段频繁的添加或删除字段,写代码的时候不知道该库的作用,也给后来的维护和后续人的开发带来了不便。
规范的数据库设计:
规范的数据库设计,不仅让人眼目一新,而且在开发的时候会省下许多不必要的麻烦和时间,也为后续的维护和后续人员的参与开发节省下许多时间。
2、分支的开发
对于目前项目中,代码关联,还是通过git实现团队的代码管理和开发,针对每次进行任务而定自己的分支名,像一些公司可能要求,修改bug的分支叫fix-bug,开发的分支叫某某功能开发,这也是一种潜移默化的规范,这样不仅能很快的分辨出你这个分支是干什么的,也可以杜绝出现事故时,无法准确的回滚。
如:
通过日期和功能,就能很快的定位到哪个分支的问题,也能很清楚的分别出你这个分支是干什么的,避免了很多不必要的麻烦,当然如果你在本地都是一个分支开发提交,那么你也不要忘记了在提交的时候,先拉取一下主分支代码,然后合并到本地哦!
3、代码的编写
3.1、结构
规范的包结构,有助于你快速找到对应的代码和工具,不仅提高自己的开发效率,而且保证功能多得时候,或时间过长之后,可以让你知道该功能在哪个下面,该接口的实体类,实现,返回,工具类,在哪里。
如:Entity层(实体层)、Dao层(数据库访问)、Service层(业务处理)、Util(工具类)等
Controller:用于放置控制器相关的代码。这些代码主要负责处理用户请求,调用服务层的方法,并返回响应数据。
Service:用于放置业务逻辑层的代码。这一层主要负责实现具体的业务逻辑,它通常会调用数据访问层的方法来获取或存储数据。
Entity:用于放置实体类,即数据模型。这些类通常对应数据库中的表,用于映射和传输数据。
具体到项目结构,一个典型的Spring Boot项目可能会遵循以下目录结构:
src/main/java:放置项目的Java源代码。
src/main/resources:放置项目的静态资源和配置文件。
src/test/java:放置项目的测试用例代码。
在src/main/java目录下,代码的组织结构通常如下:
com.xxx.xxx.controller:放置Controller相关的代码。
com.xxx.xxx.service:放置Service相关的代码。
com.xxx.xxx.entity:放置Entity相关的代码。
此外,包名应全部使用小写字母,以点(.)分隔不同的层级。包的结构应该反映出代码的逻辑层次,通常是按照功能、模块或者组件来组织。
总之,需要注意的是,并没有一套通用的标准,不同公司或团队的使用习惯和规范也不尽相同。上述结构只是一种典型的、被广泛采用的项目结构示例。实际项目中,应根据项目的具体需求和团队的开发习惯来调整项目结构。
3.2、类名的规范
在项目中,针对我们的类名,最好的起名方式是简洁又能让人知道这个类是干嘛的。在实际编程中,遵循这些命名规范可以使代码更加整洁、易于理解和维护,不仅是自己看着舒服,别人接手或进行维护的时候也会很方便,这样就极大地节约了团队的开发时间。
命名规则:类名必须以字母或下划线开头,不能以数字开头。如果类名包含多个单词,应使用驼峰式命名法,即每个单词的首字母大写,其余字母小写。例如,TestPage或XMLExample。
命名建议:类名应该是名词,而不是动词或形容词,以准确反映类的功能或特性。类名应该简洁明了,具有代表性,避免使用过于复杂或模棱两可的名称。
此外,类名中不应使用Java的关键字或保留字,也不应包含除下划线和美元符号以外的任何特殊字符或空格。同时,类名应该能够体现类的职责和功能,有助于提高代码的可读性和可维护性。
3.3、代码编写的规范
在编写代码的时候,首先在方法名上面你就得让人明白你这个方法是干什么的,如:新增的时候,就写add或save,修改的时候就写update,删除的时候就写delete,这样以功能命名的方法名,不仅让人一眼就能看出这个接口是干嘛的,也能让你后续时间过长,而不知道自己所写的功能。
同样建议在编写代码的时候写清相关的代码注释,这样不仅有助于你梳理代码相关逻辑,也可以为后来的人提供便利,这样也不会因为时间过长,而忘记自己功能代码的逻辑。
关于注释同样在使用时也要规范使用
单行注释:使用双斜杠(//)开头,后面跟着注释内容。例如:
// 这是一个单行注释
int a = 10;
多行注释:使用斜杠星号(/)开头,星号斜杠(/)结尾。例如:
/*
* 这是一个多行注释
* 可以跨越多行
*/
int a = 10;
文档注释:使用斜杠星号(/**)开头,星号斜杠(*/)结尾。这种注释通常用于生成API文档。例如:
/**
* 这是一个文档注释
* 用于生成API文档
*/
public class MyClass {
// ...
}
注释的内容应该简洁明了,能够清晰地表达代码的功能和意图。避免使用过于复杂的词汇和句子结构。 注释应该与代码保持同步更新,如果代码发生变化,注释也应该相应地更新。 对于公共方法和类,应该提供详细的文档注释,以便其他开发人员了解其功能和用法。对于复杂的算法和逻辑,可以使用注释来解释其实现原理和关键步骤。
代码中也应该要避免魔法数字的出现,相关的常量,过多的话可以写一个常量类,不多的话,可以在接口处,定义常量。
- 声明常量:在Java中,使用final关键字来声明一个常量。这意味着一旦常量被初始化,它的值就不能被改变。
- 命名规范:常量名应该全部使用大写字母,并且在单词之间用下划线分隔。例如,MAX_VALUE、PI和MESSAGE是符合规范的常量名。
- 赋值要求:常量必须在声明时或在每个构造方法的首次执行前被赋予初始值。
- 类型限制:常量可以是任何基本数据类型,也可以是对象引用,但是对象引用常量必须指向不可变的对象。
- 使用场景:常量通常用于表示不会改变的值,如数学中的圆周率PI,或者配置项中的最大值MAX_VALUE等。
- 避免魔法值:在代码中应避免使用硬编码的值(即所谓的“魔法值”),而是通过定义常量来提高代码的可读性和可维护性。
- 访问控制:根据需要,常量可以声明为public、protected、private或默认包级别访问权限。
- 静态属性:如果常量是属于类的,通常会将其声明为static,这样它们就可以在不创建类实例的情况下被访问。
如:
4、其他
其实IDEA中自带的就有代码整理格式的功能,只需要在相关代码片段中选择即可。
或者你也可以下载相关的插件如:
阿里巴巴的代码规范扫描。用于检查当前类自己是否有不规范的地方。
总结
当然这只是我个人有代码洁癖,对代码的规范要求比较格式化,因为我觉得在项目中,规范的数据库设计,规范的包结构,规范的类名和方法名,代码逻辑的注释,重复代码的提取,工具类等等,这些规范不仅让我得代码耳目一新,并且对于日后新人进来,学习相关的代码,日后的维护,都是有很大的帮助,当然,毕竟每个公司,每个人的要求不一致,所以大家仅供参考,当然大家如果有好的建议可以分享出来,共同进步。