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

企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误

 🧸欢迎来到dream_ready的博客,📜相信你对这两篇博客也感兴趣o (ˉ▽ˉ;)

📜 表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

📜 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程

目录

为什么代码需要遵循命名风格?

企业规范

包名 —— 统一小写

类名 —— 大驼峰

方法名、参数名、成员变量、局部变量 —— 小驼峰

常量命名 —— 全部大写

抽象类、异常类、测试类 —— 固定开头或结尾

数据库及其字段 —— 蛇形

css等 —— 串行


在JAVA中,有一些命名约定和风格指南,以确保代码的可读性和一致性

为什么代码需要遵循命名风格?

        想象一种场景,你到一个新的公司维护老项目,这个老项目里面的包名、类名、变量名定义的乱七八糟甚至有中文,而你之前的公司都严格的遵守代码规范,你一看到这个命名风格就知道这段代码是在干什么,这两种情况你喜欢哪个呢?毋庸置疑是严格遵守代码规范的项目

        代码命名风格是一种最佳实践,可以提高代码的质量、可维护性和可读性,减少错误和混淆,避免混乱和不必要的争议

以下从细致入微的出发点解释为什么代码需要遵循命名风格?

  •           可读性:有意义的命名使代码更容易理解。当变量、函数和类的名称清晰明了时,其他开发人员(包括你自己将来)可以更快地理解代码的功能和目的。
  •         减少歧义:一致的命名风格可以减少命名歧义。例如,在一个项目中,如果约定了使用驼峰命名法,那么其他开发人员会知道如何正确解释和使用变量名。
  •         易于维护:清晰的命名风格使代码更易于维护。当需要修改或添加新功能时,有意义的名称可以帮助开发人员更快地理解代码,并减少错误。
  •         提高可搜索性:一致的命名风格使代码更容易搜索和查找。开发人员可以快速定位到特定的变量、函数或类,而无需查看大量代码。
  •         降低学习成本:新加入的团队成员或其他开发人员可以更快地适应项目,因为他们可以根据命名风格来理解代码。这降低了学习和适应新代码的成本。
  •         代码审查:在进行代码审查时,清晰的命名风格可以帮助审查者更容易发现潜在的问题或改进点。
  •         规范性:遵循一致的命名规则和风格是项目开发的一部分,有助于维护团队的一致性和统一性,避免混乱和不必要的争议。  

企业规范

        首先、提一点、代码中的所有命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式

包名 —— 统一小写

包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词

        比如应用工具类包名为 ​​com.alibaba.open.util​​​

        我上面没有包含点分隔符的包名,因为我将包都展开了(这样子做的目的只是看着更舒服,也更好操作,但不强制),不展开的话如下:

解决包名合并问题 IDEA/idea 左侧包名合并/在一起了 解决办法,超实用

类名 —— 大驼峰

类名使用大驼峰风格,但以下情形例外:DO/BO/DTO/VO/AO

        大驼峰:所有单词首字母都需要大写,又叫帕斯卡命名法,比如UserController

        DO/BO/DTO/VO/AO等例外,比如 OrderVOUserDTO

方法名、参数名、成员变量、局部变量 —— 小驼峰

        方法名、参数名、成员变量、局部变量统一使用小驼峰风格

        小驼峰:除了第一个单词,其他单词单词首字母都大写,比如 userController、​​localValue 、 getHttpMessage() 、 inputUserId

常量命名 —— 全部大写

常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

比如 MAX_STOCK_COUNT​

抽象类、异常类、测试类 —— 固定开头或结尾

抽象类命名使用 ​​Abstract​​​ 或 ​​Base​​​ 开头;异常类命名使用 ​​Exception​​​ 结尾;测试类命名以它要测试的类的名称开始,以 ​​Test​​ 结尾

数据库及其字段 —— 蛇形

数据库库名、表名、字段名均采用蛇形命名法

蛇形:用下划线(_)作为单词间的分隔符,一般小写(实际使用情况必须大写),又叫下划线命名法,比如:user_controller

css等 —— 串行

串行:用短横线(-)作为单词间的分隔符,又叫脊柱命名法,比如:user-controller

🧸欢迎您于百忙之中阅读这篇博客,📜希望这篇博客给您带来了一些帮助,祝您生活愉快!

相关文章:

企业级JAVA、数据库等编程规范之命名风格 —— 超详细准确无误

🧸欢迎来到dream_ready的博客,📜相信你对这两篇博客也感兴趣o (ˉ▽ˉ;) 📜 表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学 📜 用户登录前后端…...

有什么可以自动保存微信收到的图片和视频的方法么

8-1 在一些有外勤工作的公司里,经常会需要在外面工作的同事把工作情况的图片发到指定微信或者指定的微信群里,以记录工作进展等,或者打卡等,对于外勤人员来说,也就发个图片的事,但是对于在公司里收图片的人…...

面试算法46:二叉树的右侧视图

