コンポーネント以前と以後

旧来のフロントエンドデザインは「紙」のイメージで作られてきたように思う。

 

HTMLで構造を定義し、CSSでスタイルを当てていく。JSでアクションをつけたりといったこともあったかもしれない。

 

ただ、それらの実装は前提として一つのページの上に成り立っていたのではないか。

 

いままでのそのような画面作成ではないもう一つの潮流がコンポーネント思考だと思う。

 

Reactに代表されるような、一つのページという単位ではなく、より細かな構成要素へと分割していくことができる技術がコンポーネント指向だと思う。

 

手続き的にJqueryを延々と追加していくのでなく、コンポーネントごとに単一責任を持たせ、同時にそれを流用していくような開発が可能になった。

 

制作物のゴールが決まっているウォーターフォール型の開発であれば、確かに旧来の開発方法でも問題ないかもしれない。

 

ただシステムの仕様は変わっていくものだし、保守していく中でも変わっていく。

 

そうなった時に、ページ単位で作成していくのでは、あまりにも複雑になりすぎるように思う。

 

一度作ってしまえば終わるシステムであればそれで問題ないかもしれない。正直、コンポーネントに分けていくのは短いスパンで考えるとコストだと思う。

 

時にはHTMLで書けば10分でおわるところ、コンポーネントごとに分けたことで1時間かかるような場合もあるかもしれない。

 

しかし、長いスパンで考えた時には、そのようにコンポーネントを切り分けていった方が、結果的に変更に対応しやすくなると思う。

 

なぜなら、責任の範囲を極力小さくし、かつその要素を構成しながらひとつの画面を作っていけば、仕様変更があった場合に一つの要素を直せば全体が直ることになる。

 

これがページ単位で作っていってしまった場合、一つの要素の変更のために全ての要素を修正する必要が出てくる。