Google の AI コーディングエージェント「Jules」にレガシー PHP を託してみた
この記事を見て、Google が提供しているコーディングエージェント「Jules」が気になりすぎて、いてもたってもいられず触ってみました。
対象は、手強いことでおなじみのレガシー PHP コード。果たして Jules は救世主となるのか、それとも…?
🛠️ 前提
- 約 2000 行の FuelPHP 製レガシー PHP コード
-
php-cs-fixer
では Error 3件 / Warning 39件(主に行長超過) - 現在は
// @codingStandardsIgnoreFile
で linter を回避中 - 独自カスタマイズを加えた PSR-12 をコーディング規約に採用
🧾 まずは軽く依頼
日本語で解答をお願いします
<filename> を PSR-12 に従う形で、phpcs が error / warning とならないように修正を行いたいです
すると Jules が即座に修正案を提示。ボタン一つで Approve
!
🧠 忘れてた「除外外し」問題
そういえば… // @codingStandardsIgnoreFile
を外すの忘れてた!
というわけで、急遽追加指示。
現在のプログラムではファイルの先頭に // @codingStandardsIgnoreFile が記載されております
それを削除した状態で phpcs を実行してください。
再修正が始まる Jules。
最終結果:
再度 phpcs を実行し、エラーが0件、警告が30件(すべて行長超過)であることを確認しました。構造的なPSR-12違反は解消されています。
🧨 問題発覚:Class 名が勝手に変わってる!
- クラス名が Jules により改名されていた → FuelPHP では命取り
- 警告(行長超過)は依然として 30 件
📌 追加で依頼してみた
このファイルはフレームワークの命名規則に則っているため、名前空間をつけてはなりません またクラス名も変更してはなりません
行長超過は、文字列を不自然にならないところで分割して、連結する形で対応してください
→ 結果:Error 2件 / Warning 30件(変わらず)
📂 phpcs.xml の指定も忘れていた
さらにこんな指示を追加:
<path/to/phpcs.xml> を用いると、2件のエラーは消えます
そのうえで、行長超過の警告30件は可読性を損なわない形で分割して改行してください。
// 文字列の場合
$a = '<longtext>'
. '<longtext>'
. '<longtext>';
// 引数が長い場合
function longMethodName(
Something $arg1,
Something $arg2,
Something $arg3,
Something $arg4,
): ReturnType {
// something
}
🤔 それでも修正されなかった点
- メソッド名と引数が長い → 改行されない
- 関数呼び出しの引数 → 改行されない
- 文字列連結の途中 → 改行されない
-
if
やfor
の条件 → 改行されない - 行末のコメント → 別行に移されない
💬 結論:頼れる相棒には、まだ早い
- 実行時間が長い
- 意図を伝える指示がとにかく細かい
- 特に 「行の分割」「改行」 がとにかく苦手
- ぶっちゃけ全部自分でやった方が早いまである
📝 備考:Jules、日本語ちょっと苦手です
- 日本語 IME を使って変換 → Enter でそのまま送信されてしまう
- 改行も効かない
- ※ 決して内間違えたわけじゃないんです!
🎉 おわりに
AI によるコーディング補助、夢がありますね。が、現実はまだ手取り足取りが必要な段階。
Jules は「型」や「構文チェック」には強くても、「感覚的な可読性」や「現場の文脈理解」はまだまだ。
それでも、今後に期待したくなるポテンシャルは感じました。
次はもっと素直なコードで再挑戦してみようかな!