お知らせ
2017年8月24日(木)の19:30から開催される、Rails Developers Meetup #4で「プロを目指すRailsエンジニアのための公開コードレビュー」という講演をやります。
会場は東京がメインですが、中継で視聴可能な大阪会場と、日本全国どこからでも参加できるリモート会場(YouTubeライブ使用)の3箇所に分かれています。
また、僕自身も兵庫県西脇市の自宅からリモートでお話しする予定です。
話す人も聞く人もリモートで参加できる勉強会ってすごいですね。未来的!
申込みページはそれぞれ以下のとおりです。
僕の講演の概要はこんな感じです。
「プロを目指すRailsエンジニアのための公開コードレビュー」
自分が書いたコードは他の人が見たときにどう思われるのか、気になりませんか?
この発表では、参加者のみなさんが書いたコードをソニックガーデンのプログラマ、伊藤淳一がその場でコードレビューします。
お題は以下のURLにあるので、「レビューされてみたい!」という方はイベント当日までにREADMEに書いてある内容に従って自分の解答を提出してください。
https://github.com/JunichiIto/train-ticket-rails
当日は1~2件の解答をピックアップして、良いところや改善できそうな点をレビューしていきます。
参加者全員で「良いコードとは何か」を一緒に考えてみましょう!
はい、このように今回は「僕の話を聞いて終わり」ではなく、参加者の人が提出してくれた解答によって内容が変わる「全員参加型」の発表になります。
お題のRailsアプリは初心者向けのごくごく簡単なものなので、「まだRailsチュートリアルしかやってないんだよな~」という人でも解けるはずです。
みなさん、ぜひ参加申込み&解答にチャレンジしてみてください!
お題についてもうちょっと詳しく
お題は「TrainTicketRails」という名前の、電車の改札口を簡易的にシミュレーションするRailsアプリケーションです。
「切符を買って電車に乗る」「目的の改札口で降りる」という動きをブラウザ上でシミュレートします。
ただし、運賃が足りなかったり、同じ駅で降りようとしたりすると、エラーになります。
上の画面は完成バージョンの動作ですが、前述のGitHubリポジトリからコードを落としてきた時点ではアプリはまだ未完成です。
そこでこのアプリを完成させるべく、解答者のみなさんに要件を満たすコードを書いてもらう、というのがこのお題のゴールです。
テストコードを書かずにテスト駆動開発(TDD)ができます
お題には最初からMinitestを使ったテストコードが付いています。
最初の状態ではアプリが完成していないので、以下のように当然テストが失敗します。
ちゃんと要件を満たすコードを書けば、テストがすべてパスします。
テストがパスしさえすれば、(コードの善し悪しはともかく)要件を満たしたコードを書いていることは証明できます。
つまり、解答者のみなさんはこのお題をテスト駆動開発(TDD)で解くことになるわけです。
TDDなのにテストコードは自分で書かなくていいので楽チンですね!
解答の提出はPull requestで
詳しい手順はREADMEに書いてありますが、解答はGitHubのPull requestを使って提出してもらいます。
Pull requestを使えばこんな感じで差分として表示されるので、レビューする側(つまり僕)もみなさんが書いてくれた解答を確認しやすくなります。
(注:上の画像は解答が見えないようにボカしてあります)
余談:お題の原案は「プロを目指す人のためのRuby入門」から持ってきています
この問題は現在執筆中の書籍「プロを目指す人のためのRuby入門」(2017年11月発売予定)で使用した例題がベースになっています。
ただし、本の中ではまったくRailsを使わない「素のRubyコード」として実装しています。
「素のRubyで書けるんだったら、Railsに移植するのも余裕でしょ」と思ったんですが、実際やってみると「Railsならでは」の制約やルールに苦しめられて、意外と苦戦しました。。
それはともかく、書籍が発売されたら、こちらもぜひチェックしてみてください!
まとめ
というわけで、このエントリでは2017年8月24日(木)に開催されるRails Developers Meetup #4の発表内容と、発表で使用するRailsアプリの紹介をしてみました。
「最近Railsを始めたばかりなんだけど、がんばって書いたのでレビューしてほしい」という初心者の方から、「こんなの楽勝、楽勝!完璧な俺のコードを見よ!!」という上級者の方まで、たくさんのご参加をお待ちしています!