南極の図書館

ペンギンが寝ていた…。

RailsによるアジャイルWebアプリケーション開発 02

まずはP78まで。
このあたりは、コードについてと、アジャイルな考え方について、二つの面から見ることができる。

第二部の流れ

本書P49からP224までは、だいたい以下のような流れで進むようだ。

P69「顧客はあることに気付きました。(中略)価格が0.00ドルになったりしたら彼女は大損です。そこで彼女はアプリケーションに入力検証の機能を追加してほしいと要望してきました。」

〜コーディング〜

P73「顧客にアプリケーションを試してもらいました。彼女は前よりうれしそうです。わずか数分しかかけていませんが、検証を追加しただけで商品管理ページはずっと完成度が高くなったように見えます。」

アジャイルな

P49「問題が発生した理由が何であれ、間違いに気づくのが早ければ早いほど修正に要するコストは少なくて済みます」
「Railsは変化への対応が必要な状況でこそ真価を発揮します。アジャイルな開発手法にとってはまさに理想的なプログラミング環境といえるでしょう。」

今回作成するアプリの基本仕様について

ユースケース:買い手と売り手だけで良い。
ページフロー:不完全で良い。(ツールについて)「筆者たちは紙と鉛筆を愛用しています。」
データ:まだスキーマやクラスは検討しない。


P53「作るのに長い時間をかけていなければ、捨てるのも簡単です」
そして、初期バージョンを作成することを提案する。


魔法のコマンドとして知っておいた方が良いのが以下の二つです。
rake db:sessions:clear
rake db:migrate:redo

Rails

管理用ページの作成、データベーステーブルとのリンク、セッション処理、フォーム作成の方法を学ぶ。


データマイグレーション
データベースに依存しない表現でソースファイル内に記述する。
マイグレーションを使って新しい列を追加すると、スキーマの履歴をバージョンごとに管理でき、スキーマの再作成も簡単になる。


慣習として、テーブル作成にはcreate, 列を追加するのはaddを使う。add_price_to_productなど。

値の検証

値の検証はモデルで行うべき。
validatees_presence_ofなどをapp/models/product.rbに追記する。
(それ以外何もしなくても見栄えのいい注意がでて驚いた。P71参照。)

もう少し"しゃれた感じ"にできないかしら

ということで以下を該当するフォルダへ入れる。
migrateのファイルは、現在のデータを全て削除し、3つの商品を新たに追加するよう書かれている。


/db/migrate
http://media.pragprog.com/titles/rails3/code/depot_c/db/migrate/20080601000003_add_test_data.rb


/public/stylesheets
http://media.pragprog.com/titles/rails3/code/depot_r/public/stylesheets/depot.css


/public/images
http://media.pragprog.com/titles/rails3/code/depot_c/public/images/


そして
rake db:migrate
で完成。

その他

<% for product in @products %>
<% @products.each do |product| %>
本だと上の記載、私のRails(2.3.5)だと下のようになった。
金額はfloatにすると丸められるので(235が234.99となったり)decimalとすべき。


P78までは、おおよそそういった感じ。