nDiki : フレームワーク

2003年12月27日 (土)

[ WiKicker ] 日記機能開発開始

WiKickerMVC2フレームワークから Wiki に依存している部分を分離して、日記システムと共用できる部分をスーパークラス化。

Perlリファクタリングが面倒だよ(名前の変更忘れとかの発見が遅れるので)。


[ DiKicker ]

スポンサード リンク
[ 12月27日全て ]

2004年5月31日 (月)

MVCと複数の変更主体

映画を観終わった後、銀座コリドー街新宿ねぎしでご飯。 MVC関連の話など。

複数の View が編集状態にある時の、View 更新のタイミングの話とか。 フレームワークを利用したいが、フレームワークで想定していないちょっとした変則的な処理をしようとすると面倒だとか。

[ 5月31日全て ]

2004年8月9日 (月)

Scheme でプログラムを書く

たまにやってくる「Scheme やるぞ熱」再来。

Gauche 0.8.1 をインストール。 何を書こうかという話になるが、今回はテスト駆動開発入門で「単体テストフレームワークテスト駆動開発で書いてみる」という例があり、新しい言語を学ぶときに良いとあったのでそれに挑戦してみることにした。 Gauche用の xUnit は既にあるようだが、トレーニングということで車輪の再発明。

フレームワーク部分を書いているのか、フレームワーク単体テストを書いているのか、単体テスト用サンプルオブジェクトを書いているのか、何だかわからなくなってくるな (オーバーラップするところもあるし)。

テスト駆動開発入門を参考にしようと思ったが、昨日会社に置いてきてしまったばかりだし。 明日続きをやるか。

[ 8月9日全て ]

2004年8月11日 (水)

Perl でテスティングフレームワークを書いてみる

一昨日 Scheme で書き始めたのだが、やはり不慣れな言語でTDDをやってみるのも大変。

ということでPerlでやってみる。やはり最初はこちらの方が楽。 Perl では「これだ」という xUnit が無い。

WiKicker は Test / Test::Harness を使用する標準的なテストを採用しているが、fixture の処理が面倒に感じている。 なので何か良い xUnit が欲しいのだが、テストのためだけに要求モジュールを追加するのもよろしくないので簡易的なものを自作するのも悪くないかも。

TDDはリズム感があって良いな。 まだリファクタリングフェーズでどの程度リファクタリングしてから、次のレッドフェーズにはいるかの匙加減がまた掴みきれていない。

[ 8月11日全て ]

2005年4月20日 (水)

SConsGNU Autotools のかわりになるか

NSIS のサイトによるとビルドに「SCons」を使うようしたらしい。

  • クロスプラットフォーム
  • AutoconfAutomake と同様の機能を統合
  • LaTeX もビルトインサポート

と興味深いツールになっているようだ。

現在プロジェクトLaTeXベースのドキュメント生成には GNU Make を使っているのだが、UNIXWindows の両方でビルドできるようにするには ComSpec 環境変数の有無で使用するコマンドを切り換えたり等いろいろ面倒なので、代替ツールとして使えないかなと。

基本的な機能は Make に対する改良がなされているようであるし、コピー等ファイル操作も SCons 自体がもっているのでクロスプラットフォームでビルドできるようにするのも楽そうだ。

一方 Autoconf 系の機能については、インストール済みのライブラリの検出や実装レベルのチェック等を実装しているようである。 make check や make dist、make install 等にあたるターゲットに関する機能(あるいは規約)のようなものは無い。これは非常に残念。 結局自分が Ant を使わなくなったのも GNU Autotools にあるこれらの機能に欠けているからであるし。

実は私がPerl が好きな理由の一つとして、これらサポートが充実しているという点がある。Perl では ExtUtils::MakeMaker (あるいは Module::Build)があり、ビルドからテスト、ソースパッケージのパッケージングまでフレームワークが整っている。

SConsPython ベースで、Makefile にあたるファイルも Python スクリプトである。 SCons が影響を受けた Cons は Perl ベースであったのだが、既に2001年5月ごろから開発が止まってしまっている。残念。

ということで Make の代替には使えそうであるが、GNU Autotools と同じようなことをするにはいろいろ手をかけないといけないといった印象。

[ 4月20日全て ]

2005年12月7日 (水)

DocutilsreStructuredText から LaTeX への Writer は継承しづらい

この間やっつけでPerl で コンバータをちょっと書いたのだが、やはりここは正攻法で Docutils の Writer として書いておきたい。

Docutils に含まれている LaTeX2e Writer (docutils.writers.latex2e) のクラスを継承してカスタマイズ版を作ればいいかなと着手。 この Writer の生成する TeX ファイルがちょっと好みではないので、継承して自分好みの Writer を書いた上で、それを継承してドメイン毎の Writer を書く事にする。

Python でコードを書いたことはほとんどないのだがそれほど迷う点はない。 素直な言語なのかな。$ とか @ が出てこないのはちょっと寂しい。ブロックをインデントで示すので「閉じ」がなく、ちょっと「スースー」する。 わかる? この気持ち。

