全文検索(S)

R.O.D -Run or Debug- ウェブストラクチャ編

ウェブページのコンテンツは、データ(DB のレコードのみならず、文章そのものや画像ファイル、そのリソースにまつわる最終更新日などの情報)、デザイン(見た目ね)、ロジック(本でいう構成や編集といった意味合いで考えてください)の 3 つの要素に分解できる。この 3 つの要素は、動的あるいは静的に統合されて、コンテンツを構成する。

例えばこのサイトでは、PHP で書かれたサーバサイドのプログラムによって、データやデザインが一定のロジックに沿って統合され、最終的なコンテンツとなっている。これを動的な統合と呼ぼう。一方の静的な統合は、人間が GUI アプリケーションの助けなどを借り、手動でデータ、デザイン、ロジックをまとめることとなる。ほとんどの個人サイトは、後者の静的な統合で(つまり手で)ウェブページを記述している。動的な統合を行っている例としては、2ch などの掲示板や、tdiary などのブログが該当するだろう。

動的な統合を行うまず第一の目的は、データの分離である。この分離は容易だ。この日記で言えば、日付を <h3> にするとか、文章の見出しを <h4> にするといったウェブページのロジック(構成)と、DB に収納されるテキストデータとを分離するということである。つまり、日付の部分を <h3> で囲むかどうかは、DB からデータを引っ張り出して表示する時に決めればよく、<h3> で囲った日付の文字列を DB に入れたりはしないわけだ。というか、もともとウェブ以外でのデータ管理のために使われてた RDB のデータを、どうにかしてウェブに出そうってのが発想の順番かもしれないから、この detach はかなり綺麗に行われている。問題なのは、デザインとロジックの分離である。

長年試みられてきているにも関わらず、この二者の分離はかなり難しい。CSS やテンプレート化や各種フレームワーク(WebWorkとか)のお陰でかなり容易になったとはいうものの、CSS は <TABLE> によるデザインよりも表現の幅を狭めてしまっているし、テンプレートやフレームワークの利用はもっとデザインの、つまり表現の自由度を狭め、ウェブが悪い意味で定型化してしまう。だから、何かを妥協しない限りどうしてもどこかでデザインとロジックは混ざり合うことになる。でも、そうするとやっぱりウェブのポータビリティは下がってしまう。極端に言えば、デザインの変更のためにプログラマが必要になるというわけだ(この辺の単純化した例については ITMediaの記事 とか参照)。時々なんかスゲェ誤解している人がいるのだが、XML は、この手のジレンマの解決には役立たない。CSS を考えながらロジックを組むことが求められたりするからだ。結局一番有用なのは、デザインやロジック面での妥協であったりする。

というかだな、デザインとロジックという二者はそもそも分離できないと考えるべきだ。だってさ、本の構成や編集がデザイン抜きで行われることなんてありえないだろう? この日記で言えば、日付を <h3> にするというロジックと、それを下枠付きで文字間を開けて表示するというデザインとの間には、全く相関性がないのだろうか? あるに決まってる。日付を <h3> にして、文章の見出しを <h4> にした以上、その主従関係に従ってそれなりに見せるよう考える必要がある。文章の見出しを日付より目立たせるデザインは、ロジックを決定した時点で捨てられてるわけだ。

こういう分け難いものを強引にでも分離しようとすれば、どこかで何かを妥協するということになる。それもこれも、ウェブ( ≒ HTML)はロジックの規制が弱く、はなっからポータビリティが良くないのが原因だ。しかし、そのロジックの規制の弱さは自由度ってことでもあり、ウェブ作成を一般人にまで広めた原動力の最重要要素でもあるわけで、実に悩ましい。

で。ここ数日、このサイト全体の xhtml 化を試みてみたのですが、分離できていたと思ってたあちらこちらが実は全然分離できてなかったりして。で、表型のデータもツリー型のデータもラップして扱える基本のデータ処理クラスを書いてデザイン部分は表示用のメソッドをオーバーライドしてって手で書き直したものの、あっちらこっちらでオーバーライドしまくりたいという欲望が湧き上がってしまい、ということは癒着に対応しきれてないわけで、データの設計から考え直すか諦めて癒着のまま押し通すかだなぁ、と R.O.D 見ながら実行とデバグを繰り返しているわけです。ってそれなら "Run And Debug" だぜ、つか今時 "RUN" なんて言わネーヨ、ha-ha-ha!!

この長文の要旨:雪野五月萌え。(ぇ

(47)

著作者 : 未識 魚
最終更新日 : 2006-09-26 17:58:47


<TOP>

[ Copyright 1996-2018 Mishiki Sakana. Some Rights Reserved. ]