ペアプロするなら
git-duetを使おう
2019/4/20
.NETラボ 勉強会 2019年4月
なかしょ(中島進也)
Profile
• 名前:なかしょ(中島 進也)
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、アジャイル開発、Xamarin、Chatbot、Tizen
• 主な参加コミュニティ
JXUG、.NETラボ、Cogbot、Teratail、TestNight
XP祭り2019実行委員
※本資料は私個人の意見であり、所属企業・部門見解を代表するもの
ではありません。
2
ペアプロしていますか?
3
ペアプログラミングの5つのいいこと
• 新しい技術や開発パターンを効率的に身につけられる
• ちょうどいい緊張感がコードの質も生産性も上げてくれる
• バス係数が上がり、神デベロッパーに依存しなくてよくなる
• masterブランチでの開発からの即デプロイが可能になる
• 開発パターンや知識の指数的拡散
4
参考:ペアプログラミングの5つのいいこと(https://medium.com/product-run/ea618415f46f)
ペアプログラミングが流行らない理由
• ペアプログラミング経験者がいないと導入が難しい
• 慣れるまでは、かなり疲れる
• リモートワークやフレックスタイムが難しい
• 初めて導入する時は、短期的に開発のペースが落ちることも
5
参考:ペアプログラミングの5つのいいこと(https://medium.com/product-run/ea618415f46f)
ペアプロはいいぞ!
6
ペアプロしたら証跡を残そう
• 誰がコードを書いたのかコミットログは必要
• ペアプロしたら、そのコードを触った人は2人
• 通常のgitコマンドで記録できるCommitterは1人
• そこでgit-duet
7
8
https://github.com/git-duet/git-duet
git-duet
git-duet とは?
• gitリポジトリの履歴にペアの名前を残すgitの拡張コマンド
• Linux、Mac、Windowsに対応
• インストール方法(Mac)
$ brew tap git-duet/tap
$ brew install git-duet
9
プログラマの情報を設定
• 環境変数を設定
export GIT_DUET_AUTHORS_FILE=/Users/nakasho/.git-authors
• 定義ファイルを編集
.git-authors
10
authors:
sn: Shinya Nakajima
nk: Nakasho
email:
domain: example.com
ペアを設定
$ git duet sn nk
GIT_AUTHOR_NAME='Shinya Nakajima'
GIT_AUTHOR_EMAIL='s.nakajima@example.com'
GIT_COMMITTER_NAME='Nakasho'
GIT_COMMITTER_EMAIL='nakasho@example.com’
$ git solo sn
GIT_AUTHOR_NAME='Shinya Nakajima'
GIT_AUTHOR_EMAIL='s.nakajima@example.com'
11
authors:
sn: Shinya Nakajima
nk: Nakasho
email:
domain: example.com
git-duet によるcommitとそのログ
$ git duet-commit -m 'hoge foo bar’
[master 500ad51c] hoge foo bar
Author: Shinya Nakajima <s.nakajima@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 hoge.txt
• git ログ
commit 500ad51c5df373fb2be8033b6891c33875f731eb (HEAD -> master)
Author: Shinya Nakajima <s.nakajima@example.com>
Date: Sat Apr 20 12:56:59 2019 +0900
hoge foo bar
Signed-off-by: Nakasho <nakasho@example.com>
12
ペアの情報がcommit
ログに書き込まれてい
る。
git-duet のコマンド
• git duet
• git solo
• git duet-commit
• git duet-revert
• git duet-merge
• git duet-install-hook
• git duet-pre-commit
13
14
https://marketplace.visualstudio.com/items?itemName=PhilAlsford.git-duet-vscode
git-duet for VSCode
まとめ
• ペアプログラミングはチームを成長させる
• ペアでの作業のcommitは対応した2人の名前を残すべき
• git-duetを使って証跡を残そう
• 「git-duet for VSCode」を使用して「Visual Studio Live
Share」でのペアプロに活用しよう
15
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
16

ペアプロするならgit-duetを使おう