こんにちは。エンジニアの竹野です。
先日、自作サービス「Text Weaver」と連携するWordPressプラグインを開発しました。
※「Text Weaver」とは各サイトのテキストを一元管理するためのWEBサービスです。

詳しくはこちら
機能は「ショートコードを書くと、API経由でテキストを表示する」というシンプルなものです。
しかしシンプルだからこそ、将来のメンテナンスで苦労しないための「クラス設計」にこだわりました。
この記事では、今回の制作経験から「なぜ簡単なプラグインでもクラス設計が重要なのか」を、サクッとご紹介します。
WordPressエンジニアなりたての人は「自分もスパゲッティコードを作らないように」と
エンジニア以外の人は「コードってそうなってるんだぁ」と思っていただけると幸いです。
プラグイン開発の「あるある」な悲劇
多くのプラグイン開発は、たった1つの機能、1つのPHPファイルから始まります。最初はそれで問題ありません。しかし、機能追加を繰り返すうちに、そのファイルはどんどん肥大化していきます。
「ちょっとここを直すだけ…」のつもりが、全く関係ない場所でバグを誘発。気づけば、誰も触りたくない「スパゲッティコード」が完成している…。あなたにも、そんな経験はありませんか?
私は何度もこれに陥ってきました。
今回はその失敗を活かし、クラスを使ってコードに「役割分担」をさせることにしました。(当たり前なことを堂々と言います。)
「役割分担」でコードを整理整頓しよう
私が作ったプラグインでは、コードをその「役割」ごとにファイルへ分割しました。これは、会社で人に役割を与え、分業して会社内の役割を整理するのと同じです。
実際のファイル構成はこのようになっています。
text-weaver-api/
├── text-weaver-api.php # ① 全体をまとめる「監督」
└── includes/
├── class-api.php # ② API通信の「プロ」
└── class-admin.php # ③ 管理画面の「設定担当」
まるで小さな会社のように、各クラス(ファイル)に専門の仕事を担当させることで、コードの見通しが劇的に良くなります。それぞれの役割を見ていきましょう。
① 監督 (text-weaver-api.php) 司令塔
プラグイン全体の動きを把握する司令塔です。このファイル自身は具体的な作業を行わず、各担当者(クラス)を適切なタイミングで呼び出し、WordPressに「こういう機能がありますよ」と登録することに徹します。
② APIのプロ (class-api.php) 職人
外部APIとの通信、データのキャッシュ処理、エラー対応など、面倒な通信周りのダーティワークを一手に引き受ける専門家です。将来、APIの仕様が変更になっても、修正はこのファイルだけで完結します。他のクラスは何も知る必要がありません。
③ 設定担当 (class-admin.php) 総務
管理画面の作成や、APIキーの保存といった、プラグインが快適に動くための内部環境を整える担当者です。ここでも、例えば「API接続テスト」のような専門的な作業が必要になれば、自分では行わずAPIのプロに依頼します。
まとめ:未来の自分が感謝する「最初の一手間」
「簡単なプラグインにクラス設計なんて大げさだ」と感じるかもしれません。しかし、この最初の一手間が、半年後のあなたを確実に救います。
クラス設計を取り入れるメリットは明らかです。
- 修正が怖くない
担当クラスのファイルだけを見ればOK。予期せぬ副作用のリスクが激減します。
- 機能追加が楽
新しい担当者(クラス)を追加するか、既存の担当者の仕事に追記するだけで済みます。
- コードが読みやすい
ファイル名やクラス名が、そのまま役割を示してくれるため、他の人が見てもすぐに構造を理解できます。
スパゲッティコードが生まれてしまうのは、あなたのスキル不足が原因ではありません。多くの場合、それは設計の問題です。
次のプラグイン開発から、ぜひこの「クラス設計」という名の整理整頓術を取り入れて、未来の自分を助けてあげてください!
こんにちは。エンジニアの竹野です。
先日、自作サービス「Text Weaver」と連携するWordPressプラグインを開発しました。
※「Text Weaver」とは各サイトのテキストを一元管理するためのWEBサービスです。
詳しくはこちら
機能は「ショートコードを書くと、API経由でテキストを表示する」というシンプルなものです。
しかしシンプルだからこそ、将来のメンテナンスで苦労しないための「クラス設計」にこだわりました。
この記事では、今回の制作経験から「なぜ簡単なプラグインでもクラス設計が重要なのか」を、サクッとご紹介します。
WordPressエンジニアなりたての人は「自分もスパゲッティコードを作らないように」と
エンジニア以外の人は「コードってそうなってるんだぁ」と思っていただけると幸いです。
プラグイン開発の「あるある」な悲劇
多くのプラグイン開発は、たった1つの機能、1つのPHPファイルから始まります。最初はそれで問題ありません。しかし、機能追加を繰り返すうちに、そのファイルはどんどん肥大化していきます。
「ちょっとここを直すだけ…」のつもりが、全く関係ない場所でバグを誘発。気づけば、誰も触りたくない「スパゲッティコード」が完成している…。あなたにも、そんな経験はありませんか?
私は何度もこれに陥ってきました。
今回はその失敗を活かし、クラスを使ってコードに「役割分担」をさせることにしました。(当たり前なことを堂々と言います。)
「役割分担」でコードを整理整頓しよう
私が作ったプラグインでは、コードをその「役割」ごとにファイルへ分割しました。これは、会社で人に役割を与え、分業して会社内の役割を整理するのと同じです。
実際のファイル構成はこのようになっています。
まるで小さな会社のように、各クラス(ファイル)に専門の仕事を担当させることで、コードの見通しが劇的に良くなります。それぞれの役割を見ていきましょう。
① 監督 (text-weaver-api.php) 司令塔
プラグイン全体の動きを把握する司令塔です。このファイル自身は具体的な作業を行わず、各担当者(クラス)を適切なタイミングで呼び出し、WordPressに「こういう機能がありますよ」と登録することに徹します。
② APIのプロ (class-api.php) 職人
外部APIとの通信、データのキャッシュ処理、エラー対応など、面倒な通信周りのダーティワークを一手に引き受ける専門家です。将来、APIの仕様が変更になっても、修正はこのファイルだけで完結します。他のクラスは何も知る必要がありません。
③ 設定担当 (class-admin.php) 総務
管理画面の作成や、APIキーの保存といった、プラグインが快適に動くための内部環境を整える担当者です。ここでも、例えば「API接続テスト」のような専門的な作業が必要になれば、自分では行わずAPIのプロに依頼します。
まとめ:未来の自分が感謝する「最初の一手間」
「簡単なプラグインにクラス設計なんて大げさだ」と感じるかもしれません。しかし、この最初の一手間が、半年後のあなたを確実に救います。
クラス設計を取り入れるメリットは明らかです。
担当クラスのファイルだけを見ればOK。予期せぬ副作用のリスクが激減します。
新しい担当者(クラス)を追加するか、既存の担当者の仕事に追記するだけで済みます。
ファイル名やクラス名が、そのまま役割を示してくれるため、他の人が見てもすぐに構造を理解できます。
スパゲッティコードが生まれてしまうのは、あなたのスキル不足が原因ではありません。多くの場合、それは設計の問題です。
次のプラグイン開発から、ぜひこの「クラス設計」という名の整理整頓術を取り入れて、未来の自分を助けてあげてください!