Kesalahan Apa yang Dilakukan Dev saat Coding dengan AI Assistants?
Tinjauan praktis tentang cara-cara paling umum developer menyalahgunakan AI coding assistants, dan cara menghindari mengirimkan bugs dan vulnerabilities.
AI assistants seperti Copilot, Claude, dan model built-in Cursor telah mengubah seberapa cepat kode ditulis. Mereka belum mengubah seberapa hati-hati kode harus direview. Sebagian besar kerusakan yang saya lihat dari AI-assisted coding berasal dari segelintir kebiasaan yang dapat diulangi, bukan dari model itu sendiri.
Menerima saran tanpa membacanya
Yang terbesar adalah tab-accept completion karena terlihat masuk akal dan compile. Masuk akal bukan berarti benar. Saya pernah melihat SQL query yang disarankan diam-diam menghapus klausa WHERE selama refactor, dan orang itu menerimanya karena nama variabel cocok. Jika Anda tidak membaca setiap baris yang diberikan asisten pada kecepatan yang sama seperti membaca pull request rekan kerja, Anda akan mengirimkan sesuatu yang tidak Anda pahami. Perlakukan setiap saran sebagai draft pertama dari junior dev yang cepat tetapi tidak memiliki memori tentang konvensi codebase Anda.
Mempercayainya dengan kode yang sensitif terhadap keamanan
AI assistants dilatih pada tumpukan besar kode publik, dan banyak kode tersebut memiliki masalah keamanan yang tertanam. Minta file upload handler yang cepat dan Anda sering akan mendapatkan sesuatu tanpa extension check, tanpa size limit, dan path yang dibangun dengan string concatenation alih-alih os.path.join atau safe library call. Cerita yang sama dengan auth: assistants senang menyarankan penyimpanan JWTs di localStorage, atau membandingkan secrets dengan == alih-alih constant-time comparison. Tidak ada yang berbahaya, hanya saja secara statistik umum dalam training data. Untuk apa pun yang menyentuh authentication, file I/O, deserialization, atau SQL, tulis logika sendiri atau jalankan output AI melalui pertanyaan threat-modeling yang sama yang Anda tanyakan tentang kode baru apa pun: apa yang terjadi dengan input yang bermusuhan, apa yang terjadi jika call ini gagal, siapa lagi yang dapat menjangkau endpoint ini.
Membiarkannya menciptakan dependencies dan APIs
Model hallucinate nama package dan function signatures dengan confidence total. Ini adalah masalah "slopsquatting" — penyerang mendaftarkan nama package palsu yang sering disarankan model, jadi pip install atau npm install yang tidak diverifikasi dapat menarik sesuatu yang sama sekali bukan library logging Anda. Sebelum menambahkan dependency apa pun yang direkomendasikan asisten, periksa bahwa itu benar-benar ada di PyPI atau npm, periksa download count dan last publish date, dan skim source jika cukup kecil. Peringatan yang sama berlaku untuk API calls: jika asisten mereferensikan method yang tidak Anda kenali, periksa docs sebenarnya sebelum mengasumsikan itu ada.
Kehilangan mental model dari kode Anda sendiri
Ketika Anda menulis kode sendiri, Anda membangun peta mental tentang mengapa setiap bagian ada. Ketika Anda menerima blok besar kode yang dihasilkan AI sepanjang session, peta itu menjadi tipis dengan cepat. Kemudian bug muncul tiga minggu kemudian dan Anda men-debug kode yang tidak pernah benar-benar Anda tulis dan tidak sepenuhnya ingat. Fixes bukan untuk menghindari kode yang dihasilkan AI, tetapi memperlambat cukup untuk menjelaskan setiap chunk kembali ke diri sendiri, atau ke teammate, sebelum merge. Jika Anda tidak dapat menjelaskan apa yang dilakukan function dan mengapa melakukannya dengan cara itu, jangan merge dulu.
Melewati tests karena kode
Ditulis dengan bantuan AI, ditinjau dan dipublikasikan oleh Michal Pilch (CISSP), Korra Studio.
Ini satu catatan dari basis pengetahuan Korra Studio — platform ini memasangkan setiap topik dengan bimbingan privat.
Mulai gratisarrow_forward