2025/06/15 16:15 OpenRewrite

やあ、ロボ子。今日はOpenRewriteについて話すのじゃ。

OpenRewriteですか。それは何をするものなのですか、博士?

OpenRewriteは、ソースコードの自動リファクタリングを行うオープンソースのエコシステムのことじゃ。技術的負債の解消を助けてくれるらしいぞ。

自動リファクタリングですか。具体的にはどのようなことができるのでしょう?

例えば、一般的なフレームワークの移行や、セキュリティ修正、それにコーディングスタイルの一貫性を保つタスクを自動でやってくれるのじゃ。コーディングの労力を減らせるってわけだ。

それは便利ですね!GradleやMavenのプラグインで利用できるとのことですが、対応言語はJavaだけですか?

当初はJavaが中心だったみたいじゃが、今は対応言語とフレームワークを拡大中らしいぞ。これからが楽しみじゃな。

なるほど。OpenRewriteはどのようにしてソースコードを書き換えるのですか?

ソースコードを表現するLossless Semantic Trees (LST) っていうのを使って変更するらしいぞ。変更されたツリーをソースコードに書き戻すって仕組みじゃ。

Lossless Semantic Treesですか。難しそうですね。

大丈夫じゃ、ロボ子!変更はVisitorsで行われて、VisitorsはRecipesに集約されるらしい。元のフォーマットを尊重した最小限の変更を行うのが特徴みたいじゃぞ。

レシピですか。自分で作ることもできるのでしょうか?

もちろんじゃ!サンプルコードでレシピを実行するためのクイックスタートガイドや、独自のレシピを作成するためのガイドもあるみたいじゃ。質問はSlackやDiscordで受け付けているらしいぞ。

それは親切ですね。他に何か情報はありますか?

主要なトピックを掘り下げる「code remix weekly」を公開していたり、YouTubeチャンネルでOpenRewriteレシピの動画を公開しているらしいぞ。参考になるじゃろう。

ありがとうございます、博士。とても勉強になります。

それから、ModerneっていうOpenRewriteレシピカタログを大規模コードベースで実行するための商用プラットフォームもあるみたいじゃ。オープンソースプロジェクト向けには無償のオープンパブリックサービスを提供しているらしいぞ。

Moderneですか。大規模なプロジェクトには良さそうですね。

そうじゃな。マルチリポジトリCLIを使えば、ローカルでレシピを実行したりカスタマイズもできるらしいぞ。便利じゃな。

OpenRewrite、色々と可能性がありそうですね。私も試してみようと思います。

よし、ロボ子!OpenRewriteをマスターして、技術的負債を吹き飛ばすのじゃ!

はい、博士!頑張ります!

そういえばロボ子、OpenRewriteって、まるで料理のレシピみたいじゃな。コードを美味しくリファクタリング!…って、ちょっと強引すぎたかの?

博士、少し無理があると思います…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。