java代码审查过关的一次总结

news2024/11/23 12:43:38
  1. **1.for循环中的逻辑都抽出一个方法并且把重要逻辑抽出一个方法 在这里插入图片描述
    2.参数比较多合并成一个对象 在这里插入图片描述
    3.避免没必要的if else 例如if判断能直接return就return,避免没必要的else

    4.检查代码中是否包含适当的注释,解释代码的目的、实现细节和注意事项。
    5.代码格式和命名规范: 检查代码的缩进、空格、换行等格式是否符合规范。变量、方法和类的命名是否清晰、易懂且符合命名约定
    6.注入的@Resource从短到长对齐 让人看着的舒服**

说的再好也没有用组件排查一下规范在哪,这里介绍一下两个比较强大的组件
SonarLint是一款由SonarSource提供的插件,可与IDE集成,用于实时检查Java、JavaScript、Python等多种编程语言的代码。它使用SonarSource团队开发的规则集,检查代码中的代码质量、安全性和可维护性等方面的问题。SonarLint会根据代码的质量规则和建议,给出实时的反馈和建议,以帮助开发人员改进代码。

阿里巴巴组件扫描(也称为P3C规约)是阿里巴巴Java开发团队提供的一套代码规范和检查工具。它包含了一系列针对Java开发的最佳实践和规约,旨在提高代码的可读性、可维护性和可靠性。阿里巴巴组件扫描工具可以通过在构建过程中执行静态分析来检查代码,并提供有关潜在问题和违规的警告和建议。

以下是一些常见的固定格式示例,用于在SonarLint和阿里巴巴组件扫描中检查和修复代码问题:

命名规范:

使用有意义和清晰的变量、方法和类命名。
遵循驼峰命名法或其他约定。
避免使用缩写或不明确的命名。
代码格式:

使用一致的缩进和空格,例如使用4个空格进行缩进。
每行代码应适当换行,避免过长的行。
在代码块、方法和类之间使用适当的空行来提高可读性。
注释规范:

在关键代码处添加注释,解释其目的和实现细节。
使用清晰、简洁的注释,避免冗长的注释。
使用Javadoc注释来描述类、方法和参数。
异常处理:

在合适的地方捕获和处理异常。
避免空的catch块,应该至少记录或抛出异常。
尽量使用特定的异常类型,避免捕获通用的Exception类型。
安全性和漏洞修复:

避免使用不安全的函数或方法,如直接执行SQL查询、拼接SQL语句等。
防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等

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

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

相关文章

百炼智能发布垂直模型“爱迪生”,B2B行业的AIGC大潮来了

(图片来源:Pixels) AIGC终于来到B2B行业,企业服务AGI时代已拉开帷幕。 数科星球原创 作者丨苑晶 编辑丨大兔 百炼智能是一家专注B2B行业的智能营销企业。在过去,该行业经历了大数据、人工智能时代的洗礼。随着行业对数…

jupyter中如何管理内核

1、jupyter notebook如何和已有的虚拟环境关联起来: 如果在电脑中某个conda的虚拟环境中已经安装了jupyter,其他虚拟环境想要作为内核在jupyter中使用,分为两个步骤: 第一步:在没有jupyter的环境中下载ipykernel&…

E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

T:what Y:why W:how Y $ sudo apt-get install ros-noetic-gazebo-ros 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版&#xff0…

可信数据库大会,不见不散!

由中国信息通信研究院、中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)、InfoQ 极客传媒联合主办的 2023 可信数据库发展大会将于今日在北京国际会议中心隆重召开。 本届大会以“自主 创新 引领”为主题…

