これは ドリコム Advent Calendar 2017 の24日目です。
23日目はアオイさんによる、 コンシューマゲームの経験しか無い人間がスマートフォンゲームプロジェクトに飛び込んだ時のお話 です。
17新卒サーバーサイドエンジニアの宇佐見です。
本記事は2017/12/09(土)にTECH PLAY SHIBUYAで開催された「Rails Developers Meetup 2017」のイベント登壇レポート記事です。弊社のエンジニアが登壇しましたので、その内容を中心にご紹介します。
Rails Developers Meetupとは?
月1でRails導入企業・Rails開発者が集まり、Railsコミュニティの活性化と技術交流を目的とした勉強会です。
今回は拡大版ということで、総勢21名の方が登壇され、参加者の方は170名の募集に338名の応募があったようです。会場はTECH PLAY SHIBUYA、大阪会場への配信もされており大盛り上がりのイベントでした。
twitterではハッシュタグ#railsdmで感想や共感のtweetのやりとりがされていました。
詳しくはこちらを参照ください。
また当日発表されたプレゼンはTECH PLAYさんのまとめ記事をご参照ください。
当日の流れ
5分と25分のプレゼンがあり、1タームは25分を2本、その後5分の発表を4本で構成されており、これを3ターム+25分×2本というみっちりなスケジュールで会が進んでいきました。制限時間が過ぎると鐘がなって強制終了です。
このスケジュールの中、ほとんど遅れることなく会が進んでいったことに驚きました、運営の方々素晴らしいです…
また休憩時には飛び込みLTで発表されている方が数人いらっしゃいました。
ここからは弊社エンジニアの発表を中心に私がイベントに参加した感想を含め紹介していきたいと思います。
RSpec しぐさ/大仲 能史
大仲からはRSpecの歴史の話でした。発表資料はこちらをご参照ください。
RSpecのREADMEを見ると、「Behaviour Driven Development for Ruby」と書いてあり、これを訳すと「振る舞い駆動開発(BDD)」ということになります。
大仲が「付録Cを読んだことがある人〜?」という質問に会場では3分の1ほどしか手が上がらず、自分も読んだことがなかったので耳が痛かったです…
※付録Cとは、テスト駆動開発(以下TDD)の考案者 Kent Beck が記した原典『Test-Driven Development by Example』を和田卓人氏が新たに訳し直した『テスト駆動開発』の内容の一部です。
テストには3種類あって「Developer Testing」「Customer Testing」「QA Testing」がありTDDは開発者が行う、開発促進のためのテストである「DeveloperTesting」に属しています。TDDの効果は「テスト可能な設計」「コード利用者の視点」「インターフェイス設計」があり、この効果から見るとテストではなく、「設計技法」であることがわかります。テストという言葉からQAテストのようなことを想像する人がいるので、語彙を変えようとなり、語彙を変えたならツールも変えようということでRSpecができました。さらにRSpecはテストコードの基本ステップである「Arrange(準備)」「Act(実行)」「Assert(検証)」という語彙を「Given(〇〇な状況or状態で)」「When(××をしたら)」「Then(△△が起きる|なる)」変えていき、これがBDDを表現している語彙だと大仲は解釈しているとのことでした。これらの語彙は入れ子にすることができるので順不同にできます。この例えを酔っ払っている状況として例えた説明が面白いのに加えてわかりやすかったです。
また大仲が普段意識している、「expect().toを書く場合には、specifyを使う」や「事前条件はbeforeで整える」というところに納得感が強く、自分がいかに読みやすさまで気を使えていないのがわかりました。今回得た知見は業務にも活かしていきたいと思います。
外傷的Elixir/井上 幸亨郞
Elixirとは何?から始まり、業務で使う上で気をつけていることを話されていました。発表資料はこちらをご参照ください。
ElixirはRubyっぽい、さらにRailsチックなPhoenixというフレームワークがあります。
「じゃあRubyが書けるならElixirも書けるよね?」
それは本当なのかということで、Elixirの歴史を振り返ると元々はClojureで、見た目や関数名・モジュール名などの標準ライブラリはrubyっぽいが、中身は関数型言語であり、データはimmutable(不変)です。つまりRubyとは違うのですとのことでした。
私自身、エンジニア歴=Ruby歴、Rails歴のため関数型言語は使ったことがなく、発表を聞いていて関数型言語の思想について知るいい機会となりました。
その他の方々の発表
今回はパーフェクトRuby on Railsの著者である前島 真一さん、橋立 友宏さん、Qiitaの記事で有名な伊藤 淳一さん、Rubyのコミッターの国分 崇志さんなど、非常に有名な方々の発表を間近で聞け、また私と同期である17新卒の方がLTをしているなど、とても刺激のある1日でした。
内容面に関してはDocker関係の発表が多かったような印象を受けました。
最後に
正直すべての発表を完璧に理解できたわけではないですが、新たな知見も増え、もっと多くのことを知りたい、自分からも発信していけるようなりたいと強い刺激を受けた充実した1日でした。
来年も大規模で開催されるとのことで、とても楽しみです!