Ruby on Railsはじめました

最近はもっぱらPHPだったので、新しい事してみようかと、Rubyの仕事を請ける事に。
Rubyで構築されたシステムも増えてきたので、覚えて損はないかなと。

さっそく作ったシステムを識者に見てもらう事ができたのだが、不明な箇所があったので調べてみる事にした。

Ruby のシンボルについて:Rainy Day Codings:So-net blog
ハッシュ(連想配列)のキーとして文字列を指定する事が殆どだったので、シンボルと文字列の違いが理解できていなかった。このページは比較的易しく書かれている。特に以下の箇所は理解に役立った。

ハッシュのキーによく使われるのはシンボルの内部表現が整数なので効率がいい

PHPで定数をdefine()してキーに指定するのと同じ感覚のようだ。もしくは自動で行われるし、文字列としても利用できるので、こちらの方が便利かも知れない。

Rubyはそれぞれの変数がオブジェクトとして保持されているので、型変換という操作が不要な場合がある。PHPでも勿論あるが、インジェクション対策などで明示的に変換したりしていたが、あまり気にしなくていいみたいだ。この辺はCやJavaをやっている人にはとっつきにくい、不自然さを感じるところかも。

Railsの自動生成やテストは非常に便利だと感じた。また、別のPCに一から自分でEclipseでの開発環境を整えられていないが、Eclipseに動作が統合されているのは便利。

ただ、Railsのフォームヘルパについては少々承服できない。
というのは、せっかくMVCで分けているのにも関わらず、RailsがViewにまで手を伸ばす形になっているからだ。
これは使い方の問題かも知れないが、チームで作業する場合にViewに処理が入ってしまう事を最低限にする為に色々な手法が採られてきている。Railsも本来そうだろう。だが、ヘルパを使う事でその意味が薄れてしまう。

勿論全く必要ない場所にそれを使う必要はないと思う。

<a href="..." onclick="..">....</a>

とパーマネントな文字列をlink_toを使って記述する事にあまり意味はないだろう。コントローラを指定したり、複雑な事ができるのは理解しているが、そういった処理が必要ないにも関わらず、使う意味はないという意味だ。

せっかくデザイナー・コーダーに整えてもらっても、これでは二度手間、三度手間になりかねない。修正もRailsの識者でなければ扱えない事になる。


さて改めて環境構築してみようっと。