アプリケーションの設計指針

作成するもの

すでに、Rails3 のアプリケーションとして、chisato-moritaka-db をheroku 上で公開しています。これは以前、Perl の html 作成自動スクリプトで運用していたものを、Rails で動的に表示するようにしたものでした。

そもそも閲覧専用アプリとして考えていたため、データの流し込みは手元のマシンで行うつもりでしたので、20 年くらい前に書いた key-value コーディングされたテキストデータの塊から、データを抜き出す処理を行っていました。ただし、ここにきて本人の活動が活発になってきたため、ブラウザ上で直接データを編集したい要望が出てきました。ただし、heroku 上で編集作業をするのは怖いので、手元の開発環境では編集が可能とし、heroku 上では閲覧のみとなるようにしたいと思います。

仕様検討

現在のところ、考えている仕様は以下の通りです。

  • 開発環境では編集が可能、運用環境では閲覧のみ
  • 運用環境は heroku とする。アプリ名は取得済
  • heroku の10000行制限が厳しいので、mogok 等で Ruby 2.0 が使えるようになったら移行を考える
  • 開発環境で更新されたデータは seed データとして保存
  • heroku に git push した時に seed を読み込むように設定 (proxy 環境下でうまく、データの db:push ができなかったため)
  • ローカル git リポジトリでソースの管理
  • ローカル Redmine で一人プロジェクト管理を実施
  • ローカル Jenkins でリポジトリ登録時の自動テストを実施
  • できれば Jenkins で heroku へのデプロイ処理も自動化 (トリガについては要検討)
  • Rails は 4.0.2
  • Rspec は2.14.7 とし、except().to で記述
  • fixtures に依存せず、FactoryGirl を使用
  • Cucumber の代わりに Turnip を導入し、Rspec 内で受け入れテストまでを済ませる
  • かなり似た構造のテーブルがあるため、STI を使ってテーブル継承で DRY を目指す
  • model 間、controller 間で共通利用できそうなものは concerns にモジュールを配置し、Mix-in する
  • Rspec では主にモデルのテストのみを記述
  • コントローラ、ビュー、ルーティングのテストは廃止し、Turnip による受け入れテストに任せる
  • 差分テストは ZenTest の代わりに Guard を使用
  • アプリケーションプリローダとして、Spork+Watchr の代わりに Spring を使用

夢は大きく語ってみましたが、どこまで実現できるでしょうか。


written by iHatenaSync