Blogaomu

WEBアプリケーション開発とその周辺のメモをゆるふわに書いていきます。

kanazawa.rb meetup #56 に参加しました #kzrb

kzrb.doorkeeper.jp

今回は新生活の季節ということでペアプログラミングを通して勉強しようという回でした!

45分 * 3セッションで1セッションごとにペアを変えて、ソースコードも0から作り上げるという形でした。題材はライフゲームです。googleで検索したらライフゲーム動き始めるの面白いw

ここからはペアプロ3セッションを終えて私が感じたことを書いていきます。

よかったこと

  • 自分では気付けないことをペアに指摘してもらえる
  • 単純に他の人はこう考えるのか〜と勉強になった
  • Rubyの便利メソッドを思い出させてくれた
  • AtomとかVSCodeでやるのがペアプロではよさそう
    • とりあえず書き始められて保存ができる
    • 操作に手間取ってる間にも時間が進んでもったいなかった(VimEmacsだと使い慣れてないと厳しい)
  • 他の人の癖が見えて面白い
    • スペースとかインデントを気にする/気にしない
    • 名前のつけ方

悪かったこと

  • 45分でどこをゴールにするかというところで本当はこうしたらいいんじゃないかって思うところをスルーしてしまった
    • 動くことを優先して、自分の中で妥協した部分があった
    • 時間あったら後でリファクタしたい、というようにペアに伝えておくのがよかったのかなあ?
  • 先に方針を決めるのがいいのか、とりあえず書いてみるのがいいのかっていうのがふわっとしたまま進んでしまった
    • ある程度モデルやインターフェース決めて取り掛かるのが良さそうだった
    • どうしましょうかねえと悩み続けてもしょうがないので、何かしらたたき台を書いてみるというのもありかもしれない
  • Ruby結構忘れてる

その他感想

45分続けてペアプロやるとだいぶ疲れることが分かりました(;^ω^) 考えながら喋りながら手を動かし続けるのってなかなか消耗するし、人が見ていると言う緊張感もあったりして精神的にも疲れやすいと思いました。(なので適度に休憩を挟む構成になっているのだろう)

設計で悩ましかったのは、セルの次の状態を確定するのに周りのセルの状態を参照して行うのですが、それをセル自身にやらせるのか、グリッドにやらせるのかというところでした。あと、表示については別のサービスに任せておく(Viewの責務とする)的な考えもあるかもなーと終わってから考えていました。ライフゲームというシンプルな題材ですが、いろいろ方法があって奥深いですねえ。

パターンマッチあれば判定部分がもう少し楽に書けそうっていうのはありました。

懇親会

飲むのと話聞くのに夢中で1件目の写真撮るの忘れてましたw

Instagram

のどぐろ茶漬