Cara Praktis Menggunakan Agen untuk Menganalisis Kode Basis Warisan (Legacy Codebase)

Computing/Software3분 읽기

TuBrief 편집팀 원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다. 원본 영상: Saya Berhenti Menggunakan Grep dan Agen Saya Menjadi 10x Lebih Cepat · Better Stack

Seorang insinyur yang menangani proyek warisan (legacy) berskala besar menghabiskan waktu 2 jam setiap hari untuk membedah tumpukan kode. Metode mengejar string dengan grep kini telah mencapai batasnya. Meskipun ingin mengadopsi agen AI, kenyataannya banyak yang bingung bagaimana cara mengintegrasikannya ke dalam alur kerja. Tulisan ini membahas prosedur teknis konkret untuk menjadikan agen bukan sekadar chat bot, melainkan alat untuk meningkatkan produktivitas kerja.

Singkirkan kebisingan terlebih dahulu

Jika Anda memberikan seluruh basis kode kepada agen, konteksnya akan tercemar. Mempelajari data yang tidak perlu akan menghasilkan jawaban yang melenceng dan hanya membuang-buang biaya token. Mempersempit cakupan pengindeksan saja sudah cukup untuk membuat kecepatan respons terasa jauh lebih cepat.

Segera terapkan 3 hal berikut:

  1. Buat file .cursorignore di direktori root proyek. Kecualikan artefak build yang besar seperti /dist, /build, /target, dan node_modules tanpa kompromi.
  2. Kecualikan juga stub Protobuf atau file *.gen.ts yang dibuat secara otomatis. Ini dapat mencegah agen menghasilkan kode yang mengabaikan kompatibilitas mundur.
  3. Gunakan alat sinkronisasi berbasis Merkle tree. Jangan membangun ulang seluruh indeks setiap saat, cukup perbarui nilai hash dari file yang dimodifikasi untuk meningkatkan kecepatan pengindeksan hingga 3 kali lipat.

Lacak ketergantungan dengan pohon sintaks

Pencarian berbasis teks tidak akan pernah bisa menemukan hubungan pewarisan (inheritance) yang kompleks. Anda perlu menganalisis Abstract Syntax Tree (AST) dari kode tersebut dengan alat seperti ast-grep. Jika Anda memasukkan ini ke dalam prompt, Anda dapat membuat kueri yang jauh lebih canggih daripada pencarian sederhana.

  1. Definisikan pola sintaks dari target yang ingin dianalisis. Misalnya, tulis pola fungsi asinkron yang melewatkan penanganan eror menggunakan sintaks ast-grep.
  2. Berikan alat @codebase dan pola ini bersama-sama kepada agen. Pada tahap ini, tambahkan instruksi untuk mempersempit cakupan agar hanya mencari hubungan pewarisan antar modul internal dan mengabaikan pustaka eksternal.
  3. Minta agen untuk menampilkan hasilnya dalam diagram Mermaid. Memvisualisasikan alur pemanggilan yang rumit dapat mengurangi waktu penyelesaian masalah sekitar 40%.

Validasi perbaikan dengan pengujian

Perbaikan yang disarankan oleh AI setengahnya mengandung eror. Jika Anda langsung menggabungkannya (merge), utang teknis hanya akan menumpuk. Tanamkan Test Impact Analysis (TIA) ke dalam pipeline CI Anda untuk mengotomatisasi siklus verifikasi.

  1. Tulis skrip yang hanya menjalankan tes yang relevan dengan kode yang diubah, seperti --findRelatedTests pada Jest.
  2. Berikan instruksi kepada agen: jika tes gagal, atur loop agar agen menganalisis log eror dan memperbaiki kodenya sendiri.
  3. Masukkan alat seperti CodeQL ke dalam tahap CI. Alat ini secara otomatis akan menyaring kerentanan keamanan yang sulit dilihat oleh manusia.

Dengan membangun siklus ini, Anda dapat meningkatkan akurasi validasi sintaks secara signifikan. Anda tidak perlu membuang semua toolchain yang ada. ripgrep masih lebih cepat 10 kali lipat daripada agen untuk pencarian sederhana. Memisahkan peran sesuai dengan karakteristik alat adalah tugas yang sebenarnya dari seorang insinyur senior.

관련 영상

Saya Berhenti Menggunakan Grep dan Agen Saya Menjadi 10x Lebih Cepat

Better Stack8:06

커뮤니티의 다른 글

댓글

로그인하고 댓글을 남겨 보세요.

아직 댓글이 없습니다.