一个简单的代码检查skll,可以配合trae使用

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

前言

现在ai发展迅猛,程序员们瑟瑟发抖,各种skll层出不穷,这里简单展示个代码检查的skll,用来动手实践下skll的创建及使用。

环境

trae,java

skll详情

可以使用ai软件辅助创建skll,也可以自己手动创建,我这里主要使用豆包帮忙创建了一个通用的skll。

豆包生成skll的关键词:

编写一个实现检查java代码方法是否有错误,或者性能需要优化,或者编写不规范的功能的skill,用户选中需要检测的方法,自动检测选中的方法,重点检测语法,格式,性能,不需要检测jdk版本,将生成的skill文件下载为md文件

豆包生成的skll:

name: java-method-check

description: 自动检测选中的 Java 代码方法的语法错误、格式不规范、性能优化点。用户选中 Java 方法代码片段并触发(如说 "检测 Java 方法"、"检查代码规范"、"优化 Java 性能"、"Java 方法语法检查")时执行此技能。

Java 方法自动检测

执行步骤

Step 1:信息收集

获取用户选中的 Java 方法代码片段(完整方法体,包含方法签名、注解、代码逻辑)

提取方法核心信息:

方法名、返回值类型、参数列表

所属类名(如用户提供)

方法代码行数、核心逻辑(循环 / IO / 集合操作等关键片段)

向用户确认检测范围(默认全量检测):

plaintext

即将对选中的Java方法执行以下检测,请确认:

\- 检测维度:语法合法性、代码格式规范、性能优化点

\- 方法信息:{方法名}(参数:{参数列表},返回值:{返回值类型})

请回复「确认」开始检测,或「取消」终止。

用户回复「确认」/yes/y/ 好 /ok 等,执行检测;回复「取消」/no/n/ 不等,终止操作。

Step 2:语法合法性检测

检测规则

关键字与语法结构:

检查方法签名语法(修饰符顺序、返回值、方法名、参数括号 / 逗号、抛出异常声明等)

检查方法体内语句结束符(;)、代码块 {} 闭合性、条件 / 循环语句语法(if/for/while/switch 等)

检查变量声明 / 赋值合法性(类型匹配、未定义变量引用、重复定义等)

检查异常处理语法(try-catch-finally 结构、throw/throws 合法性)

检查泛型、Lambda 表达式、Stream API 等语法正确性

执行检测

对选中代码执行语法解析,输出检测结果:

无语法错误:提示「✅ 语法合法性检测通过,未发现语法错误」

存在语法错误:列出错误详情:

plaintext

❌ 语法检测失败,发现以下错误:

1\. 错误位置:第{行号}行

   错误类型:{错误类型,如:语句缺少结束符、代码块未闭合、变量未定义}

   错误描述:{具体描述,如:"int a = 10 后缺少分号"、"if条件后代码块{}未闭合"}

   修复建议:{针对性建议,如:"在第{行号}行末尾添加分号"、"补充闭合大括号"}

2\. ...

Step 3:代码格式规范检测

检测规则(基于阿里巴巴 Java 开发手册核心规范)

命名规范:

方法名:检查是否符合小驼峰(lowerCamelCase),避免下划线 / 拼音 / 无意义命名

参数名:检查是否符合小驼峰,避免单字符(除 i/j/k 等循环变量)

局部变量名:检查命名语义化、小驼峰规范

格式排版:

缩进:检查是否统一(2/4 个空格,禁止 tab),代码块内缩进一致性

空格:运算符两侧、逗号后、大括号前后空格规范

空行:方法内逻辑块之间是否保留空行,避免代码过度紧凑

行长度:单行代码是否超过 120 字符(超长需换行)

编码规范:

避免魔法值(未定义常量的数字 / 字符串直接使用)

集合初始化规范(如 List/Map 初始化是否指定初始容量)

注释规范:关键逻辑是否有注释,注释是否清晰无冗余

修饰符顺序:检查方法修饰符顺序(public/protected/private > static > final > abstract 等)

执行检测

输出格式规范检测结果:

无格式问题:提示「✅ 代码格式规范检测通过,符合 Java 编码规范」

存在格式问题:列出问题详情:

plaintext

⚠️ 格式规范检测发现以下不规范项(非致命,建议优化):

1\. 问题位置:第{行号}行(方法名)

   问题类型:{命名不规范/缩进错误/空格缺失等}

   问题描述:{具体描述,如:"方法名 getUserInfo 写成了 GetUserInfo(不符合小驼峰)"、"第5行if条件后缺少空格"}

   优化建议:{具体建议,如:"将方法名改为 getUserInfo"、"在if(xxx)中括号与条件之间添加空格"}

2\. ...

Step 4:性能优化点检测

检测规则(聚焦方法内性能瓶颈)

循环性能:

检查循环内是否频繁创建对象(如 new ArrayList/StringBuilder/ 自定义对象)

