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
KUROKI Shinsuke
March 09, 2018
Programming
7.3k
5
Share
伝わるコードレビューのために
コードレビューをするときに意識していることをいくつか
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
400
進行中の開発プロジェクトで増えていくテストを自動で回し続けるために行ったいくつかのこと
skuroki
11
45k
Refactoring Ruby Edition in-house reading
skuroki
0
220
ActiveDecorator導入の話
skuroki
5
260k
Other Decks in Programming
See All in Programming
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
3Dシーンの圧縮
fadis
1
540
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
18
7.6k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
220
OSもどきOS
arkw
0
350
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
140
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
今さら聞けないCancellationToken
htkym
0
210
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
11
3.1k
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
290
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
300
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
190
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Music & Morning Musume
bryan
47
7.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
340
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以上のことを教えても頭に入らない し、やってもらおうとしてもできない • 低減が十分に進んでいない場合、前に言ったことを また考えられず、同じミスをしてくる事がある • そういう状態なんだと思って、辛抱強くやるのが大 事
• (学ぶ側としては素振りが大事みたいな話し)
褒める • 良くないことの指摘だけしてると雰囲気が悪 くなってくる場合がある • 開発のテンション維持は大事 • フィードバックは正負両方有効 – 良い行動は強化したい
• 前言った事ができるようになってたらそれは ちゃんと言いたい
今日話したこと • コードレビューするときに気をつけている事 – 「具体的にどう困るか」に落として言う – カッとなって本人のところに行く – 習熟を意識する –
褒める