Munculnya asisten coding AI seperti Claude Code dan Windsurf telah memicu perdebatan sengit di komunitas developer tentang apakah programmer harus membaca dan mereview kode yang dihasilkan AI sebelum mendorongnya ke production. Diskusi ini berpusat pada pertanyaan fundamental: apakah AI sudah menjadi sangat mampu sehingga code review menjadi opsional, atau melewatkan langkah ini menciptakan risiko keamanan dan arsitektur yang berbahaya?
Perbedaan Definisi: Apa Itu Vibe Coding?
Komunitas masih terbagi tentang apa sebenarnya arti vibe coding. Definisi asli, yang dipopulerkan oleh peneliti AI Andrej Karpathy , menggambarkannya sebagai coding tanpa membaca kode yang dihasilkan sama sekali - pada dasarnya memperlakukan AI sebagai black box yang menghasilkan hasil yang berfungsi. Namun, banyak developer sekarang berargumen untuk definisi yang berkembang yang mencakup coding berbasis dialog terpandu di mana manusia mereview output AI.
Ketidaksepakatan definisi ini mencerminkan ketegangan yang lebih dalam tentang standar profesional. Beberapa developer mengadvokasi untuk memperlakukan AI seperti sistem otonom, sementara yang lain bersikeras bahwa AI harus dikelola seperti developer junior yang pekerjaannya memerlukan supervisi dan review yang konstan.
Kerentanan Keamanan: Bahaya Tersembunyi
Salah satu argumen paling meyakinkan untuk membaca kode yang dihasilkan AI berasal dari kekhawatiran keamanan. Sistem AI, meskipun mengesankan, sering melewatkan implementasi keamanan kritis seperti kontrol akses yang tepat dan pemeriksaan autentikasi pengguna. Seorang developer baru-baru ini membagikan contoh di mana AI membuat endpoint API yang mengembalikan proyek apa pun berdasarkan ID tanpa memverifikasi apakah pengguna yang meminta benar-benar memiliki proyek tersebut - kerentanan otorisasi klasik.
Celah keamanan ini terjadi karena AI fokus pada memenuhi permintaan langsung daripada mempertimbangkan implikasi keamanan yang lebih luas. Tidak seperti developer manusia yang mungkin berhenti di tengah implementasi untuk mempertimbangkan edge case, sistem AI menghasilkan kode berdasarkan pola tanpa kesadaran keamanan kontekstual yang berasal dari pengalaman.
Daftar Periksa Review Kode AI
Sebelum Mendorong Kode yang Dihasilkan AI:
- Pemeriksaan Arsitektur: Apakah ini mengikuti pola yang telah ditetapkan?
- Review Keamanan: Apakah semua sumber daya sudah dibatasi dengan benar untuk pengguna?
- Pengujian: Apakah pengujian benar-benar menguji perilaku yang bermakna?
- Dokumentasi: Apakah Anda akan memahami ini dalam 6 bulan?
- Penanganan Error: Apakah kasus-kasus edge sudah tercakup?
- Performa: Adakah query N+1 yang jelas atau ketidakefisienan?
- Transfer Pengetahuan: Apakah Anda memahami kode yang baru?
Masalah Arsitektur: Ketika AI Menyimpang dari Skrip
Bahkan sistem AI yang dikonfigurasi dengan baik dapat secara bertahap mengikis arsitektur kode melalui inkonsistensi kecil yang bertambah seiring waktu. Developer melaporkan bahwa asisten AI terkadang menyimpang dari pola yang telah ditetapkan, menempatkan logika bisnis di controller alih-alih layer service, atau membuat fungsionalitas duplikat yang membuat codebase membengkak.
Jika Anda tidak menangkapnya sejak dini, inkonsistensi kecil tersebut menjadi bagian dari codebase—dan asisten favorit Anda akan tergoda untuk mengikuti contoh buruk tersebut di masa depan.
Tantangannya menjadi siklis: AI belajar dari pola kode yang ada, sehingga kesalahan arsitektur diperkuat dan diulang di seluruh proyek. Ini menciptakan technical debt yang menjadi semakin mahal untuk diperbaiki seiring berkembangnya codebase.
Paradoks Produktivitas
Perdebatan ini juga menyentuh pertanyaan fundamental tentang produktivitas developer dan pembelajaran. Beberapa berargumen bahwa membaca kode sebenarnya lebih lambat daripada menulisnya, menunjukkan bahwa mereview output AI tidak memberikan keuntungan produktivitas yang membuat tools ini menarik. Yang lain membantah bahwa memahami kode tetap penting untuk arsitektur software yang efektif dan maintainability jangka panjang.
Menariknya, diskusi mengungkapkan pendekatan yang berbeda berdasarkan kompleksitas proyek. Banyak developer melaporkan sukses menggunakan AI dalam mode auto-accept untuk fitur periferal dan prototyping, sambil mempertahankan proses review yang ketat untuk logika bisnis inti dan komponen yang kritis keamanan.
Dua Pendekatan untuk Pengembangan Berbantuan AI
Prototyping Cepat dengan Mode Auto-Accept:
- Digunakan untuk topik yang tidak familiar dan eksplorasi
- Cocok untuk scaffolding pengujian dan eksplorasi pustaka
- Memerlukan tinjauan dan penyesuaian di akhir sesi
- Terbaik untuk fitur periferal dan komponen non-kritis
Coding Sinkron untuk Fitur Inti:
- Gaya pair-programming tanpa auto-accept
- Setiap saran AI ditinjau sebelum implementasi
- Digunakan untuk logika bisnis inti dan alur kritis
- Mempertahankan konsistensi arsitektur melalui pengawasan konstan
Masa Depan Code Review
Seiring tools coding AI terus berkembang, komunitas menghadapi pilihan antara merangkul pengembangan yang sepenuhnya otomatis atau mempertahankan pengawasan manusia. Beberapa developer memprediksi bahwa mereview kode yang dihasilkan AI pada akhirnya akan menjadi tidak perlu seperti membaca kode assembly yang dihasilkan compiler. Yang lain berargumen bahwa pengembangan software melibatkan terlalu banyak pertimbangan spesifik domain dan persyaratan keamanan untuk sepenuhnya diotomatisasi.
Perdebatan ini pada akhirnya mencerminkan pertanyaan yang lebih luas tentang peran keahlian manusia di dunia yang diperkuat AI. Sementara AI dapat menghasilkan kode fungsional lebih cepat dari sebelumnya, tanggung jawab untuk arsitektur, keamanan, dan maintainability jangka panjang masih memerlukan penilaian manusia dan pengetahuan domain.
Konsensus tampaknya muncul di sekitar pendekatan hibrida: gunakan AI untuk mempercepat pengembangan sambil mempertahankan pengawasan manusia untuk keputusan kritis. Apakah keseimbangan ini akan bertahan seiring kemampuan AI terus berkembang tetap menjadi pertanyaan terbuka yang kemungkinan akan menentukan masa depan pengembangan software.
Referensi: Read That F*cking Code!