SuperAPI AI 工具集

code-review

测试与质量

查看项目

更新于 10-16 00:32

技能介绍

用途:在评审 SynapseML 代码变更时提供结构化检查清单,覆盖安全、API 兼容性、Scala、Python 与测试五类问题,仅报告带文件路径和修复建议的具体问题。

主要能力: 安全:检查反序列化(CWE-502,如禁止裸用 ObjectInputStream.readObject,应使用带允许列表的 SafeObjectInputStream,resolveClass 需校验数组组件类型、不得允许 [ 前缀,resolveProxyClass 需拦截或校验动态代理)、输入校验(路径、URL、用户字符串须先校验,禁止未净化的字符串拼接进 SQL、shell 或配置)、资源管理(流、连接等使用 using() 或 try-finally,断言或异常时也要清理)、密钥凭据(禁止硬编码,须从环境变量或安全配置加载)。 API 兼容性:JVM 二进制兼容(不改变既有公开方法签名,不使用默认参数生成的合成桥接,改用显式重载;不删除或重命名公开类、trait、对象;保留伴生对象的 DefaultParamsReadable[T])与源码兼容(新参数须有默认值,不窄化返回类型或放宽参数类型,不破坏下游通配符导入)。 Scala:许可证头、按需混入 Wrappable 与 SynapseMLLogging、构造函数调用 logClass()、避免通配符导入、禁止 RDD API 只用 DataFrame/Dataset、行不超过 120 字符、文件不超过 800 行。 Python:许可证头、使用 black==22.3.0 格式化、不修改 target/ 下自动生成文件、手写覆盖须扩展生成的 _ClassName。 测试:新功能有对应测试,用 using() 清理资源,覆盖拒绝/错误等负向用例,测试专用依赖不泄漏到主作用域。

使用方式:先检视差异 git --no-pager diff --stat && git --no-pager diff;运行 Scala 风格检查 sbt scalastyle test:scalastyle;运行 Python 格式检查 black --check --extend-exclude 'docs/' .;对改动代码运行针对性测试;再逐文件套用上述清单。

适用场景:SynapseML 仓库的 PR 评审与实现改动收尾。

限制:仅适用于 SynapseML 项目;除上述清单外的定价、平台等信息暂未提供。