【线段树】P6492 [COCI2010-2011#6] STEP

P6492 [COCI2010-2011#6] STEP - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意&#xff1a; 思路&#xff1a; 要维护区间最长子串&#xff0c;就需要维护左起最长子串和右起最长子串 要维护这两者&#xff0c;就得维护区间两端的种类 Code&#xff1a; #include <…

Spark数据倾斜优化-AQE Skewed Join

AQE处理SkewedJoin的原理 Spark Adaptive Query Execution &#xff0c; 简称 Spark AQE&#xff0c;总体思想是动态优化和修改 stage 的物理执行计划。利用执行结束的上游 stage 的统计信息&#xff08;主要是数据量和记录数&#xff09;&#xff0c;来优化下游 stage 的物理…

记一次自建靶场域渗透过程

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 环境搭建02 外网突破03 权限提升并维持&#xff08;1&#xff09;获取 meterpreter 会话&#xff08;2&#xff09;尝试开启远程桌面&#xff08;3&#xff09;Msf 派生 Cobalt Strike shell&#…

TinyStories: How Small Can Language Models Be and Still Speak Coherent English?

本文是LLM系列的文章之一&#xff0c;针对《TinyStories: How Small Can Language Models Be and Still Speak Coherent English?》的翻译。 TinyStories&#xff1a;语言模型能有多小&#xff0c;还能说连贯的英语&#xff1f; 摘要1 引言2 TinyStories数据集的描述2.1 Tiny…

<td>标签内的文字内容换行显示

修改前&#xff1a; 修改后&#xff1a; 代码&#xff1a; table tr td{ word-WRAP: break-word }

CI-持续集成 — 软件工业“流水线”技术实现

1 概述 持续集成&#xff08;Continuous Integration&#xff09;是一种软件开发实践。在本系列文章的前一章节已经对其背景及理论体系进行了介绍。本小节则承接前面提出的理论构想进行具体的技术实现。 《Google软件测试之道》: "每天&#xff0c;Google都要测试和发…

(模拟) 463. 岛屿的周长 ——【Leetcode每日一题】

❓ 463. 岛屿的周长 难度&#xff1a;简单 给定一个 row x col 的二维网格地图 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陆地&#xff0c;grid[i][j] 0 表示水域。 网格中的格子 水平和垂直 方向相连&#xff08;对角线方向不相连&#xff09;。整个网格被水完…

前端Vue自定义可自由滚动精美tabs选项卡标签栏标题栏 可设置背景颜色,

前端Vue自定义可自由滚动精美tabs选项卡标签栏标题栏 可设置背景颜色&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13313 效果图如下&#xff1a; # cc-scrollTag #### 使用方法 使用方法 <!-- tabChange: tab选…

Vue指令--v-bind、v-model、v-on

常见指令--v-bind/model/on 指令&#xff1a;HTML标签中带有v-前缀的特殊属性&#xff0c;不同指令具有不同含义。例如&#xff1a;v-if&#xff0c;v-for..常见指令 指令 作用 v-bind为HTML标签绑定属性值&#xff0c;如设置href、css样式等v-model在表单元素上创建双向数据…

【网络原理之二】网络层的IP协议、数据链路层的以太协议和MTU

网络层协议IP协议IP协议格式IP地址IPV4IPV6 IP地址规则-地址管理路由选择 数据链路层协议以太网协议协议格式 MTU(最大传输单元)MTU对IP协议的影响MTU对UDP协议的影响MTU对TCP协议的影响 开放性问题 网络层协议 IP协议 IP协议格式 4位版本号(version)&#xff1a;指定IP协议的…

12-Vue的diff算法

参考回答&#xff1a; 当组件创建和更新时&#xff0c;vue均会执行内部的update函数&#xff0c;该函数使用render函数生成的虚拟dom树&#xff0c;将新旧两树进行对比&#xff0c;找到差异点&#xff0c;最终更新到真实dom对比差异的过程叫diff&#xff0c;vue在内部通过一个叫…

ChatGPT系统源码,全开源支持二开!

ChatGPT是开发的大语言模型之一&#xff0c;具备多领域知识&#xff0c;并且可以提供个性化、准确和有趣的答案&#xff0c;无论是在娱乐、教育还是工作中&#xff0c;都可以帮助我们解决问题、获取信息和提供建议。 技术架构 使用流行的技术栈PHP8、TypeScript、ThinkPHP6、…

7.3基础概念/文件、文件路径/batch_size,length,total/acc、loss计算/ect

一、 一些基础术语&#xff1a; util是utility的缩写&#xff0c;意思为实用工具。一般用于描述和业务逻辑没有关系的数据处理分析工具。 logger &#xff1a;日志 meter : 记录表 使用下划线 _ 表示不需要的变量是一种常见的开发者的约定&#xff0c;&#xff08;Python 解释…

SpringBoot3 事件和监听器

1. 生命周期监听 场景&#xff1a;监听应用的 生命周期 1. 监听器-SpringApplicationRunListener 自定义SpringApplicationRunListener来监听事件&#xff1b; 编写SpringApplicationRunListener 实现类在 META-INF/spring.factories 中配置 org.springframework.boot.SpringA…

【数据挖掘】时间序列教程【八】

4.4 时间混淆 我们先考虑一个简单的线性回归模型, 哪里 和是具有平均值的高斯过程00和自协方差 .现在,在不失去一般性的情况下,让我们假设 而那瓦尔

【UGUI控件全面解析】 教程专栏目录贴

&#x1f3ac;【UGUI控件全面解析】 教程专栏目录贴&#x1f431;‍&#x1f3cd;UGUI系列内容介绍&#x1f381;文章内容结构介绍 &#x1f4af;总结 &#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;…