「Cursor」を使って分かったAIコーディングのコツ

「Cursor」を使って分かったAIコーディングのコツ

「Cursor」って何?な方はこちらの記事からどうぞ
https://bestmerge.co.jp/post-1543/

ChatGPT内蔵のコードエディタ「Cursor」、とても良いですね。
触っているだけで楽しくて、ついつい色んなプログラムを作ってしまいます。
そんな「Cursor」にも注意点や使い方のコツがあると感じたので、
今回はその辺りをまとめていこうと思います。
(バージョンによるところもあるかと思いますのでご承知おきください。)

作成したコードの一例から学ぶ

最近Windowsバッチについて教える機会があったもので、
久々に触るということもあり、思い出す目的でバッチを作成してみました。
その時作成した処理を見てみましょう。
(ちょっとサンプルを見たい、みたいな使い方にも便利ですね。)

Cursorに指示した内容は、
「50以下の素数を出力するWindowsバッチを作成して。」
です。
作成されたコードを見てみましょう。

@echo off
setlocal enabledelayedexpansion
for /L %%i in (2,1,50) do (
    set "prime=1"
    for /L %%j in (2,1,%%i-1) do (
        if !prime! equ 1 (
            set /a "mod=%%i %% %%j"
            if !mod! equ 0 (
                set "prime=0"
            )
        )
    )
    if !prime! equ 1 (
        echo %%i
    )
)

おぉ、それっぽいのが出来ました。
でも、実はこれでは上手く動きません。
(「%%i-1」を直して、最後に「pause」を付けたら形になりました。)

AIコーディングの注意点

他にも色々とコードを作成してみて、
「作成された処理が正しく動くとは限らない」
「無駄な処理が含まれている可能性がある」

といったことが気になりました。
後者について実際あった例としては、
不要なsetlocalがあるコードが作成されたことがありました。
これについてCursorに「バグはあるか?」と聞いても、
上手く検出されずにバグは無いと表示されたために、
結局自力で処理を追って原因を探すことになりました。

このこともあり、
その言語について詳しくなっておくこと必要があるというのも
注意点と言えると思います。

AIコーディングのコツ

「どれだけ言語に合わせた指示ができるか」
「どれだけ細かく指示ができるか」

AIコーディングはこれらが大事かと思いました。
例では思いつきで計算が必要な処理をバッチで作成しましたが、
そもそもバッチは小数の扱いすら一苦労なレベルで計算処理が苦手です。
他に理由が無いなら別の言語で作成するべきです。
また、バッチの特徴を理解していれば、
「素数を出力して」とざっくりな指示をするのではなく、
変数の使い方などを細かく指示するなどして
おかしい動きにならないよう促すことも大事です。
(例で言うと、素数チェックで偶数を確認する必要がないので、
 「奇数を確認して」など指示することで速度アップも狙えます。)

まとめ

AIコーディングは確かに便利ですが、
上手に使いこなすには自分でコーディングができるくらいには
言語の知識を付けたり処理作成のセンスを磨いたりする必要がありそうです。
まだまだエンジニアが仕事を奪われることはないのかな
なんて思ってしまいます。