13 poin oleh GN⁺ 2024-04-11 | 1 komentar | Bagikan ke WhatsApp
  • Alat baris perintah yang memungkinkan pair programming dengan GPT-3.5/GPT-4 sambil mengedit kode yang tersimpan di repositori git lokal
  • aider mengedit kode di file sumber lokal secara langsung dan melakukan git commit atas perubahan dengan pesan commit yang sesuai
  • Dapat digunakan untuk memulai proyek baru atau bekerja di repositori git yang sudah ada
  • Keunikan aider adalah dapat digunakan untuk meminta perubahan pada codebase besar yang sudah ada

Fitur utama

  • Anda dapat memulai aider dari command line bersama sekumpulan file sumber yang ingin diedit lalu mengobrol dengan GPT tentang kode tersebut. Melalui aider, GPT dapat melihat dan mengedit isi file-file itu
  • GPT dapat menulis dan mengedit kode dalam sebagian besar bahasa populer seperti python, javascript, typescript, php, html, css, dan lainnya
  • Anda dapat meminta fitur baru, perubahan, peningkatan, atau perbaikan bug pada kode. Anda juga dapat meminta test case baru, dokumentasi yang diperbarui, atau refactoring kode
  • aider menerapkan perbaikan yang disarankan GPT langsung ke file sumber
  • aider otomatis melakukan commit setiap set perubahan ke repositori git lokal dengan pesan commit yang berisi penjelasan. Auto-commit yang sering ini berfungsi sebagai jaring pengaman. Anda dapat dengan mudah membatalkan perubahan atau mengelola rangkaian perubahan yang lebih panjang menggunakan workflow git standar
  • Beberapa file sumber dapat digunakan bersama aider secara bersamaan, sehingga GPT dapat mengoordinasikan perubahan kode di semua file dalam satu set perubahan/commit
  • aider dapat memberikan peta seluruh repositori git kepada GPT-4, membantu memahami dan memodifikasi codebase berskala besar
  • Saat mengobrol dengan aider, Anda juga dapat mengedit file secara manual menggunakan editor. aider mendeteksi pengeditan di luar alur ini dan menjaga GPT tetap sinkron dengan versi terbaru file. Dengan begitu, Anda bisa bolak-balik antara chat aider dan editor sambil berkolaborasi dengan GPT untuk menulis kode
  • Jika menggunakan gpt-4 langsung melalui openai, Anda dapat menambahkan file gambar ke konteks, dan ini akan otomatis beralih ke model gpt-4-vision-preview

Perintah di dalam chat

  • aider mendukung perintah yang diawali dengan / di dalam chat. Beberapa perintah yang paling berguna:
    • /add : menambahkan file yang cocok ke sesi chat
    • /drop : menghapus file yang cocok dari sesi chat
    • /undo: membatalkan git commit terakhir jika dilakukan oleh aider
    • /diff: menampilkan diff dari commit aider terakhir
    • /run : menjalankan perintah shell dan, jika diinginkan, menambahkan outputnya ke chat
    • /voice: berbicara kepada aider untuk meminta perubahan kode dengan suara
    • /help: menampilkan bantuan untuk semua perintah

