2020年11月7日(土)に、こちらのイベントに参加させていただきました〜
ここ最近の週末は、GolangでLeetCodeの問題を解くか、Kubernetesのclient-goのソースリーディング・動作確認を続けています。一方で、ずっとひとりで学習を続けているので、たまには違った視点が欲しいなと思い、腕試しを兼ねて同イベントに参加してみました。
イベント概要
平たくいうと、ライフゲームというお題をみんなで実装してみましょうというものです。
但し、以下のようなルール・制約があります。
- 実装45分、振り返り15分の計60分のサイクルを、6回繰り返す
- 使用する言語・開発環境は自由
- 基本はペアプロ、慣れたり気分転換したくなったらモブプログラミングで!
- 45分経ったら、そのコードは破棄!
45分ごとに頭も気持ちもコードもリセットするため、いろいろなチャレンジができるチャンスでもあります。
自身の行動記録
覚えている範囲でメモ。ちなみに開発環境は、TDDのトレーニングで有名なcyber-dojoを主に使用しました。
Iteration 1 : まず慣れる
まずはTDDを忠実に実施することで、ライフゲームの仕様の理解とイベントのルールへの慣れを優先しました。ちなみに、言語・テストツールはJavaScript + Jestでした。
Iteration 2 : 設計を考える
次はJava + JUnitで、オブジェクト指向の観点から設計を意識して進めました。このあたりでライフゲームの実装イメージが掴めた感じ。
Iteration 3 : Golangでやけど
配列操作の都合と、自身が最近学んでいることを試してみたいことから、Golang + testingをチョイス。しかしながら、人数の都合でトリオを組んだメンバーが初Golangだったため、言語の勝手で詰まってしまい、私が言語仕様を説明している間にタイムアップ (´・ω・)
Iteration 4 : Golangおかわり
Iteration 3を受けて、Golangを試したい!という方が他にもいたため、再度チャレンジ。
最初の5分は、時間の節約と言語仕様の説明を兼ねて、私がIteration 3での実装内容を復元し、残りの時間でみんなでワイワイする形に。完了のイメージがはっきりと見えてきたところでタイムアップ。45分はかなり短い。
Iteration 5 : Clojureに散る
なぜかClojureをやろうということになって、モブプログラミングで試したものの… そもそも書き方が分からない、知りたいことがまるで検索で引っかからない(ググラビリティの低さ)、説明を読んでも意味が分からないと、文字通りの完敗。
Iteration 6 : Pythonで完成
最後は全員でモブプログラミング。リスト内包実装など様々なテクニックを皆さんから教えてもらい、時間内についに完成!
ちなみに私は、純粋に体力が尽きてしまい、このiteration途中でコーディングから離脱してアイデア出し係に。6 iterationはかなりハード。
感想
- 参加者と運営の皆さんのホスピタリティのおかげで、45歳でも多くのことを学べました。感謝。
- Golangの独習内容は、他者に説明できるレベルになっていたことを確認できました。
- 久々に会社以外のIT系の人と直に話せたため、かなりのリフレッシュになりました。
おまけ
株式会社アトラクタ様のおかげで、美味しいハンバーガーをいただきました。本当に感謝です。
お店はこちら。