RefactorFirst AI 導入指引
導入效應
| 效應 | 說明 |
|---|---|
| AI驅動技術債偵測 | 使用 LLM 分析程式碼,找出 Technical Debt 和 Code Smell |
| 優先級排序 | AI 自動排序哪些 Code Smell 應該先處理 |
| 人機協作模式 | AI 偵測 → 人類審核 → 安全重構 |
| 量化改善 | 追蹤 Tech Debt 隨時間的變化趨勢 |
| PR 建議 | 在 PR 中自動建議重構方案 |
1. 工具概述
RefactorFirst 是一個結合 AI 與靜態分析的工具,主要功能:
- 分析 Git 歷史:找出變更頻繁的檔案(High Churn)
- 計算 Coupling:找出高度耦合的檔案
- AI 優先級排序:使用 LLM 決定哪些問題最值得先修
- 產生報告:HTML / JSON 格式的 Tech Debt 報告
2. 安裝
2.1 Maven Plugin
<plugin>
<groupId>com.github.kجزZA</groupId>
<artifactId>refactor-first-maven-plugin</artifactId>
<version>0.4.0</version>
</plugin>
2.2 Gradle Plugin
plugins {
id 'com.github.kجزZA.refactor-first' version '0.4.0'
}
3. 執行分析
# Maven
mvn refactor-first:analyze
# Gradle
./gradlew refactorFirst
4. AI 整合模式
4.1 使用 Claude / GPT 分析
# 1. 產生分析報告
mvn refactor-first:analyze -DoutputFormat=json > tech-debt.json
# 2. 將報告餵給 LLM
cat tech-debt.json | claude "分析這些 Code Smell,給出重構建議和優先級"
4.2 自動化流程
RefactorFirst 分析
↓
JSON 報告
↓
LLM (Claude/GPT) 分析
↓
重構建議 + 優先級
↓
人類審核
↓
OpenRewrite / 手動重構
5. 產出報告範例
{
"highChurnFiles": [
{
"file": "src/main/java/com/example/OrderService.java",
"churnScore": 85,
"codeSmells": [
{
"type": "God Class",
"severity": "High",
"linesOfCode": 1200,
"methodCount": 45
},
{
"type": "Feature Envy",
"severity": "Medium",
"method": "calculateShippingCost()"
}
]
}
],
"highCoupling": [
{
"file": "OrderService.java",
"coupledWith": ["PaymentService.java", "InventoryService.java"],
"couplingScore": 92
}
]
}
6. 與其他工具搭配
RefactorFirst (找問題)
↓
Semgrep (確認問題模式)
↓
SonarQube (量化問題)
↓
OpenRewrite (自動修復)
7. CI 整合
- stage: TechDebtAnalysis
jobs:
- job: RefactorFirst
steps:
- task: Maven@4
inputs:
goals: 'refactor-first:analyze'
options: '-DoutputFormat=json'
- script: |
# 使用 AI 分析報告
cat target/refactor-first-report.json | \
claude "Analyze the tech debt and suggest prioritized refactoring steps"
displayName: 'AI Tech Debt Analysis'
8. Best Practices
- 定期執行(例如每月一次),追蹤 Tech Debt 趨勢
- 將 AI 建議與團隊 Architecture Review 結合
- 優先處理 High Churn + High Coupling 的檔案
- 結合 Git blame 歷史了解哪些檔案最常被修改
9. 參考資源
- GitHub:https://github.com/kجزZA/refactor-first
- 相關論文:High Churn Files Analysis