ビューとロジックの切り分けについて[1]

ちょっと懐かしいことを思ったので考えをまとめてみたいと思います。

あくまで私個人の経験に基づく見解ですので、その他ご意見はあるでしょうが概ね「あるある~」と感じてもらえればいいです。

 

HTML書く知識などなんにもなかった

いわゆる表題の件になります。

まだ動的なウェブページの技術として、ASP(旧)とかCGIだとかが使われていた時代。

ごちゃごちゃっとhtmlにコードを埋め込む、というよりhtmlをcgiから生成して出力するといったどうも本末転倒なような、

それでいて一気にウェブを世間に周知させた功労者です。

まだそんな時代のころ…

そのころはhtmlの知識など適当で、

デザイナさんとかお客さんから提供されたhtmlを組み込んだりして、

.cgiにしたり.phpにしたりしてつかっていました。

と、いうことはデザインの修正がまた大変になります。

もちろん修正分もいただきものなので、htmlでいただきます。

それをもとに修正して組み込んで、リリース。

とても面倒くさいです。

もともとまっとうなhtmlコーディングの知識もなく、

見よう見まねレベルのなので思った挙動にできなかったり、

画像が出なかったりレイアウトが崩れたりしました。

いろいろ勉強したり経験積んでも本職にはかなわないです。

 

出た!テンプレートエンジン!

そんなとき出てきた概念がテンプレートエンジンです。

phpならSmartyです。

←コレ!

懐かしい!

まあ、実は今またこれまた使うことになったので思い出したんですけれども。(^-^;

懐かしいといいましたが今でもガッツリ利用している人もいるでしょう。

ロジックとHTMLビューを分離できる、と謳ったテンプレートエンジン。

perlでもTemplate使いましたし、概念はよくわかります。

htmlを独自のタグで編集できてなかなか使い勝手が良かったです。

ロジックは別のファイル、クラスで行い、

ビューはテンプレート側でテンプレートエンジンが処理して出力する、といった感じでしょうか。

MVCの概念の根幹ですね。

phpは一気に広まったと思います。

 

だが、Smartyをdisる。

でもはたして便利か?と言われるとどうでしょうかねえ。。。

結局私はあまり有益と思えなくなりました。

cakephpなどの世代のフレームワークを使い始めると

普通にphpタグでカスタム関数とか埋め込むほうがより直感的です。

Smartyでは処理をあれこれつけているうちにとてもhtmlと思えないくらい「汚れた」というか

デザイナさんがわかるか?というような代物になります。

それにまずSmartyのコーディング知識も必要になりますし。

確かにほかの方法でも元のhtmlは見づらくなるし、修正したり更新したりしているとごちゃごちゃします。

私的には本当にSmartyは見づらかった。

独自のタグとか演算子がないまぜになって苦手でした。

 

結論はあるのか。。。?

テンプレートエンジンとロジックを分離するという概念は大いにOKです。

ただプログラマはいろいろな知識が必要になりますし、作業を完全に分担することは不可能じゃないか?とも思います。

デザイナがSmartyなどのテンプレート言語(?)とかPHPを覚えたりすることも必要かもしれません。

javascriptも必須、でしょうかね。ただし私の経験上大体のプログラマもやっていますね。

シングルページアプリとかどうなんでしょうね。ほぼ画面側で仕事させるので

どれだけデザイン側と連携とればいいんでしょうね。誰かが全部やるしかない?もしくは知っていないといけない?のかな。

ほぼテンプレートエンジンの登場で物理的なビューとロジックの分離はできていると思います。

あとは・・・人の問題でしょうか。⇒[2]へ続く