0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jules を使って PHP のレガシーコードをコーディング規約準拠に修正してみた

Posted at

ChatGPT Image 2025年6月1日 01_07_58.png

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

Approveの様子


🧠 忘れてた「除外外し」問題

そういえば… // @codingStandardsIgnoreFile を外すの忘れてた!

というわけで、急遽追加指示。

現在のプログラムではファイルの先頭に // @codingStandardsIgnoreFile が記載されております
それを削除した状態で phpcs を実行してください。

再修正が始まる Jules。

修正の様子1
修正の様子2
修正の様子3

最終結果

再度 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
}

指示の様子


🤔 それでも修正されなかった点

  • メソッド名と引数が長い → 改行されない
  • 関数呼び出しの引数 → 改行されない
  • 文字列連結の途中 → 改行されない
  • iffor の条件 → 改行されない
  • 行末のコメント → 別行に移されない

💬 結論:頼れる相棒には、まだ早い

  • 実行時間が長い
  • 意図を伝える指示がとにかく細かい
  • 特に 「行の分割」「改行」 がとにかく苦手
  • ぶっちゃけ全部自分でやった方が早いまである

📝 備考:Jules、日本語ちょっと苦手です

  • 日本語 IME を使って変換 → Enter でそのまま送信されてしまう
  • 改行も効かない
  • ※ 決して内間違えたわけじゃないんです!

日本語入力の罠


🎉 おわりに

AI によるコーディング補助、夢がありますね。が、現実はまだ手取り足取りが必要な段階。

Jules は「型」や「構文チェック」には強くても、「感覚的な可読性」や「現場の文脈理解」はまだまだ。

それでも、今後に期待したくなるポテンシャルは感じました。

次はもっと素直なコードで再挑戦してみようかな!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?