~/VibeHandbook
PDF Gratis

Bab 12 · 06

Akar masalah versus gejala

Jebakan paling menggoda dalam debugging adalah tambalan yang membuat error hilang tanpa memperbaiki penyebabnya. Jika user undefined dan kamu "memperbaikinya" dengan if (user) { ... }, error itu berhenti — tapi sekarang pendaftaran (signup) diam-diam tidak melakukan apa-apa, yang justru lebih buruk: crash yang berisik setidaknya memberitahumu ada yang salah, dan sekarang tidak ada apa pun yang memberitahu. Pertanyaan sebenarnya adalah mengapa user undefined di sini? Mungkin pencarian gagal. Mungkin sebuah field diganti namanya. Mungkin ada await yang hilang di bagian upstream.

Ketika AI mengusulkan perbaikan, tanyakan padanya:

  • "Apakah ini memperbaiki penyebabnya atau menyembunyikan gejalanya?"
  • "Apa alasan asli mengapa nilainya salah?"
  • "Bisakah akar masalah yang sama ini merusak hal lain?"

Perbaikan akar masalah biasanya membuat kode menjadi lebih sederhana atau lebih jelas. Tambalan gejala biasanya menambahkan pengaman (guard), try/catch yang menelan error, atau nilai default yang menutupi masalah sesungguhnya. Curigai jenis yang kedua. Ada satu tanda yang layak dipelajari: jika sebuah perbaikan menambahkan kode yang satu-satunya tugasnya adalah mencegah crash, bukan melakukan hal yang benar, kemungkinan besar kamu sedang menambal gejala. Perbaikan sungguhan cenderung menghilangkan keadaan yang mustahil itu sepenuhnya, bukan sekadar bertahan darinya.

Mau versi offline?

Unduh seluruh buku sebagai PDF atau EPUB — gratis.