Mencoba OpenCode

Mencoba OpenCode
Photo by Algernai Hayes / Unsplash

Mengutip dari halaman resminya opencode adalah"Open Source AI Coding Agent" dan ini adalah hal yang "baru" dalam pendekatan menulis kode dengan bantuan AI, setidaknya untuk saya pribadi.

Awal Mula

Sebelum memulai menulis kode dengan bantuan AI, di periode-periode awal saya menggunakan AI hanyalah sebatas pengganti googling dan stackoverflow. Saya bertanya, mendapat jawaban, salin dan tempel di editor dan coba dijalankan. Hal ini tidak jauh berbeda dengan membaca blog dan stackoverflow sebenarnya.

Autocomplete

Periode selanjutnya mencoba memasang plugin ai di editor, umumnya plugin ini membantu dalam melengkapi kode, cenderung acak tapi cukup membantu apalagi saat kita menulis sebuah nama fungsi yang cukup eksplisit tanpa banyak penjelasan AI di sini sudah sangat membantu.

Agentic Ai GUI

Tahap selanjutnya mencoba perkembangan dari autocomplete menjadi agentic yang cukup mumpuni, menulis spec dalam text, dan biarkan plugin editor ini yang membuat kode.

Github Issue

Kebetulan saya penggunak github copilot, dan ada satu kelebihan jika kita menggunakan github copilot, kita bisa menulis spec dalam Github issue dan saat kita menyerahkan issue ini kepada copilot, sang AI akan membuatkan kita satu branch feature implementasi spec tersebut.

CLI

Saat ini fungsi editor saya hanya untuk membaca atau review kode hasil AI, karena dengan bermunculannya agentic AI dalam bentuk cli, saya hanya perlu menggunakan emulator terminal untuk membuat satu fitur bahkan satu aplikasi., beberapa yang saya coba

GEMINI-CLI (free)

Saat pertama kali muncul saya mencoba alat ini, yang aya rasakan adalah selayaknya bermain gacha, kadang kali sangat puas, kadang pula malah merusak yang ada, dan semakin lama dipakai malah semakin ngaco, bukan perkara AI nya kadang-kadang, tapi alat nya sendiri si Gemini-CLI nya tidak nyaman digunakan.

Copilot-CLI

Karena saya pengguna github copilot tapi entah karena github terlampau sudah sibuk di githubnnya, kelengkapan fitur-fitur github cli ini tidak selengkap kompetitor, nyaman digunakan, sangat jauh lebih baik dengan gemini cli tapi berasa kurang optimal saja.

OpenCode

Akhirnya tiba di OpenCode, salah satu kelebihan alat ini karena dia selain memberika free model tapi juga bisa tersambung dengan beragam provider AI salah satunya github copilot jadi saya bisa menggunakan model-model yang sudah diaktifkan di copilot, tapi dengan fitur2 yang mumpuni. Kali ini saya mencoba menggunakan OpenCode dan OhMyOpenCode, sejauh ini sangat puas, saya hampir tidak membuka editor kecuali di akhir sesi ketika hendak melakukan review. Jadi berikut adalah hal yang saya lakukan di open code.

  1. Saya mempersiapkan "rules.md" ini sebenarnya berkas yang saya gunakan di beragam agentic ai, kebetulan saya hendak mencoba bikin aplikasi FastApi maka dalam berkas ini saya sertakan beragam aturan bagaimana menulis kode
  2. Plan Mode: Dalam mode ini opencode tidak bisa melakukan apapun selain membaca danmembuat rencana, enaknya di sini dia cukup respect dengan berkas aturan sebelumnya dan membuat rencana sesuai aturan yang ditulis.
  3. Build Mode: Ini mode yang digunakan untuk mulai bekerja, dan saya cukup puas sejauh ini, karena dalam berkas pertama saya meminta untuk selalu menggunakan typehint dan test, setiap perubahan dia pasti melakukan dua hal itu, dan membantu juga dalam hal perubahan apa yang dilakukan sehingga meminimalisir penggunaan editor, bisa terlihat di gambar di bawah ini:

Ahir kata

Senior saya ketika saya pertama kali bekerja pernah bilang seperti ini

Menulis kode itu adalah hal terakhir yang kita lakukan, 80% waktu habis adalah berpikir bagaiaman mengerjakan fiturnya, setelah jelas 20%nya baru digunakan menulis kode

Sepertinya hal di atas perlu diubah karena 20% nya saya rasa bukan lagi digunakan untuk menulis tapi review.

Read more