Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
伝わるコードレビューのために
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
KUROKI Shinsuke
March 09, 2018
Programming
7.4k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
伝わるコードレビューのために
コードレビューをするときに意識していることをいくつか
KUROKI Shinsuke
March 09, 2018
More Decks by KUROKI Shinsuke
See All by KUROKI Shinsuke
冴えてるRailsエンジニアの育て方
skuroki
7
11k
ActiveAdmin Better Practices@関西Ruby会議06
skuroki
0
410
進行中の開発プロジェクトで増えていくテストを自動で回し続けるために行ったいくつかのこと
skuroki
11
45k
Refactoring Ruby Edition in-house reading
skuroki
0
230
ActiveDecorator導入の話
skuroki
5
260k
Other Decks in Programming
See All in Programming
Go 1.27 における memory allocation の高速化
andpad
0
300
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
280
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
Android CLI
fornewid
0
230
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
100
ソフトウェアラスタライザ
fadis
1
480
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
370
メールのエイリアス機能を履き違えない
isshinfunada
0
250
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
240
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
260
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
360
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
A Modern Web Designer's Workflow
chriscoyier
698
190k
A designer walks into a library…
pauljervisheath
211
24k
エンジニアに許された特別な時間の終わり
watany
108
250k
Accessibility Awareness
sabderemane
1
180
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Are puppies a ranking factor?
jonoalderson
2
3.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
440
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Transcript
伝わるコードレビューのために 2018/03/09 Aiming 黒木 慎介
自己紹介 • Aiming大阪スタジオ(ここ)勤務 • 新規タイトルのチームでwebエンジニアの リーダー • RailsでAPIサーバー書いたり、k8sでサー バー構成書いたり、…
いきなりですが宣伝 • Rails Developers Meetup 2018に出ます • 3/24,25 – 私がしゃべるのは25日
• 東京の会場は埋まっちゃってるけど大阪の 中継会場(ここ)は両日まだ席あります!! • 私はRailsエンジニアの採用〜教育について の話をします – 今日の発表はその内容から一部先出しです
今日話すこと • コードレビューするときに気をつけている事 – 「具体的にどう困るか」に落として言う – カッとなって本人のところに行く – 習熟を意識する –
褒める
「具体的にどう困るか」に落として言う • コードレビューで開発のスピードを落としてし まう要因→やりとりの回数 • PRを提出したメンバーは次の作業に着手す る – ので、常時PRを監視しているわけではなく、やり とりをした分だけのタイムラグが積み上がる
– また、PRの修正と次に始めた作業を行き来する とスイッチングコストがかかる
やりとりの回数を減らしたい • では、どのようなやり取りが回数を重ねてし まうのか? – 書き方などの宗教戦争 • チームの規約を決めてRubocop(とか)に働いてもら いましょう –
合意形成までが長い • 今日はこっちの話 • 昔見たコードレビューの話をします
昔見たコードレビュー(1) 「これなんで実装の片方しかテストしてないの」 「ロジック変わらないんで」 「でも実装は別々に書いたんでしょ」 「不安に思ったところはカバーできてるんで」 「いやでも他の人が修正して壊れるかもしれないよね」 「んーまあ僕は不安じゃないですけどじゃあ書きますわ」
昔見たコードレビュー(1) • たぶん最初から具体的にどこがどう不安な のかを指摘できていれば、1-2往復くらいで 済んだ
昔見たコードレビュー(2) 「ざっと見た感じHogeパターンを使ったほうが良さそう」 「大げさじゃないですか」 「どのへんが?」 「パターン使わなくても十分見通し良いと思うんで」 「うーん、でもこれSRP違反だよね ごめん見た目の問題じゃな かった」 「じゃあまあもう少し責務が明確になるようにします」
昔見たコードレビュー(2) • 最初の指摘がふわっとしすぎ – 議論によって問題点が明白になるプロセスは必 ずしも否定すべきものでもない – でもSRP違反を一発目に言えてればもっと速 かったよね
昔見たコードレビューたち • 類例多数 • 積み重なる不毛感 • 自分がレビューするときは一発で合意に到 れるように、何がどう困るのかをちゃんと言う ようにしようという決意
自分の最近のレビュコメ
自分の最近のレビュコメ
自分の最近のレビュコメ • まあ割と終始こんな感じ – コード例を叩きつけたりもする • 結構時間はかかってますが、やりとりはほぼ 1往復に納まってます – 他の条件(メンバーとかチームとか)もあるけど
ね
応用:習熟度を見て判断 • レビュイーのスキルによっては「もうこれにつ いては丁寧に説明する必要はなさそう」と判 断できる場合もある • 丁寧なレビュコメは時間かかるので、そう判 断できるときには省略もする
カッとなって本人のところに行く • そもそも文字のやり取りって結構つらくない ですか – 情報量が少ない – 同じ言葉でも棘が立って見えることがある • ならば、文字のやり取りをやめればよい
– 本人のところに行って直接話しましょう – なんだったらペアプロしましょう
直接話すと • 嬉しいこと – 反応が速い – コミュニケーションの手段が広がる • 図を書いて説明してもいい •
その場でコードを書いて見せてもいい – 相手の反応を見られる • どこで思考が詰まるか、快・不快になるかを観察でき る • それに合わせた話し方ができる • 悲しいこと – 記録に残らない • あとで話したことをコメントに残しても良い
習熟を意識する • 人間が1つの事に対して行える思考の量に は限界がある – 私はこれをMPと呼んでます • 同じことを考えたり意識するのにかかるMP は、繰り返すことにより低減していく •
そうして余剰するようになるMPで新たに追加 で考えることができるようになる • でもこの低減はすぐには起きない – 繰り返すことが必要
習熟を意識する • 相手の最大MP以上のことを教えても頭に入らない し、やってもらおうとしてもできない • 低減が十分に進んでいない場合、前に言ったことを また考えられず、同じミスをしてくる事がある • そういう状態なんだと思って、辛抱強くやるのが大 事
• (学ぶ側としては素振りが大事みたいな話し)
褒める • 良くないことの指摘だけしてると雰囲気が悪 くなってくる場合がある • 開発のテンション維持は大事 • フィードバックは正負両方有効 – 良い行動は強化したい
• 前言った事ができるようになってたらそれは ちゃんと言いたい
今日話したこと • コードレビューするときに気をつけている事 – 「具体的にどう困るか」に落として言う – カッとなって本人のところに行く – 習熟を意識する –
褒める