Cara Guna AI untuk Koding secara Selamat & Berkesan

Beri arahan kepada AI seperti rakan sekerja, kemudian semak hasilnya seperti penilai. Prompt untuk debugging, kod baharu, ujian dan semakan penting.

6 minit bacaanDikemas kini

Glass blocks connected by glowing lines with small gears

Sembang AI sememangnya berguna untuk pengaturcaraan: menerangkan kod yang asing, mencari punca ralat, menulis kod 'boilerplate', merangka ujian serta membantu anda mempelajari bahasa atau pustaka baharu. Namun, ia juga sering membuat kesilapan dengan penuh yakin, jadi anda perlu menganggap setiap jawapan seperti 'pull request' daripada rakan sekerja yang pantas tetapi cuai. Panduan ini menunjukkan cara bertanya dengan betul dan cara menyemak jawapan yang diterima.

Kelebihan sembang AI dalam pengaturcaraan

  • Menerangkan kod: "terangkan fungsi ini baris demi baris".
  • Penyahpepijatan (debugging): membaca mesej ralat dan 'stack trace' serta mencadangkan punca yang mungkin.
  • Fungsi kecil yang jelas: menghurai tarikh, mengesahkan input, mengubah data.
  • Boilerplate: fail konfigurasi, penghuraian hujah baris perintah, pengendali API asas.
  • Ujian: merangka ujian unit, termasuk kes pinggir (edge cases) yang anda terlepas pandang.
  • Regex, SQL dan skrip satu baris shell, lengkap dengan penjelasan bagi setiap bahagian.
  • Pembelajaran: "Saya tahu Python; tunjukkan cara kod ini ditulis dalam Go dan terangkan perbezaannya".
  • Semakan kod (code review): mengesan isu kebolehbacaan, ketiadaan pengendalian ralat dan kelemahan keselamatan yang ketara.

AI kurang berkesan untuk keputusan reka bentuk besar yang bergantung pada keseluruhan asas kod (codebase) anda, versi pustaka yang terlalu baharu dan mungkin belum diketahuinya, serta apa-apa yang tidak dapat dilihatnya. Dalam sembang seperti ChatG, AI hanya melihat apa yang anda tampal. Ia tidak boleh membuka fail atau menjalankan kod anda.

Cara meminta pembetulan pepijat (bug fix)

Kebanyakan jawapan kod yang lemah berpunca daripada kekurangan konteks. Prompt penyahpepijatan yang baik merangkumi lima perkara: bahasa dan versi, kod yang berkaitan, ralat penuh, perkara yang anda jangkakan berbanding apa yang sebenarnya berlaku, dan apa yang telah anda cuba.

Lemah:
Kod saya tak jalan, tolong betulkan.
[200 baris kod ditampal]
Kuat:
Python 3.12, pandas 2.x. Fungsi ini sepatutnya mengembalikan purata
nilai pesanan bagi setiap pelanggan, tetapi ia menghasilkan KeyError: 'customer_id'.

Kod:
[tampal fungsi sahaja dan sampel 5 baris data]

Traceback penuh:
[tampal]

Saya telah menyemak bahawa fail CSV mempunyai lajur customer_id. Apakah
punca yang mungkin? Terangkan pembetulan sebelum menunjukkan kod yang dibetulkan.

Kecilkan kod anda kepada bahagian paling ringkas yang masih menunjukkan masalah tersebut. Ini selalunya dapat mendedahkan pepijat itu sendiri dan memastikan tumpuan kekal pada baris yang penting. Anda boleh membuka prompt penyahpepijatan dalam sembang dan mengisi ruang kosong.

Cara meminta kod baharu

Tulis spesifikasi ringkas. Lebih tepat anda menerangkan input, output dan kes pinggir, lebih sedikit pembetulan yang perlu anda buat kemudian.

Tulis fungsi TypeScript slugify(title: string): string.
- Huruf kecil, ASCII sahaja; transliterasi huruf beraksen biasa
  (contohnya, é menjadi e).
- Gantikan mana-mana jujukan aksara bukan alfanumerik dengan satu tanda sempang.
- Buang tanda sempang di kedua-dua hujung; panjang maksimum 60, jangan potong di tengah perkataan.
- Tiada pustaka luaran.
Kemudian tulis 8 ujian unit dengan Vitest, termasuk rentetan kosong dan
input yang mengandungi emoji.

Minta ujian sekali bersama-sama kod. Jika ujian AI dan kodnya tidak sepadan, anda telah menemui masalah sebelum ia masuk ke persekitaran produksi.

Nyatakan perkara yang anda tidak mahu: "tiada kebergantungan (dependencies) baharu", "kekalkan tandatangan fungsi sedia ada", "pustaka standard sahaja", "jangan ubah apa-apa di luar fungsi ini". Tanpa had, AI cenderung menulis semula lebih daripada apa yang anda minta.

Sahkan segalanya sebelum dilancarkan

Kod janaan AI mungkin nampak kemas tetapi masih boleh mengandungi ralat. Jadikan semakan ini sebahagian daripada rutin anda:

  1. Jalankan kod tersebut. Jangan sekali-kali memasukkan kod ke dalam projek tanpa menjalankannya bersama ujian yang berkaitan.
  2. Pastikan setiap fungsi dan pilihan wujud. AI kadangkala mereka kaedah, parameter atau kekunci konfigurasi, atau menggunakan fungsi daripada versi lama. Semak perkara tersebut dalam dokumentasi rasmi untuk versi yang anda gunakan.
  3. Semak setiap nama pakej sebelum memasangnya. Penyelidik keselamatan mendapati bahawa pembantu AI kadangkala mengesyorkan pakej yang tidak wujud, dan penyerang boleh mendaftarkan nama tersebut dengan kod berniat jahat (serangan yang kadangkala dipanggil "slopsquatting"). Pastikan pakej tersebut adalah pakej sebenar dan diselenggara dalam repositori rasmi sebelum anda memasangnya.
  4. Semak dari segi keselamatan. Perhatikan SQL yang dibina dengan penggabungan rentetan (string concatenation), ketiadaan pengesahan input, pemeriksaan sijil yang dinyahdayakan, maklumat rahsia dalam kod dan kebenaran yang terlalu luas. Tanya AI secara terus: "Semak kod ini untuk isu keselamatan, dengan anggapan bahawa setiap input berniat jahat."
  5. Baca sehingga anda memahaminya. Jika anda tidak dapat menerangkan fungsi sesuatu blok kod, tanya AI atau jangan gabungkannya (merge). Anda yang akan menyelenggaranya nanti.

Jauhkan maklumat rahsia dan kod peribadi daripada sembang

Jangan sekali-kali menampal kunci API, kata laluan, token, kunci peribadi atau rentetan sambungan ke dalam mana-mana sembang AI. Gantikannya dengan pemegang tempat seperti YOUR_API_KEY. Jika anda secara tidak sengaja mendedahkan maklumat rahsia sebenar di luar sistem anda, segera tukar (rotate) kunci tersebut.

Jika anda menulis kod untuk majikan atau pelanggan, semak dasar mereka sebelum menampal kod ke dalam mana-mana perkhidmatan AI luaran. Banyak syarikat hanya membenarkan alatan yang diluluskan untuk kod hak milik mereka. Jika ragu-ragu, ringkaskan masalah kepada contoh umum yang tidak mendedahkan apa-apa tentang projek tersebut. Panduan privasi dan keselamatan AI kami menerangkan perkara ini dengan lebih terperinci.

Prompt berguna untuk pembangun

Terangkan kod ini kepada pembangun yang tahu [bahasa] tetapi tidak biasa
dengan pustaka ini. Terangkan blok demi blok, kemudian senaraikan apa-apa yang
kelihatan berisiko atau lapuk.
[tampal kod]
Semak diff ini seperti seorang jurutera kanan. Kumpulkan ulasan anda mengikut
pepijat, keselamatan, prestasi dan kebolehbacaan. Berikan ulasan yang spesifik
dan petik baris yang dimaksudkan.
[tampal diff]
Tulis ungkapan biasa (regular expression) yang sepadan dengan [penerangan].
Terangkan setiap bahagian, kemudian berikan 5 rentetan yang sepatutnya sepadan
dan 5 yang tidak.
Saya mahir Python dan sedang belajar Rust. Tunjukkan cara untuk [tugas] dalam
Rust, dan terangkan konsep 'ownership' dan 'borrowing' seolah-olah saya tidak
pernah melihatnya sebelum ini.

