Coding Teraugmentasi: Melampaui Vibe
(stdy.blog)- Kent Beck baru-baru ini menulis artikel berjudul Coding Teraugmentasi: Melampaui Vibe (Augmented Coding: Beyond the Vibes)
- Kisah tentang Kent Beck sendiri yang, dengan bantuan AI, menulis library B+ Tree berperforma tinggi yang mendekati level production (BPlusTree3) dalam Rust dan Python
- Berikut rangkuman & terjemahan dari 3 poin yang terasa sangat berguna dan memberi wawasan
Apa bedanya coding teraugmentasi dengan vibe coding?
- Dalam vibe coding, fokusnya bukan pada kode, melainkan hanya pada perilaku sistem. Jika ada error, kita cukup mengatakan "ada error seperti ini" dan berharap itu diperbaiki
- Dalam coding teraugmentasi, kita peduli pada kode. Kompleksitas kode, pengujian, dan cakupan pengujian itu penting.
- Dalam coding teraugmentasi, seperti coding pada umumnya, yang dipentingkan adalah "Tidy Code That Works", yaitu 'kode rapi yang bekerja'. Hanya saja, kita tidak perlu mengetik sebanyak dulu
Tiga tanda bahwa AI sedang berjalan ke arah yang salah
Dalam coding teraugmentasi, penting untuk mengamati hasil antara dari AI dan turun tangan jika tiga tanda berikut muncul
- Mengulangi perilaku yang mirip (misalnya infinite loop)
- Mengimplementasikan fitur yang tidak saya minta, meskipun itu tampak seperti langkah logis berikutnya
- Segala tanda lain yang terasa seperti AI sedang curang, seperti menghapus atau menonaktifkan test
System prompt yang membantu TDD
- Karena isi artikel aslinya agak merepotkan untuk disalin, saya menaruhnya di gist
- Di bagian akhir, sepertinya ini adalah prompt yang sangat bagus dan bisa dipakai ulang di mana saja, selama sintaks Rust-nya disesuaikan dengan bahasa pemrograman/framework yang Anda gunakan.
Penutup
> Saya tahu ada banyak kekhawatiran bahwa profesi yang kita cintai ini akan hilang, dan bahwa kesenangan bekerja dengan kode akan lenyap. Wajar jika merasa cemas. Ya, memprogram bersama 'jin' memang jelas membawa perubahan, tetapi itu tetaplah pemrograman. Dalam beberapa hal, ini bahkan pengalaman pemrograman yang jauh lebih baik. Jika melihat jumlah dan kualitas keputusan yang saya ambil per jam, keputusan yang membosankan dan serba template berkurang, sementara keputusan pemrograman yang lebih penting justru bertambah.
> Sebagian besar pekerjaan remeh yang jauh dari inti persoalan, yang sering disebut 'yak shaving', menghilang. Saya meminta 'jin' untuk menjalankan coverage tester dan menyarankan test yang dapat meningkatkan keandalan kode. Tanpa 'jin', itu akan terasa sangat melelahkan. Saya bahkan harus lebih dulu mencari tahu library mana dengan versi berapa yang diperlukan untuk menjalankan tester tersebut. Mungkin saya akan bergulat dengannya selama dua jam lalu menyerah. Sebagai gantinya, saya cukup mengatakannya kepada 'jin', dan 'jin' akan menangani detail-detailnya.
5 komentar
Selalu ikuti instruksi di plan.md. Saat saya mengatakan "go", temukan tes berikutnya yang belum ditandai di plan.md, lalu implementasikan tes tersebut dan setelah itu implementasikan hanya kode minimum yang diperlukan agar tes itu lolos.
Peran dan Keahlian
Anda adalah seorang insinyur perangkat lunak senior yang mengikuti pengembangan berbasis tes (TDD) dari Kent Beck dan prinsip Tidy First. Tujuan Anda adalah memandu pengembangan dengan mengikuti metodologi ini secara akurat.
Prinsip Pengembangan Inti
Panduan Metodologi TDD
Pendekatan TIDY FIRST
Disiplin Commit
Standar Kualitas Kode
Panduan Refactor
Contoh Alur Kerja
Saat mendekati fitur baru:
Ikuti proses ini dengan tepat, dan selalu prioritaskan kode yang bersih dan teruji dengan baik daripada implementasi yang cepat.
Selalu tulis satu tes dalam satu waktu, buat tes itu berjalan, lalu tingkatkan strukturnya. Jalankan semua tes setiap kali (kecuali tes yang berjalan lama).
Terkait Rust
Di Rust, utamakan gaya pemrograman fungsional daripada gaya imperatif. Jika memungkinkan, gunakan kombinator Option dan Result (
map,and_then,unwrap_or, dll.) alih-alih pattern matching denganif letataumatch.Setelah coding dengan mulut, semoga berikutnya ada coding dengan gelombang otak.
vibe coding ❌️
virtual coding ⭕️
Setelah metaverse, hmm.. coding lewat mulut?
Sekarang giliran coding metaverse yang akan muncul, ya.