Agile Web Development With Rails: A Pragmatic Guide (The Facets Of Ruby Series) Chapter 1. Introduction
はい、テストからの現実逃避前回でお送りします。思いついたときに、AWDwRの反芻をかねて内容を書いてゆく、かもしれない。
IntroductionはRailsが他のフレームワークと何が違うの?というところから始まります。その質問に対する答えが
- JavaのTapestryとかStrutsと同じでMVCモデルを採用していて、それぞれのパーツに対応するコードを書くべき場所が決まってる。そんで、それぞれのパーツが標準化された方法でinteract*1する。すでに準備されたアプリケーションのスケルトン*2を使って開発を始めるようなもん。*3
- Railsはプログラミング言語にRubyを使ってる。Rubyは現代的なオブジェクト指向のスクリプト言語で、考えを自然な形で表現しやすい言語。
- RubyはLispっぽい言語で、メソッドがまるで言語構文の拡張みたいな感じで作れる。メタプログラミングなんていわれてる*4。
その例として、Railsのコードが載っております。
[]class[] Project < []ActiveRecord[]::Base belongs_to :portfolio has_one :project_manager has_many :milestones has_and_belongs_to_many :categories validates_presence_of :name, :description validates_acceptance_of :non_disclosure_agreement validates_uniqueness_of []:key[] end
正直、この仕組みを考えたやつは天才だと思った。
- Railsの哲学。DRY(Don't Repeat Yourself)とConvention over Configuration。ある機能の実装のためのコードは、プログラムのなかで1ヵ所であるべき(DRY)。Javaなんかのフレームワークでは、XMLファイルで設定(Configuration)をずらずらかかなきゃいけないけど、Railsの場合は規約(Convention)にしたがってコードを書くことで設定ファイルを書く煩わしらから解放される(Convention over Configuration)。
- デフォルトでAJAXや、単体テスト機能みたいなcoolな機能がついている。
- 豊富なコードジェネレーターでスケルトンは自動生成してくれるから、ロジック作成に専念できる。
- Railsは実際に使われてる、商用アプリから飛び出たものだってこと。実際に使われてるアプリの本質的な部分を集めてきて、アプリの基盤となるようなコードにまとめあげるのが一番。
(一部割愛)
- 顧客に"Yes"って言うことが多くなった。
ということで、今回は1.1 Rails is Agileの手前まで終了。ぐお、英単語は極力減らそうとしたけど結構使ってしまったな。
では英語の勉強でもちょっくらしますかね。
*1:パーツがデータとかをやり取りするイメージ。相互作用する、という日本語が一番はまるのかもしれないけど、なんかぴったりくる日本語がうかばない。
*2:日本語では骨組みかなぁ。アプリケーションの基本的な部分。
*3:as if you start with =だから、the skeleton of applicationを実際は使わないようなニュアンスっぽいけど、実際にskeletonをつかうよね。
*4:原著では but we just call it useful.と続く。
*5:原文は Dave's Top 10 Reasons To Like Rails です。萌えとかそんな意味はない、と思う。
*6:うまい訳語が思いつかない。参照http://e-words.jp/a/agile.html
*7:原文 not feeding the framework , feedには(ボケに)つっこむ、という意味があるようで。意図的な誤訳。