Subscribed unsubscribe Subscribe Subscribe

アプリケーションの設計におけるアンチパターン(ビュー)

アプリケーションの設計において、よく見受けられるのがビューが表示項目毎に分けられていないないということです。

サイトが成長するにつれてビューが部品化(パーシャル化)されていないことは大きな弊害になっていきます。

ビューにおけるDRYの原則、それは表示項目毎にパーシャル化することです。

弊害1(DRYではなくなる)

改修箇所の増大
同一の改修が行われたことの担保ができない

例えば、最初は1軸しかなかった画面において、軸を増やす場合です。

軸が増えた際に、A軸とB軸に同じもの(広告や特集コンテンツ等)を表示する場合、A軸ですでに表示されていたものをB軸のビューファイルにコピペします。

そして、時間が経ち、共通の表示内容を変える場合に、2箇所に手が入ってしまいます。

同様に変えたかどうかは人に左右されます。

共通のファイルを使うようになっていれば、1ファイル変更するだけで2画面の変更が済むます。また、1画面が正しく変更されている=他の画面でも正しく変更されている状態になります。

WEBアプリにおいては常に成長していくものですので、どう成長していくかは分かりません。

将来のことを考えるとビューを部品化しておくべきです。

今のことだけを考えるのではなく、サービスの成長を見越しておく。

これができているのと、できていないのは大きな違いです。

サービスが巨大になったときの改修コストは雲泥の差が出ます。

弊害2(触るファイルが被る)

同じ画面の他の箇所を触っているのにも関わらず、同じファイルを触ることになる

画面上の表示項目毎に部品化されていれば、異なる表示項目を触る際には、異なるファイルを触ることになり、マージ等の作業が必要ありません。 しかし、画面の表示項目毎に部品化されていない場合は頻繁にマージが発生してしまいます。

本来の作業である改修の際にマージが頻繁に発生することになるため、改修のスピード感が落ちてしまいます。

弊害3

表示項目と表示項目の境界が曖昧

サイトの規模が大きくなると、様々な条件で様々な情報を表示していきます。 その際にif等で表示項目の境界線が曖昧になることがあります。

こちらも表示項目毎に部品化されていれば、表示項目がファイルという単位で明確に分かれていますので、ある表示項目を触って他の表示項目に影響するリスクはぐっと下がります。