Ruby On Rails
Ruby On Rails (RoR) にちょっと時間をとってつきあってみました。実用的な観点から使い倒すことも期待しているのと、
という興味もあったりします。
数少ないけど、日本語情報源としては
[Ruby on Rails の Wiki ですよ] http://wiki.fdiary.net/rails/ [RubyOnRails を使ってみる@るびま] http://jp.rubyist.net/magazine/?cmd=view&p=0004-RubyOnRails&key=ruby%2Bon%2Brails http://jp.rubyist.net/magazine/?cmd=view&p=0005-RubyOnRails&key=ruby%2Bon%2Brails http://jp.rubyist.net/magazine/?cmd=view&p=0006-RubyOnRails&key=ruby%2Bon%2Brails http://jp.rubyist.net/magazine/?cmd=view&p=0008-RubyOnRails&key=ruby%2Bon%2Brails [Ruby on RailsによるWebアプリケーションの高速開発@IBM developerWorks] http://www-06.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.html
あたりがとっても役に立ってます。英語だけど欠かせないのは、本家のチュートリアル
http://wiki.rubyonrails.com/rails/pages/Tutorial
ちなみにO/R マッピングライブラリActiveRecordは、Railsと切り離しても使えるらしい
http://jp.rubyist.net/magazine/?0004-RLR http://rubyforge.org/projects/activerecord/ http://www.rubyonrails.org/show/ActiveRecord
あと参考
[phpとrailsを比べた記事] http://www.megginson.com/blogs/quoderat/archives/2005/06/11/rails-vs-php-mvc-or-view-centric/ ここでは「わかりやすさ」という意味でphpに軍配をあげてるみたい [PerlなRails?] http://qootas.org/blog/archives/2005/03/perl_on_rails_c.html http://www.drk7.jp/MT/archives/000925.html http://www.drk7.jp/MT/archives/000933.html http://search.cpan.org/~mramberg/Catalyst/ Perlではキツイのかもしれないけど、一応メモ。
さぁ、rubyだ。
ついに、ついに、rubyでプログラミングを始めました(もたもたしてたなぁ > 自分)。なんとなく(作業的に)区切りが良かったのに加え、下記が背中を押してくれました。
- bioruby ( http://www.bioruby.org/ )
- rake ( http://rake.rubyforge.org/ )
- Martin Fowler’s Bliki ( http://capsctrl.que.jp/kdmsnr/wiki/bliki/ )
- Ruby on Rails ( http://www.rubyonrails.com/ )
今のところ印象深いのは、
while gets puts [4,3,2,1,0].collect{|c| $_.chomp.split("\t")[c]}.join("\t") end
という感じのコードを「無理にワンライナー化しようとしなくても」書きそうになってしまうところかな。それにしてもこのコード、どのくらいの計算量(オーダー)がかかるんだろ。関数型言語ちっくなだけに、インタプリタ内部での評価順序を知らないと、効率が悪いのかどうか、わからんなぁ。
とはいえ、書いている側としては小気味よいですね。「指示はきちんと出してやったぞ。さ、評価してくれたまへ」みたいな。エスカレートして、富豪さバクハツのコードを書いてしまいそうです。データ量の多いときは、ちゃっちゃとDBMSに任せるしくみを考える、というスタンスが思想的にはマッチするんでしょうね。
(11/6追記)(同日、追々記)
なかださんのコメントに刺激されて(「そうか、reverseか!」)、もう一度Arrayのリファレンスを見直してみました。
http://www.ruby-lang.org/ja/man/?cmd=view;name=Array http://ruby-doc.org/core/classes/Array.html
どうも僕が、今後よく行うであろう作業にはvalues_atを使うのがよさげです。
while gets puts $_.chomp.split("\t").values_at(4,3,2,1,0).join("\t") end
これで、ldasからgffへもカンタン (ライブラリが必要にならないぐらい :-)
そんでもって、評価順序に関する記述についても探してみました。
「実行」の「メソッドの呼び出し」節 http://www.ruby-lang.org/ja/man/?cmd=view;name=%BC%C2%B9%D4
「引数式を左から右の順番で評価」ということなので、直感的には「プログラムを読んだとおりに評価」と考えてよいのでしょう。