画像データのキャッシュと非表示データの解放を実装しました。前者はネットワークアクセス、後者は使用メモリが軽減されます。(ネットワークアクセスは1画像1アクセスになり、使用メモリは「50MB使用してメモリ不足でOS側から強制終了される」が5MBに軽減しました)
いずれ作らなくてはいけない機能でしたので、これまでの開発でも意識していたつもりなんですが、全然考慮が足りず、苦戦しました。なんとか実装出来ましたが、リファクタリングが必要なひどい状態になっています。無駄な処理が多くて動作ももっさりしちゃってます。メモリ使用量が減ったのにもっさりとか無いわぁ。
当面の問題点は洗い出せたので、数日は新しい構成案を練って、プロトタイプ2から3に切り替えることになりそうです。プロトタイプ5あたりが制式採用される予定です。
前回までのあらすじ:適当に拡張を続けてきた設計が俺の脳内に収まり切らなくなってきたので、ちゃんと資料にしようと思った。
資料も適当な表記法でやろうかと思ったんですが、それじゃ二の舞なので、数日かけてUMLを再勉強していました。前世紀に覚えたはずなんですが、実務で使う機会がなかったので、すっかり忘れておりました。
2005年にUML2.0が出来たらしく、せっかくなので、そちらのバージョンを学習することにしました。Amazonのレビューを参考に買う本を絞り込み、書店で実際に読んでみて、気に入ったものを購入しました。1冊の予定だったんですが、書店でマーチン・ファウラー著のUML本もいい感じだったので、2冊買っちゃいました。
マーチン本は200ページ以下の薄い本です。著者が重要だと考えるダイアグラム(クラス図、アクティビティ図)を重点的に解説しており、他の図は4〜10ページ程度で概要を伝えるのみに留めています。逆にこれが初心者にはありがたい。いきなり13種類のダイアグラムを覚えようとするのはしんどい上に、役割が重複しているダイアグラムもあるためです。まずは基本を覚えてから、自分の好みや作業内容に応じて、新たなダイアグラムを覚えていけばいいと思います。
2冊目のオージス総研本は、マーチン本とは逆に各ダイアグラムを均等に扱っています。それぞれの内容もマーチン本より詳しくなっています。前書きにもあるとおり、リファレンスとして使える内容になっており、マーチン本を読んだあとでの知識補強が出来ます。各項に初心者・中級者・上級者のいずれに向けた内容なのかが書かれており、必要ない部分はスキップ出来るのもありがたい。
この2冊を4時間ほどで読破し、早速現在のクラス図を書いてみました。
これはやばい。一気に再設計して再実装と思っていたのですが、手に負えなくなる規模かも。方針を変更してインクリメンタルにやっていこうと思います。先に機能実装からかなー。非機能実装からやるといつまで経っても終わりそうにないですし。
評判を良く耳にするアプリなんですが、見た目はともかく操作性はそんなに良くもないかも。シーケンス図を書いたんですが、オブジェクト同士の接続ポイントが8カ所(四角形の各頂点と各辺の中央)にしかないため、シーケンス図の用に1つの長方形の長辺にいくつも矢印を接続する図は書きにくかったです。
ステンシルと呼ばれるテンプレートを公開してあるサイトがあるようなので、それを入れると化ける可能性はありますね。試用期間中に操作せねば。
次はUMLetを試そうかと思っています。Java製なので、見た目がMacっぽくないんですよね。他にもいくつか試す候補は揃えてあります。最終的にはWindowsでVisioがあるんですが、VMware Fusion経由と言えど、使いにくいですしね。思考ツールは余計なことを考えずに使えるようにしておきたいのです。

ウィークリー、マンスリーランキング表示に対応しました。思ったより楽に出来ました。次はブックマークを実装します。
2008を使っているんですけど、いよいよサポート期間が切れると言うことで、2010にアップデートしてみました。そしたら、トラブルの嵐。VNCが繋がらなくなるわ(再設定しても改善せず。というか設定しても保存されていないみたい。画面を開き直すと古い設定に戻っている)、インストーラがハングアップするわ(公式を見たら、「タスクマネージャからプロセスを殺せ」と書いてあった。なんじゃそりゃ)でひどい状態。よくこんなんでリリースしたなぁ、と思ってしまった。パターンファイルさえ更新されればいいので、2009にすることにしました。