Keuntungan:
- Kemampuan untuk menjelaskan cara kerja asisten pengkodean sebagai model bahasa dan konsep token, jendela konteks, halusinasi
- Kemampuan untuk membedakan tugas perangkat lunak di mana AI kuat dan lemah dengan peta mental
- Kemampuan untuk menerapkan siklus kerja dasar usulan-produksi-verifikasi pada tugas mereka sendiri
Hari-hari seorang pengembang perangkat lunak jarang dihabiskan untuk "menulis kode dari awal". Waktu nyata; Membaca kode yang ditulis oleh orang lain, mencoba mereproduksi bug, memindai log (baris log yang dihasilkan oleh aplikasi saat berjalan), menulis tes, menulis PR (permintaan tarik - permintaan penggabungan di mana perubahan kode diserahkan untuk tinjauan tim) penjelasan dan memperbarui dokumentasi. Kecerdasan buatan (AI) adalah pengganda kecepatan yang dapat menyentuh hampir semua pekerjaan yang tidak terlihat ini. Namun syarat pertama untuk menggunakannya dengan aman adalah memahami dengan benar apa itu dan apa yang bukan.
Dalam unit ini, pertama-tama kami menjelaskan teknologi yang mendasari asisten pengkodean dalam bahasa sederhana; lalu kita membuat peta mental tentang kekuatan dan kelemahan model; Terakhir, kami menetapkan disiplin kerja dasar yang akan kami gunakan di seluruh modul: mengusulkan, memproduksi, memverifikasi. Ketiga langkah inilah yang menjadi tulang punggung sebelas unit berikutnya.
Catatan: Modul ini merupakan pelatihan umum. Dalam perangkat lunak yang sangat penting bagi keamanan (pemrosesan pembayaran, layanan kesehatan, autentikasi, infrastruktur penting), keluaran AI bukanlah pengganti peninjauan dan persetujuan oleh insinyur yang berkualifikasi. AI adalah asisten; Penandatangannya adalah insinyurnya.
Apa yang Sebenarnya Dilakukan Asisten Coding?
Sebagian besar asisten pengkodean dibuat berdasarkan model bahasa besar (LLM—AI yang dilatih pada teks dan kode dalam jumlah besar yang memprediksi “potongan” berikutnya yang paling mungkin terjadi). Model tidak "memahami" kode seperti manusia; Ini menghasilkan kelanjutan yang paling mungkin dari konteks yang Anda berikan, berdasarkan pola yang dipelajari dari sejumlah besar contoh. Mekanisme yang tampaknya sederhana ini memberikan hasil yang sangat baik dalam praktiknya — karena sebagian besar perangkat lunak terdiri dari pola berulang: permintaan HTTP, perulangan, pemeriksaan nol, pola pengujian.
Ada tiga istilah yang penting di sini. Token adalah unit terkecil yang diproses model dengan membagi teks; Ini kira-kira terdiri dari beberapa huruf atau bagian dari sebuah kata. Jendela konteks adalah jumlah token yang dapat "dilihat" oleh model sekaligus; Kode, pesan kesalahan, dan instruksi Anda harus sesuai dengan jendela ini. Prompt adalah semua instruksi dan konteks yang Anda berikan kepada model. Kualitas keluaran yang Anda peroleh bergantung langsung pada dua hal ini: semakin baik konteks dan semakin jelas instruksi yang Anda berikan kepada model, semakin baik pula hasil yang akan Anda peroleh. Masukan yang buruk menghasilkan keluaran yang buruk, meskipun model tersebut cerdas — aturan klasik perangkat lunak “sampah masuk, sampah keluar” juga berlaku untuk AI.
Peta Kekuatan dan Kelemahan
Untuk mengarahkan AI ke pekerjaan yang tepat, kita perlu mengetahui di mana ia unggul dan di mana ia tersandung. Menghafal peta ini akan membuat Anda bertanya-tanya di setiap misi berikutnya, "Haruskah saya mengalihdayakan pekerjaan ini ke AI atau melakukannya sendiri?" Ini memungkinkan Anda menjawab pertanyaan dalam hitungan detik.
Kelebihannya adalah: Menghasilkan kode boilerplate, menerjemahkan dari satu bahasa ke bahasa lain, menulis ekspresi reguler (regex), mendeskripsikan suatu fungsi, membuat kerangka pengujian, menafsirkan pesan kesalahan, menyusun dokumentasi, menyarankan nama variabel/fungsi, dan pemfaktoran ulang kecil (meningkatkan struktur kode tanpa mengubah perilakunya).
Kelemahan: Mengetahui aturan bisnis spesifik perusahaan Anda, mengingat seluruh basis kode Anda, benar-benar menjalankan dan memverifikasi kode, mengetahui versi perpustakaan terbaru secara pasti, mendeteksi kerentanan keamanan dengan jaminan seratus persen. Hal yang paling berbahaya adalah halusinasi: model menciptakan fungsi, perpustakaan, atau API yang tidak ada (antarmuka yang memungkinkan pertukaran data antar aplikasi) dalam bahasa yang sangat meyakinkan. Risiko ini sebenarnya dapat dimanfaatkan untuk keuntungan Anda, karena kodenya, tidak seperti teks biasa, dapat diuji untuk melihat apakah kode tersebut “berfungsi” — namun jangan lewatkan langkah verifikasi.
Jenis misi
Peran AI
peran pria
Menghasilkan boilerplate/kerangka
menghasilkan rancangan
Menyesuaikan, ulasan
Deskripsi kode
Memberikan ringkasan singkat
Memverifikasi bagian penting dalam kode
tes menulis
Kasus menunjukkan
Mengonfirmasi cakupan dan akurasi
Logika yang kritis terhadap keamanan
ide yang bermanfaat
Keputusan dan tanggung jawab sepenuhnya ada pada manusia.
Penggunaan API/perpustakaan
Menghasilkan sampel
Memverifikasi keberadaan dan versi
keputusan arsitektur
Macam pilihan
Memilih dan mempertahankan dengan mengetahui konteksnya
Langkah demi Langkah: Siklus Kerja Dasar
- Perjelas tugasnya. Jika Anda tidak dapat menulis apa yang Anda inginkan dalam satu kalimat, modelnya juga tidak bisa. Semakin awal ketidakpastian meresap ke dalam input, semakin besar pertumbuhan outputnya.
- Berikan konteks. Tambahkan kode yang relevan, pesan kesalahan lengkap, versi bahasa/kerangka kerja, dan batasan ke prompt. Jangan katakan "perbaiki ini", katakan "Python 3.11, FastAPI 0.110; fungsi ini memberikan kesalahan 500, meledak ketika isi permintaan kosong".
- Peran dan format pengenaan. Kerangka kerja seperti "Anda adalah pengembang Go senior; cukup berikan kode dan alasan dua kalimat" akan memfokuskan keluaran.
- Minta yang kecil. Bagi menjadi beberapa langkah, bukan satu permintaan besar; Verifikasi setiap langkah secara terpisah. Perubahan besar berisiko karena sulit diverifikasi dan rentan menyembunyikan kesalahan.
- Memeriksa. Jalankan, uji, baca secara visual. Kode AI yang belum diverifikasi adalah "sketsa", bukan "solusi". Ini adalah langkah yang paling tidak bisa dinegosiasikan dalam siklus ini.
Tiga Kasus Mini
Kasus 1 — Penghematan waktu memang nyata namun tidak terlalu besar. Saat tim membuat kerangka titik akhir CRUD (Buat-Baca-Perbarui-Hapus) baru dengan AI, waktu draf pertama berkurang dari sekitar 40 menit menjadi 8 menit. Namun, setelah ditinjau dan diuji, total waktunya adalah 25 menit; jadi keuntungan sebenarnya adalah dari 40 menjadi 25, sekitar 38%. Angka ini, yang diukur dibandingkan ekspektasi “kita telah mempercepat 10 kali lipat”, merupakan pencapaian yang berkelanjutan.
Kasus 2 — Halusinasi itu mahal. Pengembang menggunakan panggilan request.get_json() yang disarankan AI tanpa validasi; Tidak ada metode seperti itu (tepatnya respon.json()). 20 menit hilang ketika kode tidak dapat dikompilasi. Pertanyaan sederhana "apakah metode ini benar-benar ada?" verifikasi akan mengatur ulang kerugian.
Kasus 3 — Konteks yang baik menggandakan keluaran. Untuk bug yang sama, satu pengembang hanya menulis "Saya mendapatkan kesalahan" dan pengembang lainnya menambahkan pelacakan tumpukan lengkap, versi, dan sampel masukan. Yang terakhir mendapatkan solusi yang tepat pada percobaan pertama; Yang pertama menghabiskan tiga putaran. Perbedaannya bukan pada modelnya, tetapi pada inputnya.
Empat Templat yang Dapat Disalin
Perintah startup yang kuat dan bertujuan umum:
Peran: Anda adalah pengembang {{bahasa}} berpengalaman. Tugas: {{what_want}}Konteks:- Kerangka/versi: {{framework_and_version}}- Batasan: {{performa, gaya, aturan ketergantungan}}Aturan:- Jangan gunakan pustaka/fungsi yang tidak ada; Jika Anda tidak yakin, tandai sebagai "verifikasi". - Pertama berikan rencana singkat, lalu kode, lalu 2 kalimat pembenaran. - Menghasilkan kode yang dapat diuji dan berfungsi.
Untuk menyaring ketidakpastian kembali ke dalam model:
Sebelum menyelesaikan tugas di bawah ini, daftarkan MINIMAL 3 poin yang menurut Anda hilang atau tidak jelas sebagai pertanyaan. JANGAN menulis kode sebelum saya membalas. Tugas: {{tugas}}
Untuk memeriksa sendiri hasilnya:
Anda telah menghasilkan kode berikut. Sekarang ubah peran Anda dan kritik kode ini: - Sebutkan 3 kasus (kasus tepi) yang mungkin tidak berfungsi. - Apakah ada API/fungsi yang dapat Anda buat? Tandai.- Berikan versi yang diperbaiki.Kode:{{kode}}
Untuk memecah keputusan menjadi beberapa pilihan:
Sarankan 2-3 pendekatan solusi untuk {{problem}}. Untuk masing-masing: deskripsi singkat, plus/minus, kapan harus memilih. Berikan dalam bentuk tabel. JANGAN memilihkan untukku; cukup perjelas pilihannya.
Perintah lemah / Perintah kuat
Lemah: "Perbaiki bug pada kode ini." (Kesalahan yang mana? Bahasa yang mana? Perilaku apa yang diharapkan?)
Kuat: "Python 3.11 / FastAPI 0.110. Titik akhir berikut mengembalikan 500 dengan KeyError ketika isi permintaan kosong; Saya ingin mengembalikan 400 dan pesan bermakna pada isi kosong. Pertama jelaskan alasannya, lalu berikan fungsi yang dikoreksi, lalu tulis tes untuk skenario ini. [kode]"
Versi yang kuat; Ini memberikan bahasa, versi, kesalahan aktual, perilaku yang diharapkan, dan format keluaran. Model tidak lagi harus memprediksi.
Kesalahan umum
- Percaya tanpa verifikasi. Kesalahan paling umum dan paling mahal. Jangan katakan "terselesaikan" sampai kode dikompilasi dan diuji.
- Mengajukan pertanyaan tanpa konteks. Jawaban tanpa versi, teks kesalahan, dan batasan bersifat umum dan sering kali salah.
- Satu permintaan besar. Tidak dapat meminta dan meninjau produksi 300 baris sekaligus membuat kesalahan tidak terlihat.
- Salah mengira rasa percaya diri sang model sebagai bukti. AI dengan yakin dapat mengatakan sesuatu yang salah; Nada bukan merupakan indikator keakuratan.
- Menempelkan rahasia perusahaan secara acak. Kunci pribadi, data pelanggan, atau kode sumber pribadi tidak boleh dimasukkan ke alat yang tidak disetujui (kita akan mempelajari topik ini di unit 10).
Tip: Perlakukan setiap keluaran AI sebagai “ini adalah draf.” Kebiasaan mental tunggal ini menghilangkan sebagian besar risiko yang akan Anda lihat di seluruh modul.
Singkatnya
Asisten pengkodean adalah model bahasa yang memprediksi fragmen berikutnya yang paling mungkin terjadi; Ia tidak memahami kodenya, ia menghasilkan pola. Itu sebabnya dia kuat dalam pekerjaan yang berulang dan diformulasikan; Ini harus digunakan dengan hati-hati untuk pekerjaan yang memerlukan verifikasi yang spesifik untuk konteks Anda. Risiko terbesar adalah halusinasi, dan satu-satunya penawarnya adalah verifikasi. Disiplin yang akan kita ikuti di seluruh modul jelas: memperjelas tugas, memberikan konteks, meminta hal-hal kecil, memvalidasi setiap hasil.
Tugas aplikasi
Tuliskan tiga tugas perangkat lunak yang Anda lakukan dalam seminggu terakhir (misalnya perbaikan bug, pengujian, pembaruan README). Lihatlah “peta kekuatan dan kelemahan” untuk masing-masing dan jelaskan dalam satu kalimat apa peran Anda dan AI jika Anda meminta AI melakukan hal ini. Kemudian berikan salah satu tugas ini kepada AI dengan templat “start prompt” di atas dan jalankan serta verifikasi hasilnya; Catat berapa menit yang Anda hemat dan berapa banyak kesalahan yang harus Anda perbaiki.
daftar periksa
- [ ] Saya menyadari bahwa LLM menghasilkan pola, bukan kode "memahami".
- [ ] Saya dapat menjelaskan konsep token, jendela konteks, dan prompt dalam satu kalimat.
- [ ] Saya dapat membedakan jenis tugas yang AI-nya kuat dan lemah.
- [ ] Saya tahu apa itu halusinasi dan satu-satunya penawarnya adalah verifikasi.
- [ ] Saya mengadaptasi siklus "usulkan, produksi, verifikasi" ke tugas saya sendiri.
- [ ] Saya dapat menunjukkan perbedaan antara perintah kuat dan perintah lemah dalam contoh nyata.