騒がしい未来

サッカーやインターネット、旅行、日々のお仕事など、普段思ったことををつらつらと書いていく、高須正和のブログサイトです。 さいきんはtwitterばかり。

 新年最初のRuby講習会です!

01/10 第7回 Rails 実践道場(1)
        ~ まずは基本の型から ~

     プロジェクトコードレビュー(I間)
20:00-22:00

 今回は、あるクライアント様が見学に来てくださいました。
社内でRubyの利用を検討しているそうです。

 今日は昨年の新卒で今はマネージャーをしているI間君が書いた、
チームラボのプロジェクトで実際に動くコードを、みんなでレビューします!

 ある社内プロジェクトの管理画面用に書いたコードを、みんなでレビューしていきます。

 機能としては、
・利用者IDの発行
・ログイン/ログアウト
 の部分をレビューします。

 動作は無事にしたのですが、ソースを表示したとたんに、

「三項演算子の中ではあまり複雑なことをしないほうが…」
「その作成したclassの元ソースを見せてくれ」

 など、先輩社員からのチェックが入ります。

 チェックに対してもほかの社員から、
「for loopが多いけど、ブロックは使わないの?」
 →「それはどっちでもいいんじゃないか?」など、ほかのツッコミが入ります。

 「”必須チェック”,”よく変更するようなポイント”
 などを、うまく設計してコーディングしている」など、誉めるコメントが多々出ました。

 出た質問・アドバイス
 アドバイス:
 「migrateを使いにくい場合、executeを使えば、慣れてるSQLがそのまま通る」

 質問「Validetionはどこでかけてる?」
 回答「valid_kana等、チェックとエラーメッセージを出すアプリをmodule化して、
    共通して使えるようにしている」

 アドバイス:
 「JAVAのfor ループとRubyのfor ループはそれぞれ違い、
  Rubyのforループ は名前空間が独立していない。
  ループの中で宣言、変更した変数が、
  ループの外に影響を与えてしまうことを
  考えると、ブロックを使った方が良い」

 アドバイス:
 「組み込み変数で、$:ではなく、$LOAD_PATH を使うように。
  Perl的な短い変数名は可読性を下げる。」

総評:
 正直、Rails初めて1ヶ月ということでもっとひどいコードがでてくるかと
思ったが、細かい拡張が入っていたり、ずっとRubyっぽいコードが出てきていたのでびっくり。
 独特のルール(DBで複合keyのIDは使いにくい)に戸惑っている部分もあるが、
 非常によい出来だと思います。

その後、初心者向けにRuby全体の紹介、特にActiveRecordの紹介を。

<第2編 ActiveRecordの紹介>
 テーブル定義に入っているカラムから、プロパティを自動生成して、
 RubyのオブジェクトのようにDBの中身を扱える。
 JAVA等、いろいろな言語で出ているORマッパーとの違いは、

・設定ファイルがない!
・規約という暗黙のルールがあり、それを理解しなければならない!

 -コードの量が非常に少なくなるので、レビュー等はラク。

 Migrationのデモンストレーション、テスト、バージョン管理の説明
  Migrationとは?
   Rubyのコードを書くだけでデータベースのオブジェクトを扱える

 

 

 

—————————————————————–
クライアント様:感想
 面白かった。
  Railsは簡単にwebアプリの雛形が作れるのがいいですね。

I間君:感想
 来週は今日チェックされた部分のコードをいくつか直して、
 再度レビュー願います。

番外編
 今日一番ウケたネタ。

SL(1): 究極の冗談コマンド
http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/

 

高須の感想

 そろそろ、さすがについていくのが厳しくなってきました..
次はほかの人に議事録とってもらうかも。

 

今後の講習会予定…

***************************

1/17  第八回  Rails 実践道場(2)
        ~ 恐怖の100人組み手 ~

    Rails のテスト(石間)

1/24  第九回~ Rails 実践道場(3)
        ~ 道場破りさんいらっしゃい ~

    持込されたコードのレビュー(未定)
    第2期を行うか検討