Docutils はパースした結果 DOM ライクなツリーができて、これに対して visit / depart 式の visitor を使って処理をしていけるようになっている。 そのあたりはフレームワークがあるし、典型的なパターンなので楽ではある。

ただし、docutils.writers.latex2e のクラスが継承されることを意識されている感じがしないので、メソッドをコピーして書き換えてオーバーライドといった事が必要になる箇所が思ったよりあるのがちょっと気になる。 今後バージョンアップした時に内部も変わる可能性があるだろうし、最終的にはごっそり Writer を作ってしまう方が良さそうだ。

[ 12月7日全て ]

2006年1月8日 (日)

成功するビジネスプラン

新しいアイデアをもとに新しいソフトウェア開発・販売あるいはサービス提供を行おう。

開発についてはいろいろ学んでいるけれど、もっと大きな視点でどう事業化していくかという点についてはほとんど理解していない。 どういったビジネスシステムでそれを実現していけばいいのかわからない。 どのようにプランニングし、提案していけばいいのか正直よくわからない。

何を分析して、何を考え、何を書けばよいのか。

成功するビジネスプラン

まずは入門書にあたろう。ということでまずは「成功するビジネスプラン 日経文庫」を読んでみた。

本書は、事業や顧客の分析といったビジネスプランを立てる上でのフレームワークから、具体的な事業計画書の書き方、財務計画の立て方までを解説。-- (表紙裏 [POINT] より)。

新書サイズということで深くはないものの、ビジネスプランを作成する上で必要な分析のフレームワークが一通り紹介されているので、どんな事を考えなければならないのかが分かってきた。

さらにビジネスプランの構成が説明されているので、まずはこれに従ったアウトラインで書きはじめることができる。

三色方式で線を引きながらでも1日で読めてしまうので、急にソフトウェア製品/サービス企画を具体化する必要がでてきた時に、慌てて読むのになかなかよい1冊である。 で、書きながら詳細を知りたくなった点を他の書籍で補っていけばよいだろう。

ただ財務計画についてやはり別途基礎知識がないと駄目だな。


[ 読書ノート ]

[ 1月8日全て ]

2006年2月28日 (火)

Intercepting Filter パターンとレスポンスの順次送信

WiKickerセッション管理/認証/承認機能をどのように形で組み込むか思案中。

セッション管理部分は CGI::Session モジュールで実装し、認証承認部分はドライバはまずは Apache::Htpasswd モジュール等を使い上位部分を自前で実装という形にすることにしようと考えている。

さて、これをどうやって組み込むか。 認証承認機能は、運用によってバックエンドがファイルだったりデータベースだったりする(したい)ので、結構な柔軟性を持たせておきたい。

Servlet のフィルタのように Intercepting Filter パターンにするのが柔軟性が高いかなと思ってコードを書き始めてみた。 リクエスト側のフィルタリングは問題なかったのだが、レスポンス側のフィルタリングではたと困った。

WiKicker では view についてはクライアントを待たせないように、構築したところから順次送信している。 効率を落とさず、拡張可能なフィルタを適用するのが難しそう。

実装したい機能に対してオーバースペックなフレームワークに膨れ上がりそうなのでヤメ。 普通にそれぞれの機能を差し替え可能にしておいて、使わない場合は何もしない処理クラスを設定するという無難な構成にしよう。

[ 2月28日全て ]

2006年9月14日 (木)

WiKicker 0.38 リリース - 認証承認用コードの実装

朝一で WiKicker 0.38 をリリース。 昨晩コードを完成させておいたものを Perl 5.005_03 上でテストしたら、ExtUtils::MM が 5.005_03 にはないことに気が付いた。 調べると標準で入っているのは Perl 5.6.2 / Perl 5.8.0 から。

ということで急拠 ExtUtils::MM を使っているツールは今回のリリースから除外してパッケージング。

今回のリリースでは認証・承認フレームワーク実装が含まれるようになったのが中心で、基本的な機能には特に変更なし。

[ 9月14日全て ]

2006年10月17日 (火)

WiKicker 0.39 リリース - 添付ファイルの削除機能を実装

ようやく添付ファイルの削除機能を実装

後は主に認証承認関連まわりのコード追加。 フレームワークとして認証処理と承認処理は分離してあり、それぞれ運用に合わせてドライバクラスを書いて使うようになっている。

しかし実際のところ認証承認も同じデータベースを使うことが多いか、やっぱり。 特に中~小規模では。 実際自分がある運用用に書いてみているドライバもそう。

そうすると分離していることが逆に厄介。データベース処理が分かれてしまうので、データベースのオープンとかトランザクション処理とかをまとめにくい。

そのあたりうまく下位部分を一緒にできる仕組みを入れてあげる必要あり。

[ 10月17日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.053699s / load averages: 0.63, 0.37, 0.38
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker