こんにちは。今回は久しぶりにDevな話題。
先日、Mr Taddyさんに遊びに行く機会がありまして、そこでRubyエンジニアのお二人と一緒にプチRuby勉強会をしました。(流れでコード書きましょうか〜、という感じになった。)お題を設けて各者がコードを書き最後にレビューするという内容です。お題は、数字を英語表記に変換するコード、でした(みなとRuby会議でペアプロのお題だったものです)。制限時間は約30分。
私がかいたコードはこちらです。(英語スペルや表記が間違ってるかもしれません)家に帰ったあとちょっと修正しました。
数字を英語表記に変換する — Gist
他のお二人さんのコードを見たのですが、洗練されてて圧倒されてしまいました・・・。やはり書き慣れている人のコードは違います。コードを見て以下のことに気づきました。
- テストコードを書きながら作成している
- 便利なgemを使っている
まずテストコードを書きながら目的のコードを書いていました。たしかRSpecを使っていたはずです。テスト駆動開発ってこういう感じなんだろうかと思った次第です。あと、今回のお題は検証したいパターンが多かったのでテストはかなり有効だったんじゃないのかなと思いました。テストコードの書き方覚えたいです。
2つ目のgemなんですが、guard/guard-rspecを使って自動でテストを走らせるようにしていたり、◯◯の機能を使いたいからActive Supportを入れたりしていました。この辺も経験や慣れなんだろうなあと思い、Rubyのコードを書く時間を増やしたいなあと思いました。
あとは、Rubyエンジニアのお二人から私の書いたコードについて、「モジュール化すればよかったのでは?」「文字列の長さで分岐させるのはいいかも」というコメントを頂きました。普段、自分の書くコードに対して上司などからコメントをもらうことがあまりないので新鮮でしたよ。仕事だとコードレビューにあたるんですかね?自分の周りでも取り入れたら面白そうだなあと思いました。
たまにはコードを書き合って学ぶのも面白いですね。やはり刺激になります。
今回お世話して下さったMr Taddyのみなさんありがとうございました!