ユーザーが「リファクタリング」「コードを整理」「可読性を上げて」「きれいにして」「保守性を改善」等と要求した時に発動。 機能を変更せずに、コードの保守性・可読性・パフォーマンスを向上させる。 テストが存在する場合は必ずテストをパスすることを確認し、機能不変を保証する。
*_test.go を確認go test ./... を実行してベースライン確立(全テストがパスすることを確認)go test ./... で機能不変を確認go fmt ./... でフォーマットgo vet ./... で静的解析refactor: ...形式)// Before
func f(n []int) int { ... }
// After
func Sum(numbers []int) int { ... }
// Before: 1つの関数が複数の責任
func ProcessData(data []byte) error {
// バリデーション
// パース
// 変換
// 保存
}
// After: 単一責任に分割
func ValidateData(data []byte) error { ... }
func ParseData(data []byte) (*Data, error) { ... }
func TransformData(data *Data) *Result { ... }
func SaveResult(result *Result) error { ... }
// Before: 重複コード
func AddUser(u User) { db.Insert("users", u) }
func AddPost(p Post) { db.Insert("posts", p) }
// After: 汎用化
func Add[T any](table string, entity T) { db.Insert(table, entity) }
// Before
if len(items) > 100 { ... }
// After
const MaxItems = 100
if len(items) > MaxItems { ... }
# Refactoring Report
## Target
- File: `pkg/calc/sum.go`
## Changes Applied
1. ✅ Improved function naming clarity
2. ✅ Added nil check for defensive programming
3. ✅ Simplified loop condition
## Test Results
✅ All tests pass (before and after)
- Tests run: 5
- Coverage: 85% (unchanged)
## Performance Impact
No performance regression detected