Coderetreatとはイベント告知のページによると以下のようなイベントです。
Coderetreat は、プログラマのための練習、学習のためのイベントです。同じ課題をペアプロで実装しながら、プログラミング、設計、テストなどの技術を学びます。
特徴を挙げると・・・
- 全員がライフゲームという題材に取り組む。
- ペアプログラミングをしながら実装する。
- 開発45分で振り返り15分で1セッション。
- セッションのたびにペアを入れ替える。
- 毎回コードを捨てて、一から作り直すという作業を繰り返す。
- 言語は固定せずにいろんな言語で実装する。
- 実際、私はRuby/C/Javaで実装しました。
- セッションのたびに追加課題が与えられる。
- 配列を使うなとか、if文を使うなとか、セッター・ゲッターは使うなとか。
このイベントはかなり斬新で、すごい楽しかったです。
これをやることによって何が起こるかというと
- ペア作業を繰り返すことで、いろんな人の設計アイディアが合成されて、セッションを進むごとに設計が洗練されていきます。
- 実際、最初のライフゲームのデータ構造は地味な2次元配列でしたが、途中からクラスベースで多次元に対応できるデータ構造になっていきました。
- 普段使わない言語で実装することで、違った視点を得られたり、違う言語ならではの体験ができます。
- 特に、私は組み込みCでのTDDに取り組んでいるので、Rubyでのコードの記述量の少なさ、本質的なコードに集中できることの生産性はすごいうれしいと分かりました。
- C言語の場合、言語的な制約をカバーする要素が多く、Rubyのような生産性はなかなか出せません。
- ただし、C言語でも(Rubyには及ばないまでも)早いサイクルでTDDを回すことはできますが。
- 実装の制約をかすことで、よりオブジェクト指向らしいきれいな設計に収束していきます。
- オブジェクト指向養成ギブスですね。
今回のイベントに参加したおかげで、ペアプロ、TDD、オブジェクト指向設計の面白さや大切さを再発見しました。
今、組み込みCのTDDの読書会をやっていますが、区切りの良いタイミングで、今回のイベントのように演習中心でペアプロをする会をやれたらいいなという思いが強まりました。その時は、組み込みらしく実機も用意して、dual targeting testを実践すると。
最後になりましたが、場所・食事・おやつのスポンサーのグロースエクスパートナーズ株式会社、株式会社 情報システム総研-、株式会社 スペイシーズの皆様に感謝したいと思います。素晴らしいイベントをやっていただいてありがとうございました!
0 件のコメント:
コメントを投稿