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

news2025/7/27 16:06:54

 🧸欢迎来到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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1156761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

作为网工有必要了解一下什么是SRv6?

什么是SRv6? 【微|信|公|众|号:厦门微思网络】 【微思网络http://www.xmws.cn,成立于2002年,专业培训21年,思科、华为、红帽、ORACLE、VMware等厂商认证及考试,以及其他认证PMP、CISP、ITIL等】 SRv6&…

MFC简单字符串压缩程序

一个mfc简单字符串压缩程序;按以下情况进行压缩; 1 仅压缩连续重复出现的字符。比如”abcbc”无连续重复字符,压缩后还是”abcbc”。 2 压缩的格式为”字符重复的次数字符”。例如,”xxxyyyyyyz”压缩后就成为”3x6yz”。 void …

Centos7环境下cmake3.25的编译与安装

文章目录 0 视频传送门1 卸载当前版本2 下载cmake3.25.0并且解压缩3 使用root用户进入解压缩的目录4 开始执行命令5 创建软连接6 检查版本 0 视频传送门 https://www.bilibili.com/video/BV1Gu4y1J7Ev/?vd_source3353f83539e46042d8cf76efb177a8e4 07-Centos7编译安装cmake3.…

接口请求的六种常见方式详解(get、post、head等)

一.接口请求的六种常见方式: 1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建…

Leetcode—485.最大连续1的个数【中等】明天修改

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

再现“换桥奇迹”|人大金仓助力中国移动完成营销系统国产化升级

堪称传统基建奇迹的“三元桥43小时换新桥”工程的相关报道还历历在目,而中国移动也经历着类似的考验,需要在2天内完成某在线营销系统整体升级。 作为中国移动的重要数据库产品与服务提供商,留给人大金仓的时间只有每天夜间的4小时&#xff0…

要在VMware(虚拟机)上获取相机连接状态并显示在主界面上,您可以使用以下步骤:

在VM上安装相机驱动程序:确保VM中已安装对应的相机驱动程序,以便能够连接和使用相机。 检查相机连接状态:在VM中,打开设备管理器(Device Manager)并检查相机是否显示为已连接状态。如果显示为已连接&#…

什么是 DevOps

DevOps是一套融合软件开发(Dev)和 IT 运营(Ops)的实践,旨在缩短应用程序开发周期并确保以高软件质量持续交付,通过采用 DevOps 实践,您可以帮助组织更可靠、更快速、更高效地交付软件。 什么是…

python 之正则表达式详解

文章目录 r与R原始字符串的特点:示例:正则表达式示例:文件路径示例: 有没有r 带来的影响使用 r 前缀的示例:不使用 r 前缀的示例: \b 作为单词的界限匹配以 "cat" 开头的单词:匹配以 …

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型 一、重写config文件二、开始训练三、ncnn部署 从零开始的目标检测和关键点检测(一):用labelme标注数据集 从零开始的目标检测和关键点检测…

第06章 索引的数据结构

第06章 索引的数据结构 1. 索引及其优缺点 1.1 索引概述 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 **索引的本质:**索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”&#xff…

Vue 监听属性 watchEffect

watchEffect 函数:自动收集依赖源,不用指定监听哪个数据,在监听的回调中用到哪个数据,就监听哪个数据。 而 watch 函数:既要指定监听的数据,也要指定监听的回调。 watchEffect 函数:类似于 co…

OpenCV 笔记(4):图像的算术运算、逻辑运算

Part11. 图像的算术运算 图像的本质是一个矩阵,所以可以对它进行一些常见的算术运算,例如加、减、乘、除、平方根、对数、绝对值等等。除此之外,还可以对图像进行逻辑运算和几何变换。 我们先从简单的图像加、减、逻辑运算开始介绍。后续会有…

Window下SRS服务器的搭建

---2023.7.23 准备材料 srs下载:GitHub - ossrs/srs at 3.0release 目前srs release到5.0版本。 srs官方文档:Introduction | SRS (ossrs.net) Docker下载:Download Docker Desktop | Docker 进入docker官网选择window版本直接下载。由…

SolidWorks2018安装教程(正版)

网盘资源附文末 一.简介 SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统,由于技术创新符合CAD技术的发展潮流和趋势,SolidWorks公司于两年间成为CAD/CAM产业中获利最高的公司。良好的财务状况和用户支持使得SolidWorks每年都有数十乃至数百…

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间 介绍时间戳是什么什么时候用时间戳 获取时间获取当前时间获取时间戳日期转时间戳时间戳转日期将时间戳转换为多久之前星期自定义格式时间 总结 介绍 这里附带一个时间戳和时间转换的网址 时间戳是什么 时…

Java NIO为何导致堆外内存OOM了?

Java NIO为何导致堆外内存OOM了? 描述 某天报警:某台机器部署的一个服务突然无法访问。谨记第一反应登录机器查看日志,因为服务挂掉,很可能因OOM。这个时候在机器的日志中发现了如下的一些信息: nio handle failed j…

小程序视频编辑SDK技术解决方案

传统的视频制作方式不仅耗时耗力,而且难以满足企业多样化、个性化的定制需求。为了帮助企业解决这一难题,美摄科技推出了一款专为企业量身定制的小程序视频编辑SDK技术解决方案,让您的视频制作更加高效、专业! 一、功能强大&…

用前端框架Bootstrap的AdminLTE模板和Django实现后台首页的页面

承接博文 用前端框架Bootstrap和Django实现用户注册页面 继续开发实现 后台首页的页面。 01-下载 AdminLTE-3.1.0-rc 并解压缩 以下需要的四个文件夹及里面的文件百度网盘下载链接: https://pan.baidu.com/s/1QYpjOfSBJPmjmVuFZdSgFQ?pwdo9ta 下载 AdminLTE-3.1…

【SpringCloud学习笔记(一)】

SpringCloud学习笔记(一) 一、认识SpringCloud1.1 简介1.2 服务与拆分与远程调用1.3 微服务的远程调用 二、微服务的几大组件2.1 EureKa注册中心2.1.1 Eureka介绍:2.1.2 Eureka实践: 2.2 Ribbon负载均衡2.2.1 负载均衡流程2.2.2 负…