がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

お勉強会の御題をやってみました

Jittaさんの
わんくま同盟大阪第3回勉強会 お題解説
http://blogs.wankuma.com/jitta/archive/2006/10/10/41046.aspx


で、ちょっと興味があったので、時間かけずにさっくりといってみます。
ただ、基準がWeb系なので、Windowsアプリケーションとはちょっとずれが生じてるようにも思うのですが…それもまた醍醐味ってことで一つ(笑


では、すたーと!!


1. 概要
data_clump
概ね
O/Rマッピング
・事前に設定された情報を「CGI FORMから一気取得」
の機能を兼ね備えた構造体系クラスです。
手持ちのお便利の中でも最大級に「サボり度」Maxなブツです(笑


最低限欲しそうなクラス。


class 売上高予算 extend data_clump
 予算額
class 実績 extend data_clump
 実績額


2. 機能分類
売上高入力機能については
・画面を用意する
・data_clumpの「情報一気取得メソッド」でデータを取り込む
・data_clumpのvalidチェック機能でエラーチェックをする
とし、特にclassは用意しない。
対象クラスは「売上高予算 class」と「実績 class」の双方。
修正の場合、必ず「修正」メソッドを用いること。


2.1.2 必要な機能
懸案
「修正した場合、修正した日、修正する前の金額を記録できる」について。
1世代履歴でよいのか、複数世代なのかが不明。
1世代なら、クラス&テーブルに持たせるのも手。
複数世代なら…「売上高予算」を意味するキーを作成しつつ、PKはトークナイザつかってテーブルを量産していく感じになりそう。
その辺の機能はclassで適宜ラッピングする。
よって、classに以下のメソッドが追加される。


クラス->修正(修正後金額);
裏で「1レコードの書き換え」やるのか「レコード追加」するのかはしらない(笑


2.1.3 セキュリティ
入力機能は「base_model_auth」を継承する。
このクラスは「認証チェックして、NGなら突っぱねる」動作が期待される。


2.1.4 制限
修正メソッドにチェック機能を入れておく。
画面の出力部分を考慮する。
の二段構えで。


2.2.2 必要な機能
概ね以下の状態でcallできるようにすること。


// 引数省略で6ヶ月とするとかすると後々楽?
表クラス = 出力用クラス->make_表_売上高予算();
表クラス = 出力用クラス->make_表_実績();

// 表クラスは「表を作成するために必要な情報」を持ってるだけ
// あとは出力用メソッドを「切り分けて」もつ。
HTML動的文字列 = 表クラス->make_to_html();
画像 = 表クラス->make_to_image();

// または
HTML動的文字列 = staticなHTML作成クラス::make(表クラス);
画像 = staticな画像作成クラス::make(表クラス);

// で、この辺まで遊ぶと遊べる(笑
object = output_factory::(設定ファイルの情報);
出力データ = object->make(表クラス);

んっと…ちゃんと読んでからここまで15分。
かな〜り適当にざっくりですが(笑
お勉強会で、多分時間がタイトだと思ったので、あわせて「タイムアタック」してみました(笑
突っ込み大歓迎です〜。