...

コンポーネントベースの Webサイト設計と開発 - CSS Nite LP, Disk 2

by user

on
Category: Documents
7

views

Report

Comments

Transcript

コンポーネントベースの Webサイト設計と開発 - CSS Nite LP, Disk 2
[ コンポーネントベースの
Webサイト設計と開発
] 小久保浩大郎
(株)ビジネス・アーキテクツ
1/39 [ 自己紹介
] 2/39 自己紹介
• 小久保浩大郎
• 1976年生まれ
• 三重県出身
• (株)ビジネス・アーキテクツに2002年から参加
• マークアップデザインエンジニア
3/39 [ 今日のお題
] 4/39 今日のお題
• コンポーネントベースのWebサイト設計と開発
• 大規模サイト開発の経験から生まれた開発手法 – 大規模サイトじゃないと意味がない、というわけではない – 開発規模を問わず同様に起こっている問題はあるはず – 大規模サイトでは開発の過程で起こる問題も大きくなるの
で見つけやすい – そこで見つけた問題解決手法を汎用的な形にしたもの
5/39 目次
1. 何のためのCSS?
2. 情報構造の抽象化
3. コンポーネントの設計と制作
4. 導入するときのポイント
6/39 [ 1. 何のためのCSS?
] 7/39 CSSの何がうれしいのか?
•
•
•
•
よく聞くフレーズ
「情報とデザインの分離」
それって本当?
CSSオフの状態ってデザインされてないの?
8/39 CSSが有効のとき
これはデザインされている。
9/39 CSSが無効のとき
これはデザインされてない?
10/39 マークアップもデザイン
•
•
•
•
•
マークアップとは、ただの文字列に意味づけする行為
意味づけというのは一定で普遍的なものではない
より伝わるために意味づけするのでは?
「誰に?」「何を?」「どういう風に?」
それってデザインじゃない?
• だとすると別に「情報とデザインが分離」されてるわけ
じゃない
• 正しく言うなら「情報構造と外観の分離」
11/39 HTMLとCSSが担うデザインの領域 HTML HTML HTML CSS
CSS CSS Information Design 「情報構造」
Visual Design 「外観」 12/39 じゃあCSSは一体何がうれしいのか?
• 実は「外観情報の抽象化」ができることが最大の特長
13/39 実装例を見ながら考えてみる
• こんな表を作ってみます。
14/39 各実装例の類似点・相違点
• それぞれの類似点・相違点 – ソースの見た目はAとBが似てる – 情報構造と外観という点ではBとCが同じでAは違う
• Cが決定的に他と違う点 – 外観についての情報が抽象化されている
15/39 各実装例のメリットとデメリット
• 実装例A、Bのデメリット – 同じ記述が重複してソースが肥大化する – 修正の手間が増えてミスが増える – 全体を見通しにくい
• 実装例Cのメリット – 同じ記述をひとまとめにできる – 修正や管理が一箇所に集約できる – 全体が見通しやすい – セレクタを追加するだけで再利用可能
16/39 つまりこれはどういうことか?
• つまり「外観情報の抽象化」が行われている – 多くの人は明示的に意識していない – しかしなんとなく感じてるはず – だからCSSを使ってるのでは? 明示的に意識することで
さらにこの「抽象化」の恩恵に与ろう
17/39 [ 2. 情報構造の抽象化
] 18/39 HTMLには情報の抽象化の仕組みがない
• 価格表のフォーマットを再利用したいと思ったとき
←この表に名前をつけて使いまわせ
るとうれしいけれど… そういう仕組みはないの
でできない
単純にコピペするしかない
19/39 HTMLに元々ある要素
• 元々HTMLにある要素はそういう扱いができる(当た
り前ですが)
• なぜならそれらの要素は「名前」が付いていて「定義」
されているから
• カスタムの名前を定義する仕組みはある
• class属性
• しかし再利用可能になるわけではない
• そういう仕組みがあったら便利そう…
20/39 ないなら作りましょう
• 自前でその仕組みを作ればいい
• というわけで考えたのがコンポーネントベースの設計
21/39 [ 3. コンポーネントの設計と制作
] 22/39 すごく簡単に言うと
• コンテンツ内で良くある組み合わせをあらかじめパー
ツとして作っておく
• 逆に言うと
• あらかじめ用意されたパーツを組み合わせることでコ
ンテンツを作ることが出来る
23/39 コンポーネントリストの制作
以下の3つをベースにまず作ってしまう – HTMLに元々ある要素 – 過去の経験から必要だと思われる典型的な要素 – 既存(現行サイト)から洗い出される要素
24/39 コンポーネントリストの分類
• ブロック要素 – – – – – – – 文書タイトル 見出し 本文 リスト 注釈 表 画像・図版
• レイアウト要素 – – – – 2段組み 3段組み 左寄せ 右寄せ
• インライン要素 – リンク – 強調
• ナビゲーション要素 – – – – – – 前後ページ移動 親階層ページ移動 兄弟階層ページ移動 子階層ページ移動 関連ページ移動 同ページ内移動
などなど
25/39 コンポーネントリストのサンプル
26/39 各コンポーネントについて定義すべきこと
•
•
•
•
•
名前
外観
説明
分類
ソース
27/39 コンポーネントコレクション
• 定義したコンポーネントの情報は一箇所に集約して共
有できるようにする
• それを「コンポーネントコレクション」と呼んでます
• 形式 – HTMLベースのドキュメント – 専用のWebアプリ – WordとかExcelとか – 何らかのドキュメント
28/39 コンポーネントの利用
• 単に集約しただけでは効率的に利用するのは難しい
• コピペだとミスが生まれる可能性もある
• そこでDreamweaverのライブラリ
29/39 Dreamweaverライブラリの活用
•
•
•
•
•
簡単
便利
間違いがない
編集可能領域が作れない
バージョンアップに期待
30/39 [ 4. 導入するときのポイント
] 31/39 過去の経験
• 「コンポーネント」の定義タイミングが遅い – コンポーネントの定義が曖昧なまま、コンテンツ仕様書、デ
ザインPSDなどの成果物ができる – 作業者は、前段階の成果物を受け、独自の解釈で要素を
抽出して作業する • 「これは見出し?」「これはリード? 本文?」など
• 問題点 – 抽出・解釈が何度も行われる – 解釈にぶれが生じる可能性がある
32/39 効率よいコンポーネント開発のためには
• コンポーネントの定義を「最初に」することが肝要
• プロジェクトメンバー全員がその概念を共有する
33/39 進め方
• まず意識の共有
• コンポーネントの制作 – コンポーネントリスト – デザイン – 実装 – コンポーネントコレクション
• コンテンツ仕様書を元にページ展開
34/39 メリットとデメリット
• メリット – 工数が読みやすくなる – 複数人による同時並行作業が可能 – コンポーネント単位での検証ができる
• デメリット – 縛りだと思ってしまう恐れ – 慣れてないことによる不安感 • フローが違う • 最初のページが出来上がるタイミングが結構後の方
35/39 [ 最後に
] 36/39 [ 現在、ビジネス・アーキテクツでは
] 37/39 [ 絶賛人材募集中 ] 38/39 [ ありがとうございました
] 39/39 
Fly UP