サイトの構成要素

サイト開発を効率化したいなぁ、とぼんやり思っている。
効率化のためには、とにかく標準化だよね?ということで、サイトの構成要素を淡々と挙げてみる。

  • ヘッダ
    • タイトル
    • サブタイトル
    • ナビ
    • 検索ボックス
    • パンくず
  • サイドバー
    • ユーザ情報
    • ニュース
    • 広告画像
    • フィード
    • サイト内検索
    • カレンダー
  • コンテンツ
    • 見出し、本文の繰り返し
    • たまに広告も入る
  • フッタ
    • ナビ
      • どこかで見たのは、「トップ、広告掲載、ヘルプ、問い合わせ」
    • 著作権表示

サイトのジャンルごとの特徴

サイドバーは情報サイト・SNS系に多い気がする
mixi, hatena, そのほかblog services、ニュースサイトなど。
たいてい、他の記事、他のブログ、他ニュース等、サイト内のリンクと広告を含んでいると思う。
たぶん、PV=広告表示回数で稼ぐから、できるだけ自サイト内へ動線を繋げる必要があるのだろう。

パンくずは、ページ階層の深い情報サイトに多い。
カレンダーはSNSやブログ、その他具体例として早起き日記など、時系列データを扱うサービス*1に多い。

パーツ化

これをパーツ化して、データのひも付けを簡単にできればいいのかな。
データ交換は、ページ外データ*2ならjsonやらxmlで、ページ内データ*3
パーツの組み立ては、テンプレートエンジン内で。たとえばrailsのrender_partialのような仕組みで実現する。
ul -> ナビ、メニュー、etc.
といったデータの見せ方の切り替えは画面側(javascript)で行う。
ナビ、メニューの等の詳細なデザインについては、cssで設定し、デザインを切り替える場合はjQueryのTheme Rollerのような仕組みでjavascriptを使って画面側で切り替える。

ていうか一人でやろうとすると

javascript, css, ruby/php/perl等の基礎技術はもちろん、既存リソースの活用を考えると種々のライブラリやcssテンプレ、素材等にも詳しくないとだめ*4か。

勘所

いかにそのサイト特有のビジネスロジック以外の実装で楽を出来るか。

*1:ログ系サービスと勝手に呼びたい

*2:たとえばtwitterなど、サーバがデータを取ってくるより、クライアン ト側で非同期に取った方がよさそうなデータ

*3:テンプレートエンジン等使っていて、ページ生成時にscriptタグ中でデータを定義するようなイメージ

*4:ここが重要。自分の行動パターンを顧みても、だいたいライブラリや素材等のサーベイで時間を使い切ってる。