この記事はZOZO Advent Calendar 2024 シリーズ7の5日目の記事です。
はじめに
先日技術力向上を目的とし、業務のコードとは別にチームの先輩とペアプロをしました
ペアプロにも様々な進め方があると思いますが今回やったペアプロが面白くかつ学びに繋がったので紹介してみよと思います
ペアプロとは
ペアプログラミング(ペアプロ)とは、2人の開発者が1つのコンピュータを共有し、コード書く"ドライバー"と、コードや設計などに対してアドバイスをする"ナビゲーター"に分かれ協力してコードを書く手法です
進め方
今回は自分がドライバー、先輩にナビゲーターをやってもらいました
VSCodeのLive Shareという拡張機能を使って
お題(実装するもの)
まずはお題を決めます、基本的になんでもいいのですが今回は自作のJSON.stringify
作成することにしました
テストを書く
今回はいきなり完成させるのではなく、仕様を分解してテストとして書き出してもらいそのテストを一つ一つパスさせることで最終的に完成を目指すテスト駆動開発っぽい進め方を取りました
なので、VSCodeのLive Shareという拡張機能を使ってエディタを共有し先輩にテストを書いてもらいます
ちなみにテストは以下くらいのかなり細かい粒度で書いてもらいました
it('空のオブジェクトをシリアライズすると"{}"になる', () => {
expect(stringify({})).toBe("{}");
});
it('trueを渡すと"true"になる', () => {
expect(stringify(true)).toBe("true");
});
実装
テストを元に自分の方で実装を進めていきます
沈黙な時間が続いてしまうとペアプロをやる意味が薄れてしまうので、実装する際"これからどのような実装をするのか","今どのような実装をしているか"などの思考を常に声に出すことを意識しながら進めました
わからない部分は都度質問し、必要に応じて調べていきます
一発で答えが出てきてしまう可能性があったので、今回は調べる際基本的にMDNのみを使うなどのルールも事前に作りました
完成
テストを一つ一つパスするための実装をしているとどうしてもコードが冗長になってしまうので適宜リファクタも挟んでいきます
テストと実装を複数回繰り返し、仕様を全て網羅することで最終的に実装完了します
感想
特に良かったなと思った部分は"思考を常に声に出す"ということです
普段自分がいかに何も考えずにコードを書いてることを痛感できたり、間違って覚えていた部分をただしてもらうことができたり、言語化する能力が培われたり
など様々なメリットがりました
おわり
今回はやって良かったペアプロについて簡単にまとめてみました!
ペアプロにも様々な進め方があると思うので、いろんな方法でのペアプロも試してみようと思います
ペアプロをより有意義な時間にするために以下を参考にしたので興味がある方はぜひ読んでみてください!