Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ペアレビューは同期的でなくてもよくないですか?
Search
ten986
May 26, 2023
Programming
170
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ペアレビューは同期的でなくてもよくないですか?
Kyoto.js 19 にて
ten986
May 26, 2023
More Decks by ten986
See All by ten986
ANGEL Dojo 最終発表資料
ten986
0
1.1k
自作のEsolangでQuineを書いてみた
ten986
0
330
【解説付き】自作のEsolangでQuineに挑戦してみた
ten986
0
230
Other Decks in Programming
See All in Programming
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
590
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
3.5k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
Event is what happens
moro
2
770
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
210
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
200
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
460
Docker and Python
trallard
47
4.2k
Designing for Performance
lara
612
70k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Speed Design
sergeychernyshev
33
2.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
So, you think you're a good person
axbom
PRO
2
2.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Unsuck your backbone
ammeep
672
58k
New Earth Scene 8
popppiees
4
2.7k
Transcript
ペアレビューは 同期的でなくても よくないですか? 5/26 Kyoto.js @ten986
自己紹介 • 名前: ten986 ◦ 呼び: てん / てんきゅー •
株式会社ゆめみ 新卒2年目 • フロントエンドエンジニア ◦ バックエンドも書く • 最近はNext.jsとKotlinやってる • 6月末に東京に引っ越す
注意 • 今日登壇することになりました • 今日作りました ◦ 業務放り出して作ってました • js関係ないです •
元記事が書けたが1時間前です • スライドはさっきできました
今日話すことの要約 • 半同期的ペアレビューの提案 • Pull Requestにチェックポイントを設ける • チェックポイントまでは非同期でレビュー • チェックポイントの到達を同期し、全員到達したら次に向
かう • 非同期レビュー中に疑問点があれば、都度声を挙げて同 期的に解決する
背景 • 数人〜数十人の開発チーム • Pull Request(PR)のマージに 2人のコードレビューが必要 • あなたはレビュワーのうちの1人となっている
非同期レビュー • 簡単なPRの場合 • 2人のレビュワーがそれぞれ自由な時間に レビューするとよい • タイミングを非同期的に行えるので、 今回は非同期レビューと呼ぶことにする
非同期レビュー • 自分の時間でできる • 自分のペースでPRを読める • 自分の詳しくない範囲の質問はすぐにはできない • 総じて簡単めなPR向け
ペアレビューの導入 • 開発現場では、時折難しいPRが出てくる ◦ 仕様上難しい・実装上難しい、など・・・ • それを1人で非同期レビューで行うと効率が悪い • そこでペアレビューが使われる ◦
3人以上ならモブレビューとも
ペアレビュー • 2人で時間を合わせて、集まってレビューする • 疑問点に当たった時に相方にすぐ質問できるので、 お互い能力を補い合い、質のいいレビューを高速に提供 できる • 強制的に時間を作れるので、モチベーション面でも ◦
もう1人のレビュワーからの監視の目 • 難しめなPRで使うとよい
同期的ペアレビューと呼ぶ • ペアレビューは同期的になりがち • 「PRの概要」「読むコードの箇所」を逐一同期する • レビュワーの片方が音読し、もう1人が聞くイメージ • このような同期的に行われるレビューを、ここでは 同期的ペアレビューと呼ぶことにする
同期的ペアレビューは非効率 • ペアレビューを逐一同期して行うと・・・ • 簡単な箇所も同期的に読んでしまう ◦ PRの概要のごく簡単な部分は読み飛ばしたい • コードを読む際、人の順番に合わせないといけない ◦
人によって読む順も読む速度も違う ◦ ある箇所はAさんのが早い、別の箇所はBさんが早い ◦ 自分のペースでレビューした方が早い箇所が多い
同期的ペアレビューを改善する • 同期的ペアレビューの改善点は 同期的に行いすぎていることから来ていそう
同期的ペアレビューを改善する • 同期的に行いすぎない • ペアレビューする以上「レビュワー同士の能力を補完する ことで、高速に質のいいレビューを行う」 ことを犠牲にしたくない • 難しいPRといえど、簡単な箇所もある ◦
その箇所は非同期レビューで行った方が早い
半同期的ペアレビュー • ペアレビューなので、時間を揃えて集まる • PRにチェックポイントを作る • チェックポイントに到達するまで、 各レビュワーは非同期的にレビュー ◦ 疑問点や指摘点などが出次第必ず発言し、同期的に解決
• チェックポイントだけレビュワー間で同期 ◦ 到達時に報告、全員が到達したら次に進む
チェックポイント • 例えば以下のように設ける ◦ PRの概要まで ◦ PRの動作確認を読み、実行するまで ◦ コミットXを読み、レビューコメントをつけるまで ◦
コミットYを読み、レビューコメントをつけるまで ◦ コミットZを読み、レビューコメントをつけるまで
半同期的ペアレビューのポイント • 基本的に非同期レビューをするので、 簡単な場所の同期など余計な時間を使わない ◦ 同期的ペアレビューの欠点解消 • チェックポイント間の同期をするので、 レビュー時の疑問点の文脈を共有しやすい ◦
レビュワー同士の能力を補完する目的が達成できる
余談 • 同期しすぎることで起きる問題点は、全部「チェックポイン トを用意して非同期で読む」ことで解決できそうな気がし ます。 • 「読書会」なんかでも、各人が音読して回し読みするより、 チェックポイントだけ同期した方が理解早いかもしれない ですね。
今日話すことの要約(再放送) • 半同期的ペアレビューの提案 • Pull Requestにチェックポイントを設ける • チェックポイントまでは非同期でレビュー • チェックポイントの到達を同期し、全員到達したら次に向
かう • 非同期レビュー中に疑問点があれば、都度声を挙げて同 期的に解決する