Keuntungan:
- Kemampuan untuk menggunakan AI sebagai filter ulasan awal dengan kategori dan tag tingkat keparahan
- Kemampuan untuk menyaring temuan dengan pikiran manusia untuk memverifikasi/positif palsu/menerapkan
- Kemampuan untuk menegakkan persyaratan persetujuan manusia pada aturan bisnis, arsitektur, dan keputusan penting mengenai keamanan
Peninjauan kode adalah ketika perubahan yang ditulis oleh pengembang ditinjau oleh orang lain sebelum digabungkan. Ulasan bagus; Ia menangkap bug lebih awal, berbagi informasi, dan menjaga basis kode tetap konsisten. Namun ulasannya melelahkan, rentan terhadap gangguan, dan menjadi dangkal karena tekanan waktu. Kecerdasan buatan adalah asisten ganda di sini: memungkinkan Anda membersihkan kode Anda sendiri yang Anda kirimkan untuk ditinjau dan memeriksa PR orang lain (permintaan tarik) dengan lebih tajam.
Perbedaan pentingnya adalah: AI mempercepat dan meningkatkan peninjauan, namun AI tidak dapat mengambil alih tanggung jawab atas persetujuan. Kalimat “AI lihat, bersih” bukanlah sebuah dukungan. Keputusan "penggabungan" terakhir ada di tangan insinyur yang mengetahui kode dan konteksnya.
Apa yang Baik dan Buruk tentang AI dalam Tinjauan
Baik untuk: Kesalahan pemeriksaan nol, kebocoran sumber daya (file/tautan tetap terbuka), pengecualian yang tidak tertangkap, kondisi yang jelas-jelas salah (>= alih-alih >), saran penggantian nama, keterbacaan, huruf tepi yang hilang, bau keamanan sederhana (seperti rangkaian string SQL), deteksi kode duplikat.
Kelemahan: Kelemahan mendalam yang melanggar aturan bisnis Anda tetapi memerlukan konteks dan waktu, seperti logika yang benar secara sintaksis, kepatuhan arsitektur, hambatan kinerja nyata, kesalahan konkurensi. AI juga menghasilkan positif palsu (mengira sesuatu yang sebenarnya bukan masalah sebagai suatu masalah) dan negatif palsu (menghilangkan bug yang sebenarnya). Oleh karena itu, keluarannya adalah “daftar kewaspadaan”, bukan putusan yang pasti.
Perhatian: Hanya karena AI mengatakan "tidak masalah" tidak membuktikan bahwa kode tersebut benar. Negatif palsu tidak bersuara; Kesalahan paling berbahaya adalah kesalahan yang tidak pernah disebutkan dalam ulasan.
Langkah Tinjauan Sistematis
- Berikan konteksnya. Tambahkan tujuan perubahan, masalah yang relevan, dan kriteria penerimaan, jika ada, ke perintah. Tinjauan tanpa tujuan menghasilkan penafsiran tanpa tujuan.
- Bagilah menjadi beberapa kategori. Minta model untuk mengklasifikasikan temuannya sebagai "bug/keamanan/kinerja/keterbacaan/gaya"; jadi Anda memisahkan yang kritis dari kebisingan.
- Minta label tingkat keparahan. Berikan peringkat "tinggi/sedang/rendah" pada setiap temuan dan sertakan "penyebab" dan "koreksi yang disarankan".
- Saring dengan mata Anda sendiri. Evaluasi setiap temuan: apakah benar (verifikasi), apakah positif palsu (tulis justifikasi), apakah ada yang kurang (tambahkan pengetahuan Anda).
- Verifikasi jalur kritis secara manual. Baca dan jalankan sendiri rute yang melibatkan uang, identitas, otorisasi, dan penghapusan data tanpa bergantung pada AI.
Tiga Kasus Mini
Kasus 1 — Kesalahan null senyap tertangkap. Satu tim meminta AI melakukan pra-review PR 380 baris. Model menandai cara di mana respons layanan eksternal bisa menjadi nol, namun tidak ada pemeriksaan yang dilakukan untuk hal ini dalam kode. Peninjau manusia memverifikasi jalur ini dan menambahkan tanda centang nol; Kesalahan serupa menyebabkan gangguan produksi selama 2 jam pada kuartal sebelumnya.
Kasus 2 — Eliminasi positif palsu. AI menandai “kemungkinan masalah kinerja” dalam satu lingkaran. Peninjau menutup ini sebagai positif palsu, mengetahui bahwa loop hanya berfungsi dengan maksimal 5 elemen (mengulang enum). Model yang tidak mengetahui konteksnya memperingatkan; Orang yang mengetahui konteksnya membuat keputusan yang tepat.
Kasus 3 — AI melewatkan kesalahan aturan bisnis. Meskipun akun diskon harus maksimal 30% menurut aturan kampanye, kode mengizinkan 50%. AI tidak pernah menyadari kesalahan logika yang sempurna secara sintaksis ini; karena dia tidak tahu aturannya. Bug tersebut tertangkap dalam peninjauan oleh pemilik produk yang mengetahui kriteria penerimaan. Pelajaran: validasi aturan bisnis adalah pekerjaan manusia.
Empat Templat yang Dapat Disalin
Ulasan yang berorientasi pada tujuan dan dikategorikan:
Peran: Peninjau kode yang teliti. Tujuan perubahan: {{tujuan / masalah}}Tinjau perbedaan ini. Berikan temuan dalam kategori berikut: [Bug] [Keamanan] [Kinerja] [Keterbacaan] [Gaya]. Untuk setiap temuan: file:baris, tingkat keparahan(tinggi/sedang/rendah), penyebab, perbaikan yang disarankan. Tandai "mungkin" jika Anda tidak yakin. Anda tidak mengetahui aturan bisnis; Tanyakan padaku tentang tempat-tempat yang memerlukan aturan.{{diff}}
Untuk bersiap meninjau kode Anda sendiri:
Tinjau perubahan ini sebelum membuka PR. Cari: null/pemeriksaan bug yang hilang, kebocoran sumber daya, kasus tepi, rahasia, cabang yang belum teruji. Buat daftar temuan berdasarkan prioritas; sarankan koreksi 1 baris untuk masing-masing.{{code}}
Perburuan kasus tepi:
Buat daftar masukan dan situasi di mana fungsi ini mungkin rusak: kosong, nol, terlalu besar, negatif, panggilan bersamaan, kesalahan jaringan, sebagian data. Untuk setiap kasus, tulis perilaku yang diharapkan dan apa yang akan dilakukan kode saat ini.{{function}}
Pemindaian aroma keamanan (pra-penyaringan):
Cari bau keamanan umum dalam kode ini: SQL/penggabungan perintah, masukan yang tidak divalidasi, rahasia tertanam yang tidak dapat diubah, deserialisasi tidak aman, kurangnya pemeriksaan hak istimewa. Pisahkan temuan menjadi “pasti/mungkin/pengetahuan”. Ini adalah penyaringan awal; Ini bukan keputusan yang pasti.{{code}}
Perintah lemah / Perintah kuat
Lemah: “Apakah ada kesalahan dalam PR ini?”
Kuat: "Tujuan: menambahkan diskon kupon ke total keranjang (diskon tidak boleh lebih dari 30% — Anda tidak dapat memverifikasi aturan ini sendiri, cukup beri tahu saya jika kode tersebut menerapkan batas atas). Periksa perbedaan; berikan temuan berdasarkan kategori + tingkat keparahan + koreksi yang disarankan, tandai 'mungkin' jika tidak yakin. [beda]"
Versi yang kuat dengan jelas menyatakan maksud, aturan bisnis, dan batasan AI; Dengan demikian, temuan-temuan berguna muncul dan area yang tidak diketahui modelnya tetap jelas.
Tipe penemuan
Keandalan AI
peran pria
Pemeriksaan null/kesalahan hilang
tinggi
Verifikasi dan terapkan
Keterbacaan/gaya
tinggi
Pilih berdasarkan preferensi
Bau keamanan sederhana
sedang
Selesaikan, pindai dengan kendaraan
Kepatuhan terhadap aturan bisnis
rendah
Itu sepenuhnya manusiawi.
Konkurensi/arsitektur
rendah
Diperlukan tinjauan ahli
Tinjauan AI Bukanlah Pengganti Tinjauan Manusia
Posisikan tinjauan AI sebagai “filter pertama”: proses pendahuluan yang murah, cepat, dan tak kenal lelah. Filter ini membebaskan perhatian pengulas manusia dari detail yang tidak penting (spasi, nama) dan mengarahkannya ke tempat-tempat yang benar-benar memerlukan pemikiran—aturan bisnis, arsitektur, hasil keamanan. Namun persetujuan penggabungan adalah tanda tangan orang yang bertanggung jawab dalam tim. Tinjauan independen oleh setidaknya satu insinyur yang kompeten adalah wajib untuk perubahan yang kritis terhadap keselamatan.
Tip: Bacalah daftar temuan yang dihasilkan AI sebagai “hal yang perlu diperiksa” dan bukan “yang harus dilakukan”. Verifikasi dan terapkan setiap item atau tuliskan dalam satu kalimat mengapa Anda lulus; jejak ini membuat tinjauan dapat diaudit.
Kesalahan umum
- Artinya "AI lihat, bersih". Ini adalah rasa percaya diri yang salah karena adanya negatif palsu.
- Tidak memberikan konteks. Tanpa tujuan dan kriteria penerimaan, model hanya menghasilkan interpretasi gaya yang dangkal.
- Menerapkan positif palsu secara membabi buta. Memperbaiki setiap peringatan model dapat merusak kode yang sedang berjalan.
- Menanyakan model tentang aturan bisnis. Model tidak mengetahui aturannya; Terserah manusia untuk memverifikasinya.
- Jangan mendiskriminasi kekerasan. Menempatkan temuan keamanan penting dan saran nama di tas yang sama menutupi hal yang penting.
Singkatnya
AI adalah filter pertama yang tak kenal lelah dalam peninjauan kode: ia menangkap kesalahan null/kesalahan, kasus tepi, dan keamanan sederhana yang berbau baik; namun lemah pada kelemahan yang memerlukan konteks seperti aturan bisnis, arsitektur, dan konkurensi, serta menghasilkan positif palsu dan negatif palsu. Minta temuan berdasarkan kategori dan tingkat keparahan, saring setiap temuan dengan kecerdasan manusia, verifikasi jalur kritis secara manual. Persetujuan selalu merupakan tanda tangan dari insinyur yang bertanggung jawab.
Tugas aplikasi
Pilih PR/diff yang nyata atau terkini. Pertama, minta AI meninjaunya dengan template “berorientasi tujuan, tinjauan kategori”. Letakkan temuan dalam sebuah tabel dan putuskan masing-masing: benar (saya verifikasi), positif palsu (inilah alasan saya), atau untuk diterapkan. Kemudian ikuti tur sendiri dan coba temukan setidaknya satu hal (terutama aturan bisnis atau kasus edge) yang hilang dari AI dan tuliskan.
daftar periksa
- [ ] Saya menggunakan ulasan AI sebagai filter pertama, bukan dukungan.
- [ ] Saya menambahkan tujuan dan kriteria penerimaan ke permintaan peninjauan.
- [ ] Saya memisahkan temuan dari kebisingan berdasarkan kategori dan sangat menginginkannya.
- [ ] Saya secara sadar memfilter setiap temuan untuk mengonfirmasi/positif palsu/mendaftar.
- [ ] Sebagai manusia, saya memeriksa aturan bisnis dan kepatuhan arsitektur.
- [ ] Saya memerlukan persetujuan dari teknisi berkualifikasi untuk perubahan yang penting bagi keselamatan.