Tips

  • Pikirkan file mana yang perlu diedit untuk membuat perubahan, lalu tambahkan ke chat. aider memang punya kemampuan tertentu untuk menebak file mana yang perlu diedit GPT, tetapi cara paling efektif adalah menambahkan sendiri file yang diperlukan ke chat secara eksplisit
  • Perubahan besar sebaiknya dilakukan sebagai rangkaian langkah yang dipikirkan matang untuk merencanakan pendekatan dan desain keseluruhan. Arahkan perubahan seperti saat Anda membimbing developer junior. Minta refactoring persiapan terlebih dahulu, lalu minta perubahan sebenarnya. Luangkan waktu untuk meminta peningkatan kualitas/struktur kode
  • Jika GPT tidak memberikan respons yang berguna, Anda dapat menghentikannya dengan aman menggunakan Control-C. Respons parsial akan tetap ada di percakapan, sehingga bisa dirujuk saat Anda membalas GPT dengan informasi atau arahan tambahan
  • Anda dapat memakai perintah /run untuk menjalankan test, linter, dan sebagainya, lalu menampilkan outputnya ke GPT guna membantu menyelesaikan masalah
  • Gunakan Meta-ENTER (di beberapa lingkungan Esc+ENTER) untuk memasukkan pesan chat multi-baris. Atau mulai pesan multi-baris dengan hanya mengetik { di baris pertama dan akhiri dengan hanya mengetik } di baris terakhir
  • Jika terjadi error pada kode, gunakan /run atau tempelkan output error ke chat untuk dibagikan ke GPT. Dengan begitu GPT dapat menemukan dan memperbaiki bug
  • GPT mengenal banyak alat dan library standar, tetapi bisa salah memahami sebagian detail API dan argumen fungsi. Anda dapat menempelkan cuplikan dokumentasi ke chat untuk mengatasi masalah ini
  • GPT hanya dapat melihat isi file yang secara khusus telah "ditambahkan ke chat". aider juga mengirimkan peta seluruh repositori git ke GPT-4. Karena itu, GPT dapat meminta untuk melihat file tambahan jika menilai itu diperlukan untuk memenuhi permintaan Anda.

Pendapat GN⁺

  • Untuk proyek berskala besar, memanfaatkan aider tampaknya akan memudahkan penerapan perubahan yang konsisten di seluruh codebase. Terutama jika dipadukan dengan kemampuan GPT-4, hasilnya tampak akan lebih kuat
  • Namun, alih-alih menerima begitu saja perubahan yang disarankan GPT, sepertinya tetap diperlukan proses review dan pengujian langsung oleh developer. Model GPT masih belum sempurna, sehingga kemungkinan munculnya bug tetap ada
  • aider tampaknya juga bermanfaat bukan hanya untuk kode, tetapi juga untuk dokumentasi dan penulisan test case. Dengan memanfaatkan kemampuan pemahaman bahasa alami GPT, diharapkan dokumentasi dan kode pengujian berkualitas lebih tinggi dapat dibuat dengan cepat
  • Karena berbasis CLI, aksesibilitasnya baik, tetapi jika dapat terintegrasi lebih erat dengan lingkungan pengembangan melalui plugin editor dan sebagainya, hal itu tampaknya akan sangat membantu meningkatkan produktivitas developer
  • Keunggulan pembeda dibanding alat AI pair programming serupa seperti GitHub Copilot tampaknya ada pada pemanfaatan GPT-4 dan workflow berbasis git. Menarik untuk membandingkan kelebihan dan kekurangannya dengan alat yang sudah ada

1 komentar

 
GN⁺ 2024-04-11
Opini Hacker News

Berikut ringkasan komentar-komentar Hacker News:

  • Saat menggunakan alat AI, penulisan prompt dan peninjauan hasil bisa memakan banyak waktu sehingga dapat menjadi kurang efisien dibanding mengerjakan langsung. Saat mengeksplorasi solusi baru, tampaknya juga ada keterbatasan dari sisi akurasi.
  • Ada proyek berbasis terminal bernama Plandex dengan fungsi yang mirip Aider. Proyek ini menggunakan CLI bergaya Git dan berfokus pada tugas kompleks yang mencakup banyak file.
  • Dibagikan pengalaman menggunakan Claude untuk mengerjakan desain situs web responsif. Model ini mampu mempertahankan konteks panjang dengan baik dan dapat menangani codebase HTML/CSS/JS campuran dengan baik.
  • Dibagikan kasus saat menggunakan alat AI pada aplikasi Go, di mana alat tersebut tidak benar-benar memahami aturan scope variabel sehingga menimbulkan error. Ini memunculkan pertanyaan tentang keandalannya.
  • Disayangkan kurangnya integrasi dengan IDE yang sudah ada seperti JetBrains. Juga dibagikan pengalaman menggunakan alat ini bersama alat yang sudah ada seperti GitHub Copilot.
  • Ada ketertarikan pada hasil benchmark performa LLM milik Aider. Terlihat bahwa model GPT-4 Turbo with Vision memiliki performa yang lebih buruk dibanding model sebelumnya.
  • Kualitas hasil dari alat AI masih belum sepenuhnya sempurna sehingga ada keterbatasan dalam penggunaan nyata. Error-error halus masih tetap ada.