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