检查循环内是否调用耗时方法(如数据库查询、远程接口调用、IO 操作)

检查集合遍历方式(如 ArrayList 使用 for-i 比 foreach 更高效、避免循环内 list.contains ())

检查无限循环 / 死循环风险(如 while (true) 无退出条件)

集合操作:

检查 HashMap/ArrayList 初始化未指定初始容量(大数据量下扩容损耗)

检查频繁的字符串拼接(未使用 StringBuilder,使用 + 拼接)

检查集合遍历后未关闭迭代器(针对 Iterator)

资源使用:

检查 IO 流 / 数据库连接 / 网络连接在方法内未关闭(try-with-resources 是否使用)

检查同步锁粒度(如方法级 synchronized 是否可改为代码块级)

检查不必要的对象创建(如重复创建相同常量对象、未复用对象)

计算优化:

检查重复计算(如循环内重复调用相同 getter / 计算逻辑,可提取到循环外)

检查未使用的局部变量 / 返回值(资源浪费)

执行检测

输出性能优化建议:

无性能问题:提示「✅ 性能检测通过,未发现明显性能瓶颈」

存在性能优化点:列出优化建议:

plaintext

📌 性能检测发现以下优化点(建议优化以提升执行效率):

1\. 优化位置:第{行号}行(循环内对象创建)

   问题描述:{具体描述,如:"for循环内每次迭代都创建new StringBuilder(),会频繁触发GC"}

   性能影响:{影响程度,如:"中高(循环次数>1000时明显卡顿)"}

   优化方案:{具体方案,如:"将StringBuilder创建移到循环外,循环内复用该对象"}

2\. ...

Step 5:生成检测报告

整合所有检测结果,生成结构化报告:

plaintext

✅ Java方法检测完成!

检测摘要:

\- 检测方法:{方法名}(参数:{参数列表},返回值:{返回值类型})

\- 语法检测:{通过/失败({错误数}个错误)}

\- 格式规范:{通过/不规范({问题数}个问题)}

\- 性能检测:{通过/需优化({优化点数量}个优化点)}

【详细检测结果】

1\. 语法合法性

{语法检测结果,无错误则显示"无语法错误",有错误则列出所有错误}

2\. 代码格式规范

{格式检测结果,无问题则显示"符合编码规范",有问题则列出所有不规范项}

3\. 性能优化建议

{性能检测结果,无优化点则显示"无明显性能瓶颈",有则列出所有优化点}

【整体建议】

{综合建议,如:"1. 优先修复语法错误(共2处);2. 优化格式不规范项(共3处);3. 建议优化循环内对象创建问题,提升方法执行效率"}

重要约束

仅检测用户选中的单个 Java 方法,不扩展到类 / 工程级别

不检测 JDK 版本兼容性、第三方框架 API 使用正确性

语法检测聚焦代码本身合法性,不依赖编译环境(基于语法规则解析)

性能检测仅识别通用性能问题,不针对业务场景做深度优化

所有检测结果需明确标注位置(行号)、问题类型、修复 / 优化建议

检测过程中不修改用户代码,仅输出检测报告和建议

按「语法→格式→性能」顺序串行检测,语法错误不影响格式 / 性能检测(需完整输出所有问题)

触发条件

用户输入包含以下关键词时触发:

"检测 Java 方法"

"检查代码规范"

"优化 Java 性能"

"Java 方法语法检查"

"Java 代码格式检测"

"Java 方法性能分析"

trae添加skll

方式一:对话创建(推荐新手)‌
在 TRAE 的聊天界面直接输入自然语言指令,例如:

“帮我创建一个生成 PPT 的 Skill”
TRAE 会自动调用内置的 Skills-creator 生成对应的 SKILL.md 文件,确认后即可使用 ‌
 

‌方式二:手动导入(适合复用社区技能)‌

从 GitHub 等平台下载现成 Skill(如 Anthropic 官方库或 Obsidian 技能包)‌

在 TRAE 中进入:‌设置 → 规则和技能 → 技能 → 创建‌。
选择“上传进行智能解析”,上传包含 SKILL.md 的 .zip 或 .skill 文件即可 ‌

‌方式三:直接填写创建(适合自定义基础技能)‌

进入 ‌设置 → 规则和技能 → 技能‌。
点击“创建”,填写 ‌名称、描述、指令(Prompt)‌,点击“确认”即完成 ‌
 

skll使用

鼠标选中需要检查的代码,然后在chat对话框输入提示语

直接输入触发词:检测 Java 方法 / 检查代码规范 / 优化 Java 性能 / Java 方法语法检查

带指令的完整输入:帮我检测选中的这个Java方法,包含语法、格式和性能优化点

效果

总结

生活和工作都如逆水行舟,你不卷就被别人卷死,只有不断学习才能不被淘汰~

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值