再使用可能なコンポーネントを作成する際の最良事例
再使用可能なコンポーネントを作成する際には、以下の最良事例を使用します。
コンポーネントのパッケージ化
個々のコンポーネントは拡張機能としてパッケージ化されています。ビジネス上の決定に基づいて、コンポーネントの組み合わせはさらに拡張機能としてバンドルされます。
コンポーネントの依存
リリースごとにコンポーネントをバンドルにパッケージ化します。コンポーネントの依存はバンドル (拡張機能) の依存によって管理されます。拡張機能の依存の詳細については、 依存のセクションを参照してください。
ライセンス
ビジネスロジックに基づいて、コンポーネントは拡張機能としてパッケージ化されます。これらの拡張機能はライセンス供与されます。
編集不可能なコンポーネントの作成
編集不可能なコンポーネントを作成することをお勧めします。編集不可能なコンポーネントはアップグレードが簡単です。ただし、コンポーネントの設定は可能にします。ユーザーがその要件に合わせてコンポーネントをカスタマイズできるようにパラメータを公開します。再使用可能なコンポーネントのパラメータをユーザーに表示するかどうかを定義します。パラメータのデフォルト値を設定できます。ユーザーは内部コードを変更することでコンポーネントをカスタマイズ可能でなければなりません。
* 
コンポーネントのアップグレードでエラーが発生しないようにするため、コンポーネントの API 関数を除去したり修正したりしてはなりません。
Thing Shape を使用したコンポーネントの作成
コンポーネントを作成する際には Thing Shape を使用することをお勧めします。
できるかぎり、プロパティおよびサービスは Thing Shape に実装し、Thing Template および Thing には実装しないようにします。
Thing Template は Thing Shape をグループ化するために使用します。これは継承をサポートします。
Thing Shape および Thing Template 上のサービスはオーバーライド可能でなければなりません。
既成の Thing Shape および Thing Template は編集不可能でなければなりません。
コンポーネントの拡張およびカスタマイズ
コンポーネントを拡張またはカスタマイズする際には、以下の最良事例を使用します。
1. 既成の Thing Template を継承する新規 Thing Template を作成します。
2. 新規 Thing Template 内でサービスおよびプロパティをオーバーライドします。
3. 新規 Thing を作成します。
4. 新規 Thing に新規サービスおよびプロパティを導入します。