FLYING

/* TODO: 気の利いた説明を書く */

OreBoard

『OreBoard』とは、Rubyを勉強しながら微妙に使いにくい掲示板スクリプトを作ってみようという試みのこと。最初は「プロジェクト俺板」という名称にしていたが、露骨にパクりっぽいのでやめた。動作サンプルは以下のページからどうぞ。

『OreBoard』ってどんなもの?

スレッドフロート式と呼ばれるタイプの掲示板。Rubyで書いた。オブジェクト指向を知らずに作っているので、クラス間の構造が大変なことになりつつある。

内部にはBoardクラスとBoardThreadクラスとBoardResクラスがあって、BoardオブジェクトはBoardThreadの配列を、BoatdThreadオブジェクトはBoardResの配列を持っている。スレッドの追加はBoardオブジェクトから、レスの追加はBoardThreadオブジェクトから行うのがエレガントだけど、実際にはレス追加でスレッドの上下が変動するので、レス追加もスレッド追加もBoardクラスのメソッドで行う。現状ではCGIクラスのインスタンスをそのままBoardクラスのメソッドに渡して処理してる。

吐き出すHTMLには index.html(スレッド概要)と subject.html(スレッド一覧)と スレッドID.html(レス一覧)があって、index と subject は Boardクラスで、スレッドID.html はBoardThreadクラスで吐き出す。でも現状だとロジック部とHTMLの生成がごっちゃになってて読みにくい。いっそファイルごとにクラスを作るのがいいんでしょうか。教えてエロい人。

もうつくった

  • スレッド追加とレス投稿でageたりsageたり
  • フォーム入力をHTMLエスケープ
  • 本文とかがなかったらハジく
  • XHTMLっぽいページを静的生成
  • index.htmlにスレッドの概要を表示
  • subject.htmlにスレッドの一覧 → index.htmlにまとめてもいいかもね

これからつくるかも

  • Over 1000 Thread
  • 過去ログ機能
  • 管理機能 → 少なくともあぼーんくらいは欲しい
  • >>1とかにリンク貼る機能
  • スレッド表示は動的生成したほうがいいかも
  • 全文検索 → めんどい
  • 二重投稿のチェック
  • ID機能
  • 流れが速いと1001まで書き込めたりする機能
  • HTML出力とロジックを分離 → erbとか使う?
  • かっくいいCSS
  • 仕様をちゃんと固める