give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

簡単なプログラミング問題にLet's チャレンジ!今月の西脇.rb&東灘.rb勉強会は「Ruby リファクタリング Dojo」です

お知らせ

僕とAkiさん(@spring_aki)で毎月主催している西脇.rb&東灘.rbの勉強会のお知らせです。
今月のテーマは「Ruby リファクタリング Dojo」です。

日時
2014/05/31 (土) 13:00 - 18:00
場所
カナディアンアカデミー(神戸六甲アイランド)
参加費
500円
告知ページ
http://nishiwaki-higashinadarb.doorkeeper.jp/events/11430

f:id:JunichiIto:20140514073845p:plain:w500

 

「Ruby リファクタリング Dojo」って何?

「Ruby リファクタリング Dojo」は簡単なプログラミング問題を事前に各自で解いて集まり、みんなでリファクタリングする勉強会です。


共通の問題を全員で解くので、他の人が書いたコードと自分のコードを比較してその人の知識や技術を吸収することができます。


また、自分が書いたコードを他の人にレビューしてもらい、リファクタリングのアイデアを出してもらうことで、「もっと良いコードの書き方」はもちろん「リファクタリングの仕方」を学習することもできるはずです。


どんな問題を解くの?

こんな問題を用意してみました。
どちらもそれほど難しくないはずです。

お題1: name-index
  • カタカナの配列をア段の音別にグループ分けしてください。
  • 例: ['キシモト', 'イトウ', 'カネダ'] => [ ['ア', ['イトウ']], ['カ', ['カネダ', 'キシモト']] ]
  • 詳細はこちら: https://github.com/JunichiIto/name-index

 

お題2: bonus-drink
  • 空き瓶3本で新しい飲み物を1本プレゼントしてくれる店があります。100本買うと全部で何本の飲み物を飲めるでしょうか?
  • 例: 3本購入 => 4本飲める、11本購入 => 16本飲める、100本購入 => ???
  • 詳細はこちら: https://github.com/JunichiIto/bonus-drink

 

さいごに: あなたもお題にLet's チャレンジ!

この問題は別に勉強会の参加者じゃないと解いてはいけない、というわけではありません。
あなたもぜひチャレンジしてみてください!
たぶん1時間もあれば解けるはずです。


また、どんなふうに解いたのかも見てみたいので、解答をGitHubにpushしてもらえると嬉しいです。


上記のGitHubリポジトリにも書きましたが、こんな感じで解答してください。

  1. まず自分のアカウントにリポジトリをfork
  2. RSpecでテストを書いた上で、解答のプログラムを作成
  3. 自分の解答をGitHubへpush


「最近、Rubyを始めたばかりなんです」という初心者の方から、「こんな問題、3秒で解けるわ!!」という強者まで、どなたでも気軽にチャレンジしてみてくださいね~。
みなさんの解答をお待ちしております!


お知らせ その1: 西脇.rb & 東灘.rbでは毎月勉強会をやっています!

西脇.rb & 東灘.rbは、僕とAkiさん(@spring_aki)で主催しているのRubyコミュニティです。
毎月神戸近辺で勉強会を開いています。
神戸ぐらいなら足を運べそう、という方はぜひDoorkeeperのサイトからメンバー登録してください!

http://nishiwaki-higashinadarb.doorkeeper.jp/
f:id:JunichiIto:20140318105534p:plain:w400


お知らせ その2:「Everyday Rails - RSpecによるRailsテスト入門」もよろしくお願いします

僕とAkiさんが翻訳に携わったRSpec関連の電子書籍です。
初心者向けの易しい内容になっていますので、「解答にチャレンジしたいけどRSpecは苦手」という方はぜひこの本で勉強してみてください!
(ただし、Railsアプリケーションをテストするコードが中心です)


Everyday Rails - RSpecによるRailsテスト入門 - Leanpub


あわせて読みたい

動画(スクリーンキャスト)で学ぶRubyリファクタリング: Keitai Message編 - give IT a try
「リファクタリングをテーマに勉強会を開いたら面白いんじゃない?」と思いついたのは、このエントリを書いたのがきっかけです。


Rubyをより良く書けるようになるための課題演習のつくりかた | mah365
この勉強会は「インプットと同時にたくさんのアウトプット、更にアウトプットに対するフィードバックをもらうことが、プログラミング学習のキモではないか」という実践そのものですね~。