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
5
7.3k
伝わるコードレビューのために
コードレビューをするときに意識していることをいくつか
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
390
進行中の開発プロジェクトで増えていくテストを自動で回し続けるために行ったいくつかのこと
skuroki
11
45k
Refactoring Ruby Edition in-house reading
skuroki
0
200
ActiveDecorator導入の話
skuroki
5
260k
Other Decks in Programming
See All in Programming
ぼくの開発環境2026
yuzneri
0
240
AI時代の認知負荷との向き合い方
optfit
0
160
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
Raku Raku Notion 20260128
hareyakayuruyaka
0
350
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
250
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
100
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
組織で育むオブザーバビリティ
ryota_hnk
0
180
CSC307 Lecture 03
javiergs
PRO
1
490
Data-Centric Kaggle
isax1015
2
780
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
2.7k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Scaling GitHub
holman
464
140k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
WCS-LA-2024
lcolladotor
0
450
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
Designing for Timeless Needs
cassininazir
0
130
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Writing Fast Ruby
sferik
630
62k
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以上のことを教えても頭に入らない し、やってもらおうとしてもできない • 低減が十分に進んでいない場合、前に言ったことを また考えられず、同じミスをしてくる事がある • そういう状態なんだと思って、辛抱強くやるのが大 事
• (学ぶ側としては素振りが大事みたいな話し)
褒める • 良くないことの指摘だけしてると雰囲気が悪 くなってくる場合がある • 開発のテンション維持は大事 • フィードバックは正負両方有効 – 良い行動は強化したい
• 前言った事ができるようになってたらそれは ちゃんと言いたい
今日話したこと • コードレビューするときに気をつけている事 – 「具体的にどう困るか」に落として言う – カッとなって本人のところに行く – 習熟を意識する –
褒める