Terdapat banyak lagi contoh dalam koleksi prompt pengaturcaraan. Untuk tugasan pantas yang dibuat sekali-sekala, alatan pembantu kod sedia menerima penerangan atau coretan kod lalu menghasilkan kod berserta penjelasan, manakala pembantu pengaturcaraan terbina dalam mengekalkan gaya khusus untuk pembangun sepanjang perbualan.

Kesilapan lazim

  • Menampal keseluruhan projek. Teks yang terlalu panjang menenggelamkan bahagian penting dan boleh melebihi had pemprosesan AI sekali gus. Hantar fail atau fungsi yang berkaitan sahaja.
  • Menerima "pembetulan" yang sekadar menyembunyikan simptom. Membungkus segala-galanya dalam blok try/except hanya menghilangkan mesej ralat, bukan pepijatnya. Tanya sebab ralat itu berlaku.
  • Berpusing-pusing tanpa penyelesaian. Jika dua atau tiga percubaan gagal, berhenti dan ubah pendekatan: berikan lebih banyak konteks, guna contoh yang lebih kecil, atau mulakan sembang baharu dengan ringkasan masalah yang jelas.
  • Tidak menyatakan versi. API rangka kerja berubah mengikut versi utama, jadi nyatakan versi yang anda gunakan.
  • Mengabaikan lesen. Jika AI menghasilkan bahagian kod yang jelas diambil daripada sumber lain, semak lesennya sebelum anda menggunakannya.

Lihat juga cara pembangun menggunakan ChatG dan panduan umum menulis prompt.

Aliran kerja yang mengekalkan kawalan di tangan anda

  1. Terangkan matlamat dahulu, tanpa kod. Minta dua atau tiga pendekatan yang mungkin serta kelebihan dan kekurangannya sebelum sebarang kod ditulis.
  2. Pilih satu pendekatan dan minta langkah pertama yang kecil. Satu fungsi atau satu fail pada satu-satu masa lebih mudah disemak berbanding keseluruhan ciri baharu.
  3. Jalankan kod dan laporkan hasilnya. Tampal output sebenar atau ralat yang berlaku, bukan sekadar memberitahu "ia tak berfungsi".
  4. Minta ujian, kemudian semakan kod. "Apakah kes pinggir yang terlepas pandang?" selalunya berjaya mengesan pepijat seterusnya.
  5. Tulis mesej komit (commit message) sendiri. Jika anda tidak dapat meringkaskan perkara yang diubah dan puncanya, anda belum benar-benar memahami perubahan tersebut.

Soalan Lazim

Bolehkah AI menggantikan proses belajar memprogram?

Tidak. Ia mempercepat kerja mereka yang sudah boleh membaca dan menilai kod. Jika anda tidak tahu sama ada sesuatu jawapan itu betul atau salah, anda tidak boleh menggunakannya dengan selamat. Gunakan AI untuk belajar dengan lebih pantas: fahami puncanya, bukan sekadar hasilnya.

Bahasa pengaturcaraan apa yang disokong?

Sembang AI secara umumnya mengendalikan bahasa popular seperti Python, JavaScript, TypeScript, Java, C#, C++, Go, PHP, SQL dan skrip shell dengan baik, manakala bahasa yang jarang digunakan dikendalikan dengan kurang konsisten. Kualiti juga berkurangan bagi pustaka dan versi yang sangat baharu.

Bolehkah ChatG menjalankan kod saya atau melihat repositori saya?

Tidak. ChatG ialah ruang sembang: ia hanya melihat apa yang anda tampal padanya, dan ia tidak menjalankan kod. Jalankan dan uji segalanya dalam persekitaran anda sendiri.

Adakah kod janaan AI selamat digunakan untuk tujuan komersial?

Layan ia seperti kod daripada mana-mana sumber luar: semak, uji, pastikan lesen kebergantungan serta mana-mana kod yang kelihatan disalin adalah teratur, dan patuhi dasar majikan anda. Ini ialah maklumat umum, bukan nasihat undang-undang.

Sedia bila-bila masa

Buka sembang dan ajukan soalan pertama anda. Percuma dan tiada apa-apa perlu dipasang.

Mula bersembang