Reading Gauche VM インストラクション全制覇

Gauche のコードを読んで勉強しようという Reading Gauche というプロジェクトに参加している。
そこでは最初ひらメソッドでコードを読んでいたのだ、途中から方針を転換して Gauche VM のインストラクションから構造を把握しようという流れになった。


参加者持ち回りで

  • インストラクションを一つ選び規定のフォーマットでページをまとめる人
  • インストラクションに関連した関数などをひらメソッドで堀り進める人
  • まとめをレビューする人

という役割分担で進めていた。


そして今日ついに全てのインストラクションを読み終えた。成果はインストラクション一覧に。

プロジェクトメンバーの yamanetoshi さん、knishii2156さん、naoya_t さん、ココサブさんお疲れ様でした。

続ける工夫

オンラインでの Reading なので何回か停滞しかけた。何とか工夫して乗り切れて良かった。


仕事や学校が忙しくて手が回らず遅れたり止まったりするのはしょうがない。しかし実は以下のような意図しない停滞が存在するのに途中で気づいた。

  • A さんは B さんの反応を待っているが、B さんはそれに気づいていない
  • A さんと B さんがコメントを出し合い。何となく議論が尻切れになってしまった。
  • 今回のインストラクションまとめの担当は誰か分からない

など。


これらの問題は

  • インストラクションまとめ作業を「まとめフェーズ」「ひらフェーズ」「レビューフェーズ」に分け、各フェーズ完了時に担当者が、次の担当者に声をかける
  • 担当表を作る。誰が何を担当しているか。アクティブなフェーズは何か?
  • 相手に反応して欲しいときは以下のような形をとる。
    • 名指しで: xx さん
    • 質問の形: xx に関してどう思いますか?
    • 期限を設ける:週末までにつっこみがなければクローズします

で回避した。

感想

この Reading の当初の目的は

  • shiro さん(神)のコードを読んで勉強しよう
  • Gauche の速さの秘密を知ろう

だった。これらはある程度達成できたと思う。


それ以上に有益だったのは「コードを読む力」がついた事。あれくらいの規模のコードを読むのは苦痛だったり挫折しがちだったのだが、皆で読み進めるので意外と楽しかった。


というわけで今日で Reading Gauche 卒業。