mixi 2Days Challengeに参加してきました
8/31と9/1の2日間、mixi 2Days Challengeなるものに参加してた。 ブログを書くまでが遠足と言われたので、ついでにこれを機に技術ブログ始めてみることに。
mixi 2Days Challengeとは
mixiさんが主催してる、TDD ChallengeとBug Shooting Challengeの二日間で構成されてるイベント。
もともとは3Days Challengeで三日目にGit Challengeなるものがあったが、なんでも土日にしてくれという声が多くて土日の2日間にしたらしい。 個人的にはそのGit Challengeもやりたかったところではあるけど、まあ仕方ない。
競プロとかSECCONとかそういったものが割かし好きだったので、おっおもろそうやんけと応募。選考通ったのはギリギリ感あったけど。
TDD Challenge
TDDとはTest Driven Development(テスト駆動開発)の略で、テストケース書いてちゃんとテスト通るか確認して開発しようねっていうイベント。 言語はRubyで、テストにはminitestっていうのを使用した。
内容としてはぶっちゃけ競プロと一緒で、課題を解くプログラムを実装するだけ。ただその過程でテストデータを自分で用意して、ちゃんとテストが通るか確認を怠ってはいけない。 当然コーナーケースとかそういうのもちゃんと確認する。
競プロで無意識にしているテスト駆動を、ちゃんとしたライブラリ使って確認するというのはやったことが無かったのでかなりいい勉強になった。というか多分競プロ強い人はこういうことしっかりしてて、動作確認を秒で終わらせてるから早いんだろうなと。
調べたらC++でもBoost.Test
とか、Google Test
とかあるらしいので気が向いたら実装しよう。
あと二人一組でペアプロをしたのも初めてでいい経験になったと思う。
Bug Shooting Challenge
Ruby on Railsで構成されたWebアプリに含まれているバグを修正しましょうっていうイベント。こっちも二人一組で活動する。
なんでもmixiさんではこういったバグ修正を専門とするチームが存在するらしいので、それの体験みたいな感じ。課題が3つあって、ユーザからのお問い合わせを基にバグを調査していく。
WebアプリはRailsで、ログにはHadoopというDBっぽい何かを使った。
1日目は特に順位とか無かったけど、2日目はバグの修正内容や原因究明のためのログ調査内容などによって点数がついて、MVPとかが決まる。
自分のペアが組み合わせとして良かったのか、まさかのMVP獲得。しかもメダルまで用意してくれてたみたいで。こんな自分が貰うてええんか・・・?って感がすごい。
自分のしたことと言えばログを調査して、多分こういう脆弱性だろうなぁ~~ってレベルで推測しただけ。そこからペアの人が実際に脆弱性を突いてみてくれたので、バグの再現と修正がかなりスムーズにできたと思う。今思い返すと流れとしては結構いい感じだったのではないだろうか。ほとんどペアの人のおかげみたいなところもあるけど。
あと、事前にDockerインストールしてくださいっていう話だったらしいけど、自分のメールとかSlackとか見返してもそんな発言一つもなかったような気が・・・?チュートリアル中にどちゃくそ急いでインストールして間に合ったからよかったものの、死ぬほど焦った・・・。
総括
2日ともとにかく楽しかった。交通費も宿泊も支給してくれたし、昼飯も1日目は紐引っ張って温めるタイプの弁当(初体験)だし、2日目は釜飯(茶漬け用のダシがうまい)だしで最高。お菓子も飲み物もいっぱいですごい待遇だった。すごい(小並感)
おまけ
このイベントのために東京行くにあたって、羽田空港と成田空港を間違えた。地獄。頼むから東京(成田)とかいう表記今すぐ滅びろ。千葉(成田)に改名しろ。