This page is in Japanese version. The English version is in preparation.

記述形式

About this library

パターンとパターンクラスター

本ライブラリーでは、関連深いいくつかのパターンをまとめた「パターンクラスター」というくくりを設けています。パターンクラスターという命名は本ライブラリー独自のものですが、同様のくくりはアレグザンダーのパターン・ランゲージにも存在します。

パターンクラスターには複数のパターンが含まれます。ひとつのパターンが複数のパターンクラスターに含まれてもかまいません。パターンクラスターに含まれるパターンは一緒に使われることもありますが、そうでない場合もあります。互いに相手の代替案である場合もありますし、似通った文脈で同時に検討されがちなパターンいくつかをクラスターにまとめている場合もあります。

パターンの記述形式

本ライブラリーでのパターンの記述形式は以下の通りです。

  • コンテキスト Context

  • 問題 Problem

  • 配慮すべきことがら Forces

  • 解決策 Solution

  • 例 Example

  • 適用の帰結 Consequences

  • 制約 Liabilities

  • 関連するパターン Related patterns

コンテキスト Context

そのパターンが生まれる背景、事情を説明します。コンテキストは「問題」ではありません。「問題」はパターンによって多かれ少なかれ解消しますが(そのためにパターンがあるわけです)、コンテキストはパターンを適用することで変化するものではありません。コンテキストは、問題ではないが、問題を解決する上で考慮しなければならない状況です。

問題 Problem

コンテキストの中で解決したいことがらを記述します。ここで記述された問題を解決することがパターンの目的ですから、問題は、抽象的ではなく、実際に解決可能なものでなければなりません。

配慮すべきことがら Forces

これは、パターンの一般用語では「フォース」すなわち「力」と呼ばれます。フォースは問題を解くことを難しくする様々な要因です。パターンは、フォースを、なんらかの形でうまく解消しなくてはなりませんが、それに伴って留意すべき事項が新たに生じる場合もあります。フォースへの対応は「適用の帰結」に、留意すべき事項は「制約」に記述されます。

解決策 Solution

解決策は、与えられたコンテキストのもとで解決したい問題を解決するために、道具すなわち設計対象物の形がどのようであるべきかを記述します。本パターン・ライブラリーで扱われる設計対象は、fusionplace アプリケーションですから、アプリケーションのいずれかの部分の具体的な形が記述されます。

例 Example

解決策の例を記述します。例は、記述された解決策に関するサンプルデータを用いた解説である場合もあれば、解決策の適用例(ユースケース)である場合もあります。いずれも、解決策がどのようなものであるか、理解を促進するために記述されます。

適用の帰結 Consequences

解決策は、フォースをうまく解消することが期待されます。「配慮すべきことがら」で挙げたフォース各々について、解決策がどのようにそれを解消するかが「適用の帰結」で記述されます。解決策によってフォースが解消されないなら、それはフォースではなくコンテキストかもしれません。

制約 Liabilities

解決策がフォースを解消する過程で部分的な制約が生じることがあります。例えば、家財の盗難防止のためにドアに鍵を取り付けたなら、鍵を管理しなければならないという制約が付随します。制約もフォースに関連付けて記述されます。

あるパターンを適用すると、他のパターンの適用の機会が生まれます。他のパターンが次々に適用されることで、全体デザインが徐々に形をあらわしてきます。そうしたプロセスを促進するためにパターン間の関連性をここで記述します。また、類似のコンテクストにおける類似の問題に対する別のアプローチをあらわしているパターンにもここで言及します。

アレグザンダー自身は明示的にセクションを分けることなくパターンを記述しましたが、内容面では、上述したような諸要素がいずれのパターンの記述にも織り込まれています。本ライブラリでの記述形式はそうした要素を明示的に項目化したものです。こうしたパターン記述形式はいくつかあり、本ライブラリの形式は「How to write a pattern? - A rough guide for first-time pattern authors, Tim Wellhausen and Andreas Fießer」に大雑把にもとづいています。