読者です 読者をやめる 読者になる 読者になる

No Bugs, No Life

読んだ本や、プログラミング、システム開発等のねたを中心に。文章を書く練習なので少し硬派に書くつもりだけど、どうなることやら。

読書管理アプリ(Librarian)の再実装

DEV Librarian

自宅PCをWindows7からWindows8.1に移行したときに、思わずruby環境を再構築する選択肢をとってしまった罠。
前の環境では32bit mruby(1.9.3)でだましだましVisualuRubyをUI部分に使用していたんだけど、VisualuRubyの更新はすっかり止まってしまったようだし、しばしば例外(ログを見ていないけどおそらくはAmazonを検索するところ)で落ちてしまっていたので、作り直すことにしてみる。

About Librarian

Librarianは、読書記録を管理するためのアプリで、「図書館で借りている」または「ISBNを指定した」本の書誌情報をPC上の表計算ソフトに書きだす機能を持っている。
書籍類は"一般的な分類"ってのがないようなので、とりあえず邦書*1をカバーするためにNDL(国会図書館)のNDCを分類のために取得している。
まだ読了していない書籍についても記録だけしておいて後から読了日だけを書き足せるように、表計算ソフトに書きだしている。
読書傾向(分類別の読了数)、読書量(年月毎の読了数)なんかのレポーティングは、表計算ソフトに任せている。


アプリのコンテキストはこんな感じ。
f:id:kazyury:20141213153646p:plain

今までのLibrarianの課題

今まで使用していたLibrarianの課題は以下のとおり。要するに以下を解消するためという大義名分でLibrarianを作り直す。

  1. Amazonの検索でしばしば落ちる。2000req/hour は絶対に送っていないんだけどなぁ。再試行すると通ったりする。
  2. 保守性の低下。VisualuRuby をUIとして使っていたけど今やメンテされていないし、32bit mruby でしか使えない?
  3. 保守性の低下2.win32oleからLibreOfficeを弄んでいたけど、jrubyからはwin32oleが使えない?mrubyなら良いのかも。

Librarian再実装の方針

上記のような課題を解決するために、こんな感じで再実装する。

  1. Amazonの検索でしばしば落ちていたようなので、Amazonの検索に失敗しても他のWebAPIから検索できるようにして何らかの結果を返せるようにする。
  2. そもそもの例外ハンドリングが甘いので、リファクタリングする。
  3. GUIライブラリは将来性を重視して選定する。
  4. 表計算ソフトの取り扱い部分はwin32oleに限定せずに、新たに選定する。


とりあえずのところは以上!

*1:なんて書いているけど、洋書の読書記録はまだ無い!...すみません。見栄はりました。