Search

PythonReactSEOPDF
GitHub Skill

refactor-backend

Panduan refactor khusus Backend (Laravel)

gmedia☆ 6 Repository stars2 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

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

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-03-11
Index updated
2026-03-11
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

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