mcpField
A
abap

abap

github.com/likweitan测试与质量72131 次安装2 周前更新
代码仓库

关于 abap

用于通过 abaplint 静态分析和 Clean ABAP 人工审查检查 ABAP 代码的技能,帮助开发者按需求选择检查方式,并整理优先级明确、可执行的发现。

主要功能

  1. 01abaplint 语法与类型检查
  2. 02可配置的 lint 规则
  3. 03Clean ABAP 风格审查
  4. 04按优先级提供改进建议
  5. 05Clean Core 等级背景

适用场景

  1. 01检查 ABAP 项目
  2. 02按 Clean ABAP 审查代码
  3. 03执行综合质量检查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/likweitan/abap-skills --skill abap

安装后在 Claude Code 中输入/abap确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
abaplint.md
checklist.md
CleanABAP.md
quick-reference.md

详细介绍

ABAP

通过两种互补的方法检查并提升 ABAP 代码质量:

  • abaplint:通过 CLI 进行自动化静态分析,检查语法、类型和可配置规则
  • Clean ABAP:根据 Clean ABAP 风格指南原则进行人工审查

工作流

  1. 确定检查类型,根据用户请求选择:

    • 如果用户要求 lint、运行 abaplint 或检查语法:使用 abaplint
    • 如果用户要求 Clean Code 审查、最佳实践或代码质量检查:使用 Clean ABAP 审查
    • 如果请求不明确,或用户要求全面检查:使用两者
  2. 进行 abaplint 检查:

    • 确认已安装 abaplint(npx @abaplint/cli --version 或 abaplint --version)
    • 如果未安装,请运行:npm install @abaplint/cli -g
    • 检查项目根目录中是否存在 abaplint.json
    • 如果不存在配置文件,请协助用户创建(参见 references/abaplint.md 中的起始配置)
    • 在项目根目录运行 abaplint
    • 解析检查结果并呈现给用户
  3. 进行 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