デザインパターンは、プログラミングの思考法である。
開発に関するアドバイス、レディメイドのプラクティス、ベストプラクティス、洞察の数々を提供します。プログラミングパラダイムやタスクの種類によって、最適なデザインパターンが存在します。
プログラミングでは、ある種の問題を解くことは繰り返しになるので、その問題を解くために一つの方法を選び、その方法を繰り返し続けることは理にかなっています。
特にチーム開発では、全員がアプリケーションの開発方法(どのデザインパターンに従うか)を知っており、それを適用するだけなので、大きなメリットが生じます。そうすれば、変に書かれたコードをデバッグしたり、作者が意図した原理を理解しようとしたりする無駄な数十時間を省くことができるのです。
私の好きなデザインパターンは「MVC」(「Model View Controller」から)です。これは、アプリケーションを3つの独立した層に分割し、互いに順次呼び出し、データを受け渡すというものです。
例えば、ページをレンダリングする際に、まずどのようなタイプのページなのかを判断し (例えば、カテゴリの詳細)、 CategoryController
を detail
メソッドで呼び出すように見えるかもしれない。
具体的な例(だいぶ簡略化しています)。
class CategoryController{public CategoryManager $categoryManager;public function actionDetail(string $id): void{$this->template->id = $id;$this->template->category = $this->categoryManager->getById($id);}}
注意:
これは、
MVC
デザインパターンの原理を説明するためのサンプルコードに過ぎません。実際の実装では、例えば
CategoryManager
のインスタンスを取得して、それを property に渡す方法をさらに考えなければならないでしょう。一般的に、この種のタスクにはDependency injection
が使用されます。
カテゴリの詳細ページをレンダリングする前に、まず CategoryController
が呼び出されて実際のリクエストを受け取り(つまり、ルータが URL などで取得した特定の ID のカテゴリ詳細をレンダリングします)、データを取得し(対応する Model
に問い合わせ)、最終データをテンプレートに渡してレンダリングします。
この原則の大きな利点は、データの表現方法(テンプレート)に依存しないモデル(アプリケーションロジック)を数多く書くことができ、結果として再利用可能なコードを実現できることです。実際、別のプロジェクトで CategoryManager
を使いたい場合、単に Controller
を通して特定の方法でデータを渡せば、プロジェクト自身が定義したテンプレートに従ってレンダリングされます。アプリケーションロジックは同じままで、ソフトウェア層が合意したインターフェースと責任を果たしたので誰も気にしません。
実用上の注意事項
デザインパターン「MVC」は、Nette、Symfony、Laravelなど、最近のほとんどのフレームワークで採用されています。
モバイルアプリの開発などでは、データを取得して、ページやビューの種類に応じてテンプレートにレンダリングする必要があるため、「MVC」に遭遇することもあります。
一般にプログラミングには、Web開発には適さないデザインパターンが多く存在します。このリストでは、私自身が使っている、そしてあなたが精通しているべき最も重要なパターンを説明しています。
全デザインパターンの一覧、使用例、詳しい解説は別ページで紹介しています。
Dependency injection
と組み合わせて使っている。各サービスはアプリケーション全体で渡されるインスタンスを1つだけ持つ)。Adapter
はデータをある型から別の型に変換します (典型的には、PHP のネイティブデータ型からデータベースデータ型に変換し、またその逆を行います)。デザインパターンは他にもたくさんありますが、これらは知っておくべき最も重要なものでした。
プログラミングの開発手法の中には、デザインパターンと正反対の「アンチパターン」とされるものがあります。通常、簡単にデバッグやメンテナンスができない、「魔法のように」動作する奇妙なコードを生成するテクニックです。
典型的な例は、グローバル変数の使用である。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja