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
5
7.1k
伝わるコードレビューのために
コードレビューをするときに意識していることをいくつか
KUROKI Shinsuke
March 09, 2018
Tweet
Share
More Decks by KUROKI Shinsuke
See All by KUROKI Shinsuke
冴えてるRailsエンジニアの育て方
skuroki
7
11k
ActiveAdmin Better Practices@関西Ruby会議06
skuroki
0
350
進行中の開発プロジェクトで増えていくテストを自動で回し続けるために行ったいくつかのこと
skuroki
11
45k
Refactoring Ruby Edition in-house reading
skuroki
0
160
ActiveDecorator導入の話
skuroki
5
260k
Other Decks in Programming
See All in Programming
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1.1k
バッチを作らなきゃとなったときに考えること
irof
2
540
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
500
React 19アップデートのために必要なこと
uhyo
8
1.5k
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
130
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.7k
Better Code Design in PHP
afilina
0
180
ML.NETで始める機械学習
ymd65536
0
240
Honoとフロントエンドの 型安全性について
yodaka
7
1.5k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
AWS Step Functions は CDK で書こう!
konokenj
4
620
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
Bash Introduction
62gerente
611
210k
A better future with KSS
kneath
238
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Typedesign – Prime Four
hannesfritz
41
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
We Have a Design System, Now What?
morganepeng
51
7.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
It's Worth the Effort
3n
184
28k
Making Projects Easy
brettharned
116
6k
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以上のことを教えても頭に入らない し、やってもらおうとしてもできない • 低減が十分に進んでいない場合、前に言ったことを また考えられず、同じミスをしてくる事がある • そういう状態なんだと思って、辛抱強くやるのが大 事
• (学ぶ側としては素振りが大事みたいな話し)
褒める • 良くないことの指摘だけしてると雰囲気が悪 くなってくる場合がある • 開発のテンション維持は大事 • フィードバックは正負両方有効 – 良い行動は強化したい
• 前言った事ができるようになってたらそれは ちゃんと言いたい
今日話したこと • コードレビューするときに気をつけている事 – 「具体的にどう困るか」に落として言う – カッとなって本人のところに行く – 習熟を意識する –
褒める