作成するもの
すでに、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