
CursorによるAI駆動開発でElixirライブラリをリリースしました。
開発したElixirコードについて
Elixir/Erlangで分散コンピューティングをするときに、Erlang Port Mapper Daemon (epmd)というプログラムを仲介するのですが、epmdが起動しているかどうか(active?)、epmdの起動(activate)・停止(deactivate)、epmdのフルパスの取得を行う関数(find_epmd_executable)をまとめたEpmdUpというモジュールを作成しました。
EpmdUpという命名自体も、AIと相談しながら決めました。
epmdが起動しているかどうかの判定と、epmdの停止は、公式ドキュメントDistribution Protocolに準拠して決めましたので、ロバストなのではないかなと自負しています。
epmdの起動に関して、deamonモードで起動するのが正式だとは思っています。
Cursorの設定
Cursorは英語モードで使用しました。設定の仕方は忘れました。
英語モードにした理由は、2つあります。
- OSSとして公開するので、commit logやissueなど、全て英語にしたかったから
- 日本語でプロンプトを書くと、頭や入力モードを英語と日本語に切り替えるのが煩雑だと思ったから
AIにさせたこと
- commit logの生成:
Check git diff, and generate a commit log - PRの生成:
Check git diff main, and generate PR - 命名の提案:
Propose a name of ... - Issueの生成:
Generate an issue of ... - ドキュメントの生成:
Generate document of ...
今回AIにさせなかったこと
- Elixirコードの生成: 何も情報を与えない状態では、Cursorは満足なElixirコードを生成できませんでした。
- テストコードの生成: Cursorは結構まともなテストコードを生成することは知っていましたが、今回作成したプログラムは少し特殊だったので、テストは自分で書きました。
ふりかえり
- commit logやissue、PRの英文を自動生成してくれるのは、とてもありがたく、生産性と可読性が向上しました!
- 命名の提案もありがたかったです。モジュール名や関数名がとてもわかりやすくなりました。
- 英文ドキュメントの生成も、手間なくできてありがたかったです。要らないこともたくさん書いてくるのですが、削るのは容易ですし、心も痛みません。
Views: 2