题目 给定一棵二叉树,如果站在该二叉树的右侧,那么从上到下看到的节点构成二叉树的右侧视图。例如,图7.6中二叉树的右侧视图包含节点8、节点10和节点7。请写一个函数返回二叉树的右侧视图节点的值。 分析 既然这个题目和二叉树的层相关&a…...

vite配置terser,压缩代码及丢弃console

...

R语言使用surveyCV包对NHANES数据(复杂调查加权数据)进行10折交叉验证

美国国家健康与营养调查( NHANES, National Health and Nutrition Examination Survey)是一项基于人群的横断面调查,旨在收集有关美国家庭人口健康和营养的信息。 地址为:https://wwwn.cdc.gov/nchs/nhanes/Default.aspx 既往咱们…...

WOS与CNKI数据库的citespace分析教程及常见问题解决

本教程为面向新手的基于citespace的数据可视化教程,旨在帮助大家更快了解行业前沿的研究内容。 获取最新版本的citespace软件 在citespace官网下载最新的版本(如果是老版本,可能会提示让你去官网更新为最新版,老版本不再提供服务…...

NEFU数字图像处理(三)图像分割

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中,我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景&…...

UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器,主要做了样式的定制,更符…...

C++ Set

定义 set不同于vector,strin,list这种存储容器&#xff0c;set是一种关联式容器&#xff0c;底层是搜二叉&#xff1b; 功能 set可以确定唯一的值&#xff0c;可以排序去重。 接口 insert() #include <iostream> #include<set> using namespace std;int main…...

基于知识库的chatbot或者FAQ

背景 最近突然想做一个基于自己的知识库&#xff08;knowlegebase&#xff09;的chatbot或者FAQ的项目。未来如果可以在公司用chatgpt或者gpt3.5之后的模型的话&#xff0c;还可以利用gpt强大的语言理解力和搜索出来的用户问题的相关业务文档来回答用户在业务中的问题。 Chat…...

ZOC8 for Mac:超越期待的终端仿真器

在Mac上&#xff0c;一个优秀的终端仿真器是每位开发者和系统管理员的必备工具。ZOC8&#xff0c;作为一款广受好评的终端仿真器&#xff0c;以其强大的功能和易用性&#xff0c;已经在Mac用户中积累了良好的口碑。本文将为您详细介绍ZOC8的各项特性&#xff0c;以及为什么它会…...

织梦dedecms后台档案列表显示空白或显示不了文章的解决方法

织梦dedecms后台档案列表显示空白或显示不了文章的解决方法 dede/content_list.php空白解决方法如下 dede/content_list.php空白 在DEDE后台可以查看栏目文章&#xff0c;但是所有档案列表却为空白或者显示不了文章,如图所示&#xff1a; 后来找到dede/content_list.php,看了下…...

10本值得阅读的量化交易书籍

什么是量化交易&#xff1f; 量化交易是利用数学模型或算法来创建交易策略并进行交易。量化交易通常由大型机构交易员或对冲基金雇用&#xff0c;他们雇用大量的博士和工程师团队。从历史上看&#xff0c;量化交易领域一直非常隐秘&#xff0c;有效的想法往往受到公司的严密保…...

c++通过对象的地址初始化指针,需要对指针进行释放么(企业链表衍生)

在C中&#xff0c;如果你通过对象的地址来初始化指针&#xff0c;通常情况下是不需要手动释放指针的。这是因为对象的生存期与指针所指向的对象的生存期相关联。当对象超出其作用域或被销毁时&#xff0c;指向该对象的指针也会自动成为悬挂指针&#xff0c;这种情况下再访问该指…...

CentOS安装MySQL

参考官方链接&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/linux-installation-rpm.html CentOS版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 下载MySQL安装包&#xff08;版本&#xff1a;8.0.35&#xff09; 访问地址…...

AI:45-基于深度学习的声纹识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…...

Spring-cloud-openfeign拦截器RequestInterceptor接口

RequestInterceptor接口位于包io.github.openfeign-core下&#xff0c;使用Spring Cloud Feign的时候会自动依赖这个包 下面的代码会在每次调用Feign1的m1方法时&#xff0c;向HTTP头追加键值对武汉3:晴川历历汉阳树 FeignClient(value "feignA", url "XXX或…...

自动化测试开发 —— 如何封装自动化测试框架?

封装自动化测试框架&#xff0c;测试人员不用关注框架的底层实现&#xff0c;根据指定的规则进行测试用例的创建、执行即可&#xff0c;这样就降低了自动化测试门槛&#xff0c;能解放出更多的人力去做更深入的测试工作。本篇文章就来介绍下&#xff0c;如何封装自动化测试框架…...

Leetcode—2.两数相加【中等】

2023每日刷题&#xff08;十五&#xff09; Leetcode—2.两数相加 迭代法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l…...

拷贝音频、视频、word等二进制文件的实现方法,不掉帧

拷贝音频、视频、word等二进制文件的实现方法&#xff1a; 演示使用BufferedOutputStream 和 BufferedInputStream 使用 使用他们&#xff0c;可以完成二进制文件 思考&#xff1a;字节流可以操作二进制文件&#xff0c;可以操作文本文件吗&#xff1f;True public class B…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...