refactor-backend | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / refactor-backend

refactor-backend

maintained by gmedia

star 6 account_tree 2 verified_user MIT License
bolt View GitHub

name: Refactor Backend description: Panduan refactor khusus Backend (Laravel)

Refactor Backend (Laravel)

Lakukan refactor kode backend secara TERKONTROL tanpa merusak API contract, response structure, atau test existing.

🔌 MCP Tools yang Digunakan

Tool Kapan Digunakan
mcp_laravel-boost_database-schema WAJIB cek schema sebelum refactor Model
mcp_laravel-boost_list-routes Verifikasi routes tidak berubah
mcp_laravel-boost_search-docs Cari best practices Laravel
mcp_laravel-boost_tinker Test query Eloquent sebelum commit
mcp_laravel-boost_last-error Debug jika test gagal
mcp_filesystem_read_file Baca file referensi

🚫 ATURAN API COMPATIBILITY

DILARANG Mengubah:

  • ❌ Route URI, HTTP method
  • ❌ Request/Response payload structure
  • ❌ Response JSON keys
  • ❌ Query parameter names

Yang DIPERBOLEHKAN:

  • ✅ Refactor internal (pemindahan logic antar layer)
  • ✅ Penambahan typing, Resource, FormRequest

🏗️ ARSITEKTUR BACKEND

1. Controller (Tipis!)

Controller HANYA BOLEH:

  • Menerima FormRequest
  • Mapping ke DTO (jika perlu)
  • Memanggil Action
  • Return Resource

2. FormRequest

  • WAJIB spesifik per operasi: StoreDepartmentRequest, UpdateEmployeeRequest
  • Rules sesuai database schema

3. DTO (Opsional)

Gunakan jika:

  • ≥ 3 field bermakna bisnis
  • Data melewati lebih dari satu layer

4. Action (Opsional)

Gunakan jika:

  • Ada orchestration multi-tabel
  • Ada business rule kompleks

5. Domain Service (Opsional)

Gunakan jika:

  • Ada aturan bisnis reusable

📖 Referensi Pattern

# WAJIB cek schema sebelum refactor:
mcp_laravel-boost_database-schema()

# Baca file existing untuk pattern:
mcp_filesystem_read_file(path: "app/Http/Controllers/PositionController.php")
mcp_filesystem_read_file(path: "app/Http/Requests/Positions/StorePositionRequest.php")
Pattern File Referensi
Thin Controller app/Http/Controllers/PositionController.php
FormRequest app/Http/Requests/Positions/StorePositionRequest.php
Resource app/Http/Resources/Positions/PositionResource.php

💻 ATURAN CODING

Controller Signatures

// ✅ BENAR
public function store(StoreDepartmentRequest $request): JsonResponse
public function update(UpdateDepartmentRequest $request, Department $department): JsonResponse

// ❌ SALAH  
public function store(Request $request) // tidak spesifik

Response & Status Codes

Method Status Code
store() 201 Created
update() 200 OK
destroy() 204 No Content

PHPDoc WAJIB

/**
 * Store a newly created department.
 *
 * @param \App\Http\Requests\StoreDepartmentRequest $request
 * @return \Illuminate\Http\JsonResponse
 */

⚠️ ANTI OVER-ENGINEERING

JANGAN buat DTO/Action/Domain Service jika:

  • Logic hanya CRUD sederhana
  • Tidak ada orchestration
  • Hanya save model tanpa transformasi

✅ Verification

// turbo-all
./vendor/bin/sail test

Jika test gagal:

mcp_laravel-boost_last-error()

Gunakan mcp_laravel-boost_list-routes untuk verify routes tidak berubah.


📋 CHECKLIST

  • Controller: tipis, signature jelas, PHPDoc lengkap
  • FormRequest: spesifik, rules sesuai schema
  • Resource: konsisten dengan response lama
  • Test PASS: ./vendor/bin/sail test

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 6
GitHub Forks 2
Created Mar 2026
Last Updated 3个月前
tools tools automation tools

Related Skills

specs-gen
chevron_right
glm-coding-agent
chevron_right
creating-pr
chevron_right
writing-skills
chevron_right
reviewing-pr
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.