次期 HCL の仕様

Working draft 5 September 2002

もくじ

  1. はじめに
  2. ユーザインターフェース
  3. 機能
    1. 動作推移図
    2. 流れ
  4. データ管理
    1. テーブル定義
      1. HCL本体
      2. 補助
      3. 登録者情報
  5. 開発言語
  6. 生成させるHTML

はじめに

この文書は Momonga Project に措いて使用する予定である次期 HCL(仮称 MHCL) について,一応開発担当である私の私見,及び想定している (或は盛り込みたい) 仕様について述べたいと思う.

あくまで想定している仕様であるため,ここに言及されている通りになるということではなく,広く意見を募り,採り入れ,より良いモノへ昇華させたいと考えている.

Table of contents↑ (T)

ユーザインターフェース

ウェブサイトでの公開が前提にあるため,UI にはウェブインターフェースを用いる.ただし,ある機能に於てその機能を満たす他の代替手段をとり得る場合はこの限りではない.

Table of contents↑ (T)

機能

機能とその動作推移を例として挙げる.例は,一般ユーザが利用するHCLである.(管理用のモノはこれに『編集』,『削除』などのモードが加わる)

また,これに付随して画面推移に応じたナビゲーションの生成エラー処理等の機能があるが,この図は大まかな流れだけを示したものである為,省略している.

動作推移

  1. ページへアクセス.

  2. DBへ接続.

  3. 登録されている件数をDBへ問い合わせ,登録があるかどうかにより分岐.

  4. 要求動作により分岐

  5. 登録フォームモード
    1. 登録フォームを生成する.
    2. ページ生成へ
    登録モード
    1. 入力補助要求があるか?

    2. 登録処理
    3. 登録完了メッセージ生成
    4. ページ生成へ
    1. 検索語句をチェックし,結果により分岐

    2. 検索結果生成
    3. ページ生成へ
    検索フォームモード
    1. 検索フォームを生成
    2. ページ生成へ
  6. ページ生成
  7. ページ表示
  8. 終了

Table of contents↑ (T)

データ管理

データの管理には PostgreSQL 等の RDBMS を用いる.ただし,他により扱いやすいデータ形式が利用可能な場合はその限りではない.

テーブル定義

以下に管理するデータとそのデータ型,及びその概要を示す.データ型は PostgreSQL でのデータ型を参考にしているため,他のRDBMSを用いる場合は,それぞれそのRDBMSで採用されているデータ型へ割り当てて考えて戴きたい.(例: text → varchar)

HCL本体

Video Card以外のカテゴリ
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
num integer 管理番号
code integer カテゴリコード
vender text ベンダー名
device text ハードウェア名
rev text ハードウェアのrevision
chipset text ハードウェアに搭載されているチップセット名
osdist text OSのディストリビューション名
osver integer OSのバージョン
kernel text Kernelのバージョン リリース番号
module text モジュール名
note text 備考,Tipsなど
Video Cardカテゴリ
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
num integer 管理番号
code integer カテゴリコード
vender text ベンダー名
device text ハードウェア名
rev text ハードウェアリヴィジョン
chipset text ハードウェアに搭載されているチップセット名
osdist text OSのディストリビューション名
osver integer OSのバージョン
kernel text Kernelのバージョン/リリース
xver text XFree86のバージョン/リリース
driver text X4.xのドライバ名
server text X3.xのサーバー名
note text 備考,Tipsなど

補助

categoriesテーブル
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
code integer(或は varchar) カテゴリコード
category text ハードウェア カテゴリ名
deviceテーブル
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
id serial 管理用固有ID
vendid integer ベンダーID
subvendid interger サブベンダーID
code integer カテゴリコード
device text デバイス名
vender テーブル
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
vendid serial ベンダーID
vender text ベンダー名

登録者情報

user テーブル
フィールド名 データ型 概要説明
フィールド名 データ型 概要説明
num interger ハードウェアのテーブルの管理番号
posttime timestamp 登録日時
username text 登録者名
email text 登録者の Email address
ipaddress inet 登録者の REMOTE_ADDR

Table of contents↑ (T)

開発言語

私がPHPに馴染んでいる事,ウェブインターフェースのプログラムを作成しやすい事,RDBMSとの連携がとりやすいこと等を理由に,PHP4 (特に 4.2.x以上のバージョン) を採用したいと考えている.

しかし,HCLの開発を最初から最後まで面倒みると申し出る人が居るのであれば,その人が精通している開発言語を採用することに異論はない.

プログラミングスタイルについてだが,使い回せる箇所,何度も呼び出して利用するような箇所は,極力,クラス,或はユーザ定義関数として定義し,見通しの良いスタイルにしたいと考えている.

Table of contents↑ (T)

生成させるHTML

  1. 生成させるHTMLについては,文書型をXHTML1.1とし,且つ妥当な文書であることを要求する.(妥当な文書を生成することは,敢えて言及しなくてもあたりまえのことではあるが……)

    単に妥当 (Validatorチェックでエラーが無いとかAnother HTML-lintで100点とか)というだけでなく,アクセシビリティを考慮した文書を生成するよう心掛けたい.

  2. 文書の体裁付けにはCSSを用いる.CSSをサポートしていないUAや不完全なサポートのUAでの体裁は,そのUA依存とし,それらで味気ない見た目であろうが知ったことではない.

  3. 上記2に関連する事項だが,ページレイアウトの為にtable要素を用いない.(表を table要素として書き出すことに問題が無いことは言うまでもない)

  4. 同じく上記2に関連する事項だが,体裁のためだけにclass付けを行わない.

    <strong class="red">赤い文字</strong>
    <td class="right">右寄せ</p>

    などとするのは妥当でないとする.

    もちろん,論理的に意味のある語句,文章に class 或は id付けを行なうのは問題ない.

  5. JavaScript,Cookieなどのクライアントに依存した技術は用いない.それらが未サポートのUAであっても使えることを要求する.

  6. これも敢えて書く必要が無いことではあるが,XSS脆弱性を発生させないように,サニタイジング,変数の受け渡しには注意を払う.

Table of contents↑ (T)

Copyright © 2002 Shigeyuki Yamashita (S) All Rights Reserved