【楽をしてサイト構築をするためのウンチクノート】
第1回
サイトのファイルの依存性を理解する
CMSツールは非常に汎用性が高く、より多くの分野で活躍が期待されるツールです。しかし、残念ながら、その特性を理解せずに導入すると金だけがかかる役に立たないツールへと変貌してしまいます。そのツールを生かすも殺すも人間次第。まず、ここでは、CMSの話の前にサイトを構成するファイル群とその関係をもう一度考え直してみたいとおもいます。
サイト内の依存性はメッシュモデル
一般的にサイトを構築する場合、木をにせたツリーモデルを採用されることが多いと思います。これはファイルの配置を考える上では非常に有益な方法です。しかし、このモデルでページやファイルの依存性(ファイルの移動や削除などの変更がどこへ伝える必要があるか。もっとも大きい原因はリンクでしょう)を考えることには不適切です。
当サイトでは、配所などをすべてのページで同じ物にしています。配色等の設定は、スタイルシートでおこなわれてます。そのファイルはツリーの根に近いディレクトリに配置してありますので、この場合、サイト全体の配色を変えたいときはこのスタイルシートで変更すればよいということが視覚的にご理解いただけるとおもいます。
よって、階層を登れば更新する必要があるファイルもわかります。当サイトを例にすれば、コラムを追加した場合、ジャンル別のページに追加したコラムを追加する必要があります。これはページを追加した個所と同じ位置に index.html がありますのでわかります。同様にその index.html の上の階層にある コラムのトップページの更新情報に更新したことを追加します。以後、トップページの更新情報と更新履歴が同じやり方で更新する必要があるページとわかります。
では、もし、別のツリーからリンクがきたらどうなるでしょう。たとえば、追加したコラムへお役立ちコンテンツのデータブックからリンクを張ったとしたらどうなるでしょうか。ディレクトリ(フォルダ)によるツリーモデルを無視した依存性が出来上がることがわかるでしょうか。かりに、追加したコラムの位置が変わったり削除されたとしましょう。すると、ディレクトリの階層を上へ追うやり方ではお役立ちコンテンツのデータブックへはたどれませんので、データブックからのリンクが古いままとなり、更新が不十分です。また、追加したコラムが時間が経過すると削除は場所の変更により、更新情報の更新の必要はなくなってしまいますので、ツリーの逆たどりもトップまでは不要という判断が可能な場合がでます。
そこで、依存するページ同士、つまり、そのページの変更がどこへ影響するかということを線を結んでみます。するとメッシュモデルが発生します。つまり、依存性を図示すると、ツリーモデルよりもメッシュモデルに近いものが出来上がるのです。
みえた、複雑な依存性
次にそのメッシュモデルの線を変更した側から変更する必要がでる側へ矢印とします。そのとき、ファイル名を変更したら、どこを変更することになるかと考えるとよいでしょう。ただし、依存性はどこかを中継することはないとします。すると、かなりの個所で依存性があることが変わります。特に当サイトの場合は共通部分も多いため、その変更箇所は膨大となります。これは手作業でやれる芸当ではありません。このことは「嫌にならない更新のために」をみてもわかるところがあります。
このように書くと、多くの方は難しいと思われるようですが、本当はそれほどでもなく、自然におこなっていることなのです。ツリー構造はあくまでもファイルの整理用にしかなく、メッシュはどこがどこに依存しているのかを示しているに過ぎません。ページを作成する場合、しらずしらずにこのメッシュ構造を頭に叩き込まれたり、ファイルから読み取ったりという行為をまったく気にしていないのですがやっておられるわけです。
しかし、この依存性が高くなると当然手作業ではおえない膨大な作業となります。図2はCMSを一切使わないで当サイトのようなことを実現しようとしたときの図です。たった6ファイルですが、すでに矢印だらけです。
当サイトの運営スタッフはもとより一度でもWebサイトを作ったことがある人なら、この「少しの変更が多くの場所で変更作業を必要とさせる」というゾッとするようなことはしないとおもいます。当サイトの運営スタッフは、さまざまなツールを活用しその負荷をへらしています。そのことは「サイト運営って、どうやってるの?」をお読みになればわかることと思います。
関連コラム
- シリーズ 【楽をしてサイト構築をするためのウンチクノート】
- 第2回 - サイト運営・設計を楽にする機能
- 第3回 - CMSのコンテンツ生成と結合
- 第4回 - 埋め込みコンテンツとその活用
- 第5回 - ツリー構造
- 第6回 - メッシュ構造
- 第7回 - データベース参照構造
- 嫌にならない更新のために
- サイト運営って、どうやってるの?