コードレビューと焼肉の関係 〜難しいコードレビューのコツ〜


# Code Review Meetup #2 関西でもコードレビューで集まろう 資料

恩師 ( @skuroki@github さん ) に背中を押してもらって、LTに登壇することになったので、Qiitaでスライド作成。

Connpass :https://sideci.connpass.com/event/79614/

---

# コードレビューは時に難しい。

---

# コードレビューに時間がかかると、焦る。

---

# なぜか？

---

# エンジニアの生産性は、ただでさえ計測しにくいものなのに。レビューともなれば、なおさらだ。


---

# 「レビューに時間がかかる」=「何も生み出していない感」を感じてしまう。

---

# 難しいレビューの難しさというのは、ここにあると思う。

---

# ところで

---

# コードレビューは焼肉だ。

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/3b43f0eb-d5e9-837d-3bc3-42aae7056961.png)


---

# 美味しいカルビの時もある。

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/21dcebcb-f5b3-778f-4f63-eb30bf2bdba0.png)

---

# 噛み切りにくいホルモンのときもある。

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/563c08f1-9318-3cae-32a9-af7e4c1304bd.png)

---

# 「カルビかと思いきや、ホルモンだった！」ということもある。

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/ab47a401-1f61-696e-0761-d56b8dd3dfb5.png)


---

# 「こいつはホルモンだ！」とさえ分かれば「工夫して噛み切ろう」という食べ方が出来る。


---

# ホルモンをカルビだと勘違いしたままだと、色々まずい。

---

# 焼肉の選定眼。

---

# カルビとホルモンを見分けよう。

---

# レビューにはカルビとホルモンがあることを認識しておこう。

---

# 「なにかおかしいぞ」「噛みづらい」と感じた時は、ホルモンじゃないかと疑ってみよう。

---

# 「思ったよりレビューに時間がかかる」「レビューが進んでいる感じがしない」 そんな時は。

---

# それ、だいたいホルモン。

---

# Don't think, feel!

---

# Empty your mind.

---

# ホルモンを噛み切るための対策

---

# 一、少しずつ食べる

---

## 最初は軽く噛む。コードを全体的に、ふわっと眺めてみる。

## Descriptionとかを読んだり、コミットを行ったり来たりする。

## 時間をかけて体をコードに慣らしていく。


---

# 一、手を動かす

---

## 肉を眺めているだけでは、噛み切れない。

## Githubでコードだけを眺めていても、永遠に理解できないようなレビューもある。

---

## そういう時は手を動かそう。

## コードを手元に持ってきて、動かしたりしてみよう。

## レビューの基本だが「カルビ」だと侮っていると、忘れがち。

---

# 一、筋を噛み切る

---

# すなわち、ボトルネックを見つける。

---

## ホルモンの強敵は筋だ。

## 筋さえ切ってしまえば、あとは簡単に飲み込める。

## 本体を飲み込む前に、まずは筋を噛み切ろう。

---

## 「自分が何を理解できていないか」をまず理解する。
## 知らないメソッドや英単語などがひとつでもあれば、調べてみる。

---

## メソッドの呼び出し元、呼び出し先を辿ってみる。
## PRのDescriptionを読み直して、大前提を確認してみる。
## 「理解できていない」という基本に何度も立ち返る。

---

# 一、箸を置く

---

## 画面にずっとかじりつかず、いちど理解に務めたら、離れる。(ディタッチモード)

## PRがゲシュタルト崩壊してくる前に、しばらく時間を置く。

---

# 一、大きな皿で食べる

---

## たとえば、大きなディスプレイでレビューする

## 随分味わいが違ってくる

## 道具の使い方を変えてみる

---

## 歩いたり、休んだりしながらコードについて考えてみる

## 時間が許すなら、他の仕事に取り掛かったあとで、もういちど戻ってくる。

## これは脳科学的に見て正しいアプローチな気がする。(たぶん)


---

# 一、店に食べ方を聞く

---

## 口頭で話せるような環境なら、実装当人に食べ方を聞いてしまうのは、最強だ。

## 「自分の顎だけで噛み切る」という贅沢は出来なくなるが、とにかく効率は良いし、店主の考えを聞くことも出来る。

---

# 一、顎を鍛える

---

## 中期的対策。

## たとえば、実装者が今までに読んできたような技術書を聞いて、読んでみる。

## チームで読書会なんか開くと、レビューにおいての共通理解も生まれやすいかもしれない。

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/755df73d-bb07-46d3-eefa-308bf3674c13.png)

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/a9f52c77-f475-1e2a-3839-6c4c3c0ae339.png)


---

# 一、涼しい場所で食べる

---

## 室温が高いとレビューに集中できない！ (自分の場合)

## 部屋は涼しい方が焼肉は美味い。

## 難しいレビューほど、快適な空間でやってみよう。


---

# 一、時には噛まずに飲み込む。

---

## 時間をかけて噛み切ることが、常に良いことだとは限らない。

## 「こいつはホルモンでも、上質なホルモンだ」と分かっているなら、

## 「マージで美味い」とつぶやきながら、飲み込んでしまっても良いかもしれない。

---

# 一、いただきますの心

---

## 熟練のエンジニアでも、レビューには時に時間がかかると聞く。

## 「経験があるから、うまく食べられる」とは限らない。

## 毎回、新しい食卓につく気持ちで、ゆっくり味わう必要もあるかもしれない。

---

# 色々と書いたけど、大事なことはひとつ

---

# ホルモンを見分けて、工夫して食べること！


---

# 個人的なこと

---

## 「レビューは、難しい」

## 「いつまでも上手くならない」

## 「こんなに時間がかかる自分は、レビュー力が低いのでは」

## と常々思っていたのだが

---

## ホルモンを噛み切る努力をしているせいなのかどうなのか

## 周りの人からも、レビューを褒めてもらえることが増えた

---

## 「ちゃんとレビューしてる感」「咀嚼してる感」は、自分の知らないところで伝わるものなのかもしれない。

---

# ホルモンに負けないで！

---

# いち早くホルモンを見抜いて、一番良い食べ方を工夫しよう。

---

# 今からあなたに暗示をかけます。

---

# これからの人生で、コードレビューをする時

---

# あなたはきっと、焼肉のことを思い出すでしょう。

---

# REMEMBER KALBI!

---

# REMEMBER HORMONE!

---

# ますます美味しくなりますように。


---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/d811a00e-cae5-860b-b54f-2a1452c89863.png)

---

# 以上。

---

# 発表

- 稲浦悠馬 - Yuma Inaura - 
- https://twitter.com/Yinaura1

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/d8651d64-b15b-64df-c48f-81b1e6a0bfed.png)

---

# この記事の思い出し方

![image.png](https://qiita-image-store.s3.amazonaws.com/0/89618/e1c4c947-f49e-d653-36b0-ec56f34473ae.png)









<!-- Update From Qiita API -->

# チャットメンバー募集


何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->