新年最初の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期を行うか検討