关于 abap
用于通过 abaplint 静态分析和 Clean ABAP 人工审查检查 ABAP 代码的技能,帮助开发者按需求选择检查方式,并整理优先级明确、可执行的发现。
主要功能
- 01abaplint 语法与类型检查
- 02可配置的 lint 规则
- 03Clean ABAP 风格审查
- 04按优先级提供改进建议
- 05Clean Core 等级背景
适用场景
- 01检查 ABAP 项目
- 02按 Clean ABAP 审查代码
- 03执行综合质量检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ likweitan/ abap-skills --skill abap安装后在 Claude Code 中输入/abap确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/abaplint.mdchecklist.mdCleanABAP.mdquick-reference.md详细介绍
ABAP
通过两种互补的方法检查并提升 ABAP 代码质量:
- abaplint:通过 CLI 进行自动化静态分析,检查语法、类型和可配置规则
- Clean ABAP:根据 Clean ABAP 风格指南原则进行人工审查
工作流
-
确定检查类型,根据用户请求选择:
- 如果用户要求 lint、运行 abaplint 或检查语法:使用 abaplint
- 如果用户要求 Clean Code 审查、最佳实践或代码质量检查:使用 Clean ABAP 审查
- 如果请求不明确,或用户要求全面检查:使用两者
-
进行 abaplint 检查:
- 确认已安装
abaplint(npx @abaplint/cli --version或abaplint --version) - 如果未安装,请运行:
npm install @abaplint/cli -g - 检查项目根目录中是否存在
abaplint.json - 如果不存在配置文件,请协助用户创建(参见
references/abaplint.md中的起始配置) - 在项目根目录运行
abaplint - 解析检查结果并呈现给用户
- 确认已安装
-
进行 Clean ABAP 审查:
- 阅读用户提供的 ABAP 代码
- 根据 Clean ABAP 的类别进行检查:名称、语言、常量、变量、表、字符串、布尔值、条件、IF 语句、类、方法、错误处理、注释、格式、测试
- 标明违规项及具体行号
- 提供可执行的改进建议和代码示例
- 按影响程度排列问题(严重、主要、次要)
abaplint 快速入门
在项目根目录运行:
abaplint
生成默认配置(包含所有规则):
abaplint -d > abaplint.json
有关 abaplint 配置的详细信息(包括适用于 On-Premise、Steampunk/BTP 和 HANA 兼容性的起始配置),请阅读 references/abaplint.md。
Clean ABAP 检查类别
名称
- 使用描述性名称、snakecase,不使用匈牙利命名法(iv、lv*、lt*)
- 类使用名词,方法使用动词,不使用冗余词
语言
- 优先使用 OO 而非过程式编程,优先使用函数式而非命令式编程
- 使用现代语法:NEW、内联声明、表表达式
常量
- 不使用魔法数字,使用 ENUM 或分组常量
变量
- 优先使用内联声明,不使用链式 DATA
表
- 不使用 DEFAULT KEY,使用 INSERT INTO TABLE、LINE_EXISTS、WHERE 子句
字符串
- 字面量使用反引号,字符串模板使用管道符
布尔值
- 使用 ABAP_BOOL、ABAP_TRUE/ABAP_FALSE、XSDBOOL
条件
- 使用肯定条件,优先使用 IS NOT 而非 NOT IS,使用谓词式方法调用
IF 语句
- 不使用空的 IF 分支;优先使用 CASE 而非 ELSE IF;嵌套深度不超过 3 层
方法
- 优先使用实例方法而非静态方法,优先使用 RETURNING 而非 EXPORTING,参数不超过 3 个,代码不超过 20 行
错误处理
- 使用异常而非返回码,使用基于类的异常,不捕获 CX_ROOT
注释
- 解释原因,而非内容;使用 " 而非 *;不保留已注释掉的代码
格式
- 每行一条语句,不超过 120 个字符,缩进保持一致
测试
- 使用 Given-When-Then 结构,断言聚焦,使用依赖注入
输出格式
按以下结构组织分析结果:
# ABAP Check Results
## abaplint Findings
[abaplint output, grouped by severity]
## Clean ABAP Review
### Summary
- Total Issues: [count]
- Critical: [count] | Major: [count] | Minor: [count]
### Critical Issues
#### [Category] - [Issue Title]
**Location:** Line [X] / Method [name]
**Problem:** [description]
**Recommendation:** [how to fix]
### Major Issues
[Same format]
### Minor Issues
[Same format]
### Positive Observations
- [Things done well]
Clean Core 等级背景
如果代码将用于 ABAP Cloud 或需按照 ABAP Cloud 标准评估,可将代码质量检查结果映射到 SAP 的 Clean Core 等级:
- Level A — 仅使用已发布的 API;Clean ABAP 和 abaplint 检查均通过
- Level B — 使用经典 API;稳定,但需要经典 ABAP 语言版本
- Level C — 使用 SAP 内部对象;应迁移到后继方案
- Level D — 直接写入 SAP 表、使用
EXEC SQL、使用仅限内部用途的已发布 API;应消除
请将 Clean Core 检查结果与风格检查结果分开处理:格式良好的 SAP 表 SELECT 仍属于 Level C。有关等级定义,请参阅 abap-cloud skill;有关自动化检查,请参阅 atc-cloudification。
参考资料
- abaplint 配置与设置:阅读
references/abaplint.md,了解安装、配置选项和入门配置 - 完整的 Clean ABAP 指南:阅读
references/CleanABAP.md,查看完整的风格指南、理由和示例 - 快速参考模式:阅读
references/quick-reference.md,查看精简的优质/不良代码示例 - 审查清单:阅读
references/checklist.md,查看系统化的审查清单
相关技能
- abap-cloud:用于核心级别清洁度和 ABAP Cloud 合规性
- abap-unit-testing:用于编写遵循 Clean ABAP 原则的单元测试
- abap-sql-amdp:用于在代码质量改进期间将 ABAP SQL 现代化
评论
支持 Markdown