これからRubyで仕事したい人のためのリポジトリ Code Your Ruby をGitHubに公開しました。
chooyan-eng/code-your-ruby | GitHub
Code Your Rubyは、Rubyを仕事にするために絶賛勉強中なエンジニアが、自分の書いたコードをGitHubのオープンな場でレビューしてもらうためのリポジトリです。
チェリー本を読んでRubyの基礎は覚えた。自分なりにコードも書いてみた。でも自分のコードは実際に仕事で使えるレベルなんだろうか?と悩んでいる人(僕です)にとって次のステップに進むために役に立つ場になることを目指して作ってみました。
「あ、それ僕/私だ」と思った方、ぜひこの記事とリポジトリのREADMEを読んでみてください!
参加方法
詳しくはREADME.mdに記載していますが、Code Your Rubyに参加する大まかな流れは以下のような感じです。
- リポジトリの
specification
ディレクトリに入っている問題を読む - 問題の要件を満たすコードを書く(もちろんテストも!)
- code-your-rubyのmasterブランチにプルリクする
- それを見た他のRubyエンジニアがレビューをする
なるべくオープンソースのリポジトリにプルリクを出すような流れをイメージしてみましたが、なにせ僕にその経験がほとんどないのでおかしなところがないかは不明です。
とは言っても第一目的はあくまで__Rubyの学習__ですので、あまり細かくルール決めはしていないつもりです。READMEの内容もガイドライン程度に見ていただければと思います。
問題について
問題は、1ファイルでは完結しないようなボリュームで、実際のシステムでもありそうな要件を考えて作ってみました。
【問題例】
電車の時刻表を計算する | Code Your Ruby
書く人によって全然違うコードになって、それをお互いが読み合って勉強になるように、でもやってて大変になりすぎないように、といういい感じのバランスを狙って作っています。(が、うまくいっているかは分からないです。試してみてください)
なお、2017.12.07現在は練習用のFizzBuzz問題のほかは上記の1問しか用意できていません。新しい問題は随時追加予定です。
サンプルとして、僕の書いたツッコミどころ満載のコードを chooyan-eng
ディレクトリにコミットしてあります。なんとなく雰囲気をつかむ参考にしていただければと思います。
Code Your Ruby作成の背景
さて、Code Your Rubyの説明は以上です。
ここからは、Code Your Rubyを作ろうと思った背景について少し書いてみます。
自分のコードをレビューしてもらえるようなサービスがない
僕がチェリー本を読んで、「次にどう勉強しよう?」と思ったときに思ったのが、自分の書いたコードを誰かにレビューしてもらえるようなサービスってないな、ということでした。(僕の見た限りですが)
課題を与えられてそれをこなしていくようなサービスはありますが、内容は基本的に数行~数十行書けば終わるような小規模なものがほとんどで、内容も実際に業務で使うイメージが湧かないものが多い印象です。他の人が書いたコードやその意図がわかるような仕組みも特にありません。
コーディングは高校のテスト勉強とは違うので、出題者から提示された「解答例」だけ見ても、仕事で使えるようになるには不十分です。
というようなことを考えていた時に、「ないなら作ろう!」と思いついたのがこのリポジトリです。
レビューについて困っている人がいる
もうひとつ、昨日チェリー本の出版記念イベントに参加してきたのですが、そこで衝撃を受けたのが「会社を辞めようと思うくらいレビューが苦痛な人がいる」ということでした。話を聞いていると明らかに自分が経験したよりもキビしめな様子がうかがえたのですが、それを聞きながら同時に__「自分のチームのレビュー風景が普通なのかどうかってなかなか分かる機会ないよなあ。」__とも考えていました。
他にも、Rubyを勉強して自分でいろいろ書いてみたはいいけど、__コードを見てもらえる人がいなくて、自分が今どのくらいのレベルにいるのか全然分からない__と悩んでいる他の参加者の方がいらっしゃいました。
そんな話を聞いているうちに、__「あ、これはどちらもCode Your Rubyで改善できるな」__と思ったのも、このリポジトリを公開してみようと思う大きなモチベーションになりました。
まとめ
他にもいろいろ考えたことはあるのですが、ひとまずみなさん試してみてください、ということでまとめに入ります。
Code Your Rubyは、
- オープンな場で
- ローカルルールがなく
- いろんな意見がもらえる(はず)
そんな場ですので、仕事で使えるRubyの習得を助けるだけでなく、レビューのしかたが分からない、レビューの温度感が分からい、レビューしてもらえる人がいない、といったレビューにまつわる悩み事の改善にもつながるのではないかと勝手に思っています。
百聞は一見にしかずということで、まずはcode-your-rubyリポジトリをForkして課題のコードを書き始めてみてください。
chooyan-eng/code-your-ruby | GitHub(再掲)
いろいろ書きましたがCode Your Rubyは完全に思いつきと勢いで公開したリポジトリです。「こうした方がやりやすい」「こんな方法はどう?」という意見がありましたらぜひコメントやIssueをいただければと思います。
内容や方法は随時修正しつつ、より役に立つ場に改善していければと思います。