出張版Ruby初級者レッスン編

Ruby関西でよく行われている勉強会の出張版。「初心者を中級者に」というところがコンセプトとのことでした。

50分のセッションが2回あったんですが、端末数の制限から1回目には入れなかったので、2回目に参加しました。2回目は1回目の終了が押したので、かなり短い時間になってしまったのが残念です(12月のRuby勉強会@関西に参加しないと参加したことにならない、と言われていたので、雰囲気をつかむ、という目的としてはよかったんじゃないかと想います。で、来月京都にいけるかなあ>私)。

教材はDebianLiveのCDにRubyその他が入っている環境が作られていて、教材としては便利な感じですね。

レッスンのテーマとしては「ある程度動くRPN電卓を作る」というもの。

 #ruby rpn.rb 1 2 + 3 4 + \*    (\*はエスケープ処理)
 =>21

これをrpn.rbとtest_rpn.rb(testunit)で作っていくんですが、最初からtest_rpn.rbを作って必ずテストありきで少しずつ機能を追加してゆく方針が新鮮でした。

最初の条件だと動作する電卓に対し、新しい条件をtest unitに追加して、それを失敗することを学ぶ。そしてそれを動くように改良してゆく、というのが自然とできる流れでした。サイズが小さいのでついつい、「p」でデータを途中で表示するようにして動作を適当に確認していたんですが、testをキチンを流した方が結果的に楽ですよ、というご指摘を途中でいただけたりしてよかったです。

Rubyの基本を教えることは時々あるんですけど、各クラスや文法の基本を教えるのに終始して、こういう作り方を伝えるということは無かったので、勉強になります。

1点気になるのは、RPN電卓そのものの作り方がサッパリわからないと、実装部分が全然作れないので、最低その部分のロジック力はあるというのが前提になりますね(この時は、最初evalで作って、その後sendにしたんですけど、初心者の場合は、その当たりのrubyでの書き方
はたぶんわからないでしょうから、その辺どうやってフォローされてたのか気になりました。勉強会に参加させていただくのが一番いいんでしょうね(笑))。