PHP使いがRubyを触ったとき
仕事でRailsを数ヶ月使ったので、覚え書き。色々思ったことはあったんだけど結構忘れてしまいました。
Railsの機能を殆ど使ってない気がするのでRubyだけで。CakePHPやってると違和感少ないこともないこともないかもしれないです。結構違うと思いました。
便利と思った点
each_with_index の存在
forの必要性を疑問に思ったほど。for 文では減算ループできないので(減算は downto を使う)。
PHPの foreach と違って、前のループで途中で出ていてもリセット不要でちゃんと先頭からループされる。素敵。
配列やハッシュに関しては回し方に色々な方法があるので、最初は「こうやればよかった!」と思うことが頻繁でした。
Array#map、Array#select
ダミーの変数を用意して入れ替えるとかそんなのが必要なくなる素敵! こういうふうにソースを綺麗にシンプルに書けるという点ではRuby凄いと思います。
return false if hoge.nil?
とかね。(変数hogeがnilだったらfalseを返す、という意味)
戸惑った点
for文の存在
最初は使っていたんですけど、減算できないと思って色々調べてみたらループ文が多種多様にありすぎて、この子の存在って一体…という気分に。
ただ、見知った構文があることで入門者へのハードルは低くなるので、なくなればいいとは思いません。
クラスの継承
Rubyではクラスの継承はあまりしないときいて、後で納得。
モジュール使えってことだと思います。Webアプリの場合は、きちんとしたクラスよりも共通関数群を用意してざっくりと書いてしまった方が開発効率がいいような気がするので、慣れてしまうと楽に感じました。
クラスメソッドのアクセス制限
publicとかprivateとか、宣言じゃないよ。メソッドだよ!
書いてしまったらそれ以降すべてそのアクセス制限になるので、関数ごとに書き換えても意味をなしません。最初わからなくてずっとはまってました。
個人的には private_class_method を使うほうがすっきりすると思います。