Belajar Claude Code #27: Refactor Aman Tanpa Ngerusak yang Udah Jalan

Refactor itu salah satu hal yang kedengarannya enak buat dilempar ke Claude. Kodenya berantakan, kalian pengin lebih rapi, tinggal suruh dia beresin. Tapi refactor punya jebakan yang khas, yaitu niatnya cuma ngerapihin tapi diam diam ngubah perilaku. Di sinilah kebiasaan hati hati kalian paling nentuin, karena refactor yang kebablasan bisa ngerusak hal yang tadinya sudah bener.

Pastiin ada jaring pengaman dulu

Sebelum nyuruh Claude ngerapihin apa pun, pastiin kalian punya cara buat tahu kalau ada yang rusak. Cara paling jelas ya test, karena refactor yang bener itu harusnya nggak ngubah hasil, cuma ngubah bentuknya. Kalau sebelum refactor testnya hijau dan sesudahnya tetap hijau, kalian punya bukti bahwa perilakunya nggak berubah. Tanpa jaring ini, kalian lagi ngerapihin sambil merem, dan baru sadar ada yang meleset waktu sudah telat.

Pisahin ngerapihin dari nambah fitur

Jebakan paling umum adalah nyampur dua niat dalam satu langkah. Kalian minta Claude ngerapihin sebuah bagian, lalu sekalian minta dia nambah kemampuan baru di situ. Masalahnya, waktu ada yang rusak, kalian jadi susah tahu itu gara gara rapihannya atau gara gara fitur barunya. Lebih aman dipisah, rapihin dulu sampai yakin perilakunya sama, baru di langkah terpisah nambah hal baru. Commit yang kecil dan jelas niatnya juga bikin kalian gampang mundur kalau ternyata salah.

Refactor bertahap, bukan sekali bongkar besar

Godaan lain adalah nyuruh Claude ngebongkar banyak hal sekaligus biar sekali jadi. Dari pengalaman saya, refactor besar yang nyentuh banyak file dalam satu tarikan itu paling susah diperiksa dan paling gampang nyimpen masalah. Lebih enak dipecah jadi langkah langkah kecil yang tiap langkahnya bisa kalian baca dan pahami. Pelan memang kelihatannya lebih lama, tapi refactor yang kalian ngerti tiap langkahnya jauh lebih murah daripada bongkaran besar yang bikin kalian bingung sendiri waktu ada yang error.

Leave a Reply

Your email address will not be published. Required fields are marked *