ソースコードリーディング会をやってみることにしました
以前、
というブログエントリーで、社内で行っている「技術情報キャッチアップ会」についてご紹介しました。
ただ、最近は各担当が業務優先になっていて、あまり開催ができていなかったので、もっと各自がモチベーション高くできそうな方法はないか、もっと業務にも活かせそうな別の取り組みはできないだろうか、とチーム内で話し合いを行いました。
今回はその話し合いと、そこで決まった新しい取り組みについてご紹介します。
新しい取り組みの案
今回のミーティングで新しい取り組みの案として出たのは下記の3案でした。
- テスト駆動開発(TDD)演習
- ソースコードリーディング会
- ワークショップ
実際に手を動かすような形式で、普段の業務からは少しだけ離れて学ぶ形式のほうがモチベーションが上がりそうという考えで案を出してくれました。
3つの候補から多数決(複数回投票OK)を取ってみたところ、「ソースコードリーディング会」を行うことに決まりました。
ソースコードリーディングの題材候補
ソースコードリーディングの題材の候補として上がったのは下記のとおりです。
- Terraform本体のソースコード
- Serverless Framework本体のソースコード
- Docker本体のソースコード
- Go言語の標準ライブラリのソースコード
- Vue / Nuxt / React などの本体のソースコード
- Swagger本体もしくはプラグインのソースコード
- PlantUML本体のソースコード
- Linuxコマンドのソースコード
- VSCode本体もしくはプラグインのソースコード
- GinなどのWebフレームワークのソースコード
Go言語で書かれているソースコードが候補として多かったのは、弊社でGo言語を扱うことが多いからだと思います。Go言語は比較的読みやすい言語だから良さそうという意見もあり、この中から「Go言語の標準ライブラリのソースコード」と「GinなどのWebフレームワークのソースコード」で多数決と取ったところ、
「Go言語の標準ライブラリのソースコード」を対象にすることに決まり、さらにどのパッケージを読むかの多数決で、まずは testing
のパッケージを対象とすることになりました。
※ 途中の「じわる…」リアクションは「sortは相当難しいって!」という kuniの あるチームメンバーのダジャレに対するもの
ソースコードリーディング会で期待したいこと
早速来週から第1回目のソースコードリーディング会を行う予定なのですが、このリーディング会を通じて個人的に期待したいこととして
- 標準ライブラリの仕様や実装に対する理解が深まる
- 標準ライブラリを読むことで、「Go言語らしい書き方」を学ぶことができる
- 経験が豊富で高スキルを保有しているエンジニアが、どのようにソースコードを読んでいるのかというナレッジをチーム内で共有できる
- モブプログラミングを通じて複数人の視点で読むことで、1人では気づかなかったことに気づく
などがあります。
期待通りの結果が得られるかやってみないとわかりませんが、今からどのような会になるか非常に楽しみです!