专注 Python/JS 的 AI 自动重构工具,IDE 实时提示 + 一键修复体验好,适合个人开发者日常提升代码质量;语言覆盖窄(只有 Python/JS/TS)且重构深度有限,多语言团队或深度重构需求看其他工具。
TL;DR
Sourcery 是一个 AI 代码重构工具,专注 Python 和 JavaScript / TypeScript,核心能力是实时检测代码异味(code smell)并提供一键自动重构。形态是 IDE 插件(VS Code / PyCharm / JetBrains 全家桶)+ CLI + CI 集成。和通用 LLM 代码审查不同,Sourcery 基于规则引擎 + AI,重构建议更确定性、更可预测。Free 版基础功能,Pro $10/月解锁高级规则 + AI 重构。
适合:Python / JS / TS 开发者想在日常编码中实时提升代码质量、偏好确定性重构建议而非 LLM 自由发挥、用 PyCharm / VS Code 的个人开发者。不适合:非 Python/JS 语言(不支持)、需要深度架构级重构(Sourcery 偏函数级)、团队级代码审查平台(用 CodeRabbit / DeepSource)。
核心能力
- 实时代码异味检测:IDE 中边写边提示——长函数、深层嵌套、重复代码、魔法数字、命名问题等
- 一键自动重构:每个检测到的问题都有「Accept」按钮,点击即自动重构,diff 可见可回退
- Python 深度分析:Python 是主力语言,规则最丰富——类型注解优化、f-string 迁移、推导式简化、异常处理重构
- JS/TS 支持:箭头函数优化、解构赋值、Promise 链重构、React hooks 优化
- CLI + CI 集成:
sourcery review命令行扫描,可接 GitHub Actions / pre-commit hook 在提交前检查 - 自定义规则:Pro 版支持 YAML 写自定义重构规则,适配团队编码规范
- AI 辅助重构:Pro 版接入 LLM,对复杂代码提供 AI 重构建议(不只是规则匹配)
- 代码复杂度指标:圈复杂度、认知复杂度、可维护性指数量化追踪
价格
- Free:基础重构规则 + IDE 插件 + CLI,个人日常用够
- Pro $10/月($100/年):高级规则 + 自定义规则 + AI 重构 + CI 集成 + 优先支持
- Team:联系销售,团队规则共享 + 管理面板
体验与评测(资料整理)
说明:本节基于官方文档与公开评测整理,非本站独立实测环境,具体数据请以官方为准。 典型场景:以 VS Code 中一个 Python 后端项目(~30K 行)的日常重构场景为例整理。
亮点:
- VS Code 插件装好即用,写代码时实时波浪线提示,hover 看建议 + Accept 一键改
- Python 规则质量高——把一堆
format()自动迁成 f-string、复杂 if-else 优化成推导式、函数拆分建议合理 - 重构建议确定性——不是 LLM 自由发挥,是基于规则的,每次同样的代码给出同样的建议,可预测
- CLI 接 pre-commit hook 很实用——提交前自动检查,不让代码异味进仓库
- 复杂度指标可视化好——PyCharm 插件在函数旁边标复杂度数字,一眼看出哪些函数该拆
- diff 展示清晰——每个重构建议都有 before/after diff,Accept 前看清楚改什么
踩坑:
- 语言覆盖窄——只有 Python 和 JS/TS,Go / Rust / Java / C# 完全不支持
- 重构深度有限——擅长函数级 / 表达式级重构,类设计 / 模块拆分 / 架构层面管不了
- Free 版规则少——基础规则够日常,但高级重构(如设计模式迁移)要 Pro
- AI 重构偶尔不靠谱——Pro 的 AI 建议有时改了语义,不能盲 Accept
- 偶有误报——约 5-10% 的建议不合理(如不建议把清晰的循环改成更难读的推导式),需要判断
- PyCharm 插件偶尔卡顿——大文件实时分析时 UI 有延迟,VS Code 更流畅
上手
- 安装 IDE 插件:VS Code 搜索 "Sourcery" / PyCharm Preferences → Plugins → 搜索安装
- 登录账号(Free 即可开始)
- 打开 Python / JS 文件,波浪线处即检测到的代码异味
- Hover 看建议 → 点 Accept 一键重构
- CLI 安装:
pip install sourcery,sourcery review .扫描整个项目 - 进阶:配 pre-commit hook / GitHub Actions 在 CI 中自动检查
对比
| 维度 | Sourcery | CodeRabbit | DeepSource | Ruff |
|---|---|---|---|---|
| 形态 | IDE 插件 + CLI | SaaS PR 审查 | SaaS | CLI / linter |
| 语言 | Python / JS/TS | LLM 通用 | 30+ | Python |
| 自动重构 | ✅ 一键 | ❌ | ✅ Autofix | ❌ |
| 实时提示 | ✅ IDE 内 | ❌ PR 阶段 | ❌ PR 阶段 | ✅ IDE |
| 分析方式 | 规则 + AI | LLM | 静态分析 | 规则 |
| 自定义规则 | ✅ Pro | ❌ | ✅ Team+ | ✅ |
| 开源 | ❌ | ❌ | ❌ | ✅ MIT |
| 价格 | Free / $10/月 | Free / $10/月 | Free / $24/人/月 | 免费 |
避坑
- 别把它当 linter 用:Sourcery 偏重构,Ruff / ESLint 偏格式 + 简单规则,两者互补不替代,都配
- AI 重构要 review:Pro 的 AI 建议偶尔改变语义,Accept 前看 diff,跑测试确认
- 自定义规则有学习成本:YAML 规则语法不直观,先看官方示例再写,别一上来就自定义
- 大项目 CLI 慢:
sourcery review .扫几万行项目要几分钟,配--in-place批量改更高效 - PyCharm 性能:大项目实时分析可能卡,在 Sourcery 设置里关掉部分重规则或调 debounce
- Free 版够用就别上 Pro:日常 Python 重构 Free 版规则够,Pro 主要值在自定义规则和 AI 重构
适合 / 不适合
- ✅ Python / JS / TS 个人开发者日常提升代码质量
- ✅ 偏好确定性规则重构(可预测、可重复)
- ✅ IDE 实时提示 + 一键修复的工作流
- ✅ pre-commit / CI 自动检查代码异味
- ❌ 非 Python/JS 语言(Go / Rust / Java 不支持)
- ❌ 需要架构级 / 模块级深度重构(Sourcery 只到函数级)
- ❌ 团队级 PR 代码审查平台(用 CodeRabbit / DeepSource)
- ❌ 需要开源 / 自托管(用 Ruff + 自定义规则)
FAQ
Q: Sourcery 和 Ruff 怎么选? A: Ruff 是开源 Python linter,极快、免费、规则多,但只报告不重构。Sourcery 偏重构 + IDE 实时一键修复,体验更好但闭源收费。日常用 Ruff 做 lint + Sourcery 做重构,互补。
Q: Free 版够用吗? A: 日常 Python / JS 重构 Free 版够——基础规则覆盖常见代码异味。Pro 主要值在自定义规则、AI 重构和 CI 集成,团队规范严格才需要。
Q: 和 CodeRabbit 区别? A: CodeRabbit 是 LLM 驱动的 PR 审查,在 PR 阶段工作。Sourcery 是 IDE 实时重构 + CLI,在编码阶段工作。CodeRabbit 更通用但只在 PR,Sourcery 更专注重构但语言窄。
Q: 支持 Jupyter Notebook 吗? A: 支持。VS Code 中打开 .ipynb,Sourcery 会分析每个 cell 的代码并提供重构建议。数据科学场景实用。
相关阅读
DeepSource · Cody (Sourcegraph) · Tabnine
来源
本文的价格、版本号与性能数据均参考以下官方渠道整理,可能随时间变动,请以官方实时信息为准。
