ビューファースト(view first)という考え方

最近何ごともゴール志向で考えるのがマイブームになっている。ゴール思考というのは、何をするにもまず目的(ゴール)を決めて、そのゴールから逆算してスケジュールやタスクを洗い出すというやり方。これはかなり汎用的な考え方で、仕事のスケジュールだけじゃなくて日常の生活でも使うべき方法だ。

では、ウェブアプリの開発でこのゴール志向をしようとしたときに、ゴールに相当するものは何だろうか。それは view になる。ユーザに届ける最終的なアウトプットはviewだからだ。

view (template)をどのように書くか?が思考のスタートポイントとなる。画面のラフ案やデザイン案をみながら、この画面を出力するためにはこのようなテンプレートを書かなければいけない、という風にまずは考える。ここが決まると、このようなテンプレートを書くためにはこのようなモデルがロードされていなければいけない。また、モデルはこれこれのインターフェースを持つ必要がある。モデルがロードされるにはコントローラーでこのような処理をしないといけない。さらにモデルはこのようなカラムが必要。。。という風に仕様が逆算されていく。手戻りも少ない。

view が全てのスタートポイントとなるので、ここに曖昧さを残さないように、どれだけ具体的に考えるか、がポイントとなる。