Weitere ähnliche Inhalte
Mehr von Hisao Soyama (12)
Kürzlich hochgeladen (12)
コードレビューのアンチパターンについて考えてみた
- 2. Code Review Meetup #1
2018/01/19
2
自己紹介
●
祖山 寿雄
– @who_you_me
●
社会学修士
●
株式会社サイカ
– 開発室長
●
Python / JavaScript / AWS / Statistics
- 8. Code Review Meetup #1
2018/01/19
8
アンチパターン
●
1: HRTの欠如
●
2: 目的が曖昧
●
3: 技術力格差
●
4: 属人的コード
- 9. Code Review Meetup #1
2018/01/19
9
アンチパターン1: HRTの欠如
●
HRT
– Humility (謙虚)
– Respect (尊敬)
– Trust (信頼)
●
初めて聞いた人はTeam Geekを読もう
- 10. Code Review Meetup #1
2018/01/19
10
アンチパターン1: HRTの欠如
●
こんな人がいるとさすがに厳しい
– 「正しい」ことならどんな表現で何を言ってもいいと
思っている人
●
そういう奴に限ってだいたい正しくない
– 「(経験に差がある場合は特に)純粋なコードへの指
摘であっても人格否定と受け取られやすいので表現に
気をつけましょう」と説いても分かってくれない人
- 11. Code Review Meetup #1
2018/01/19
11
アンチパターン2: 目的が曖昧
●
コードレビューの利点は主に2つ
– ソースコードの質を保つ
– メンバーの成長、教育
●
私見では教育効果は副次的なものなので、ソース
コードの質担保に振ったほうがよい
- 12. Code Review Meetup #1
2018/01/19
12
アンチパターン3: 技術力格差
●
格差がありすぎると袋叩きになりがち
– 「目的が曖昧」な場合は特に
●
指摘する側もされる側も辛い
– 同じことを何回も言っている(と思っている)のに治
らない
●
HRTにも限界がある
– 萎縮
- 13. Code Review Meetup #1
2018/01/19
13
アンチパターン4: 属人的コード
●
鶏が先か卵が先か難しいが…
– 「属性化を解消するためのコードレビュー」という側
面も当然あるので
●
とはいえ時間がないと「ここ触ってるのあの人だ
けだからよく分からんけど通しちゃえ」となりが
ち
– レビューやる意味が薄れてしまう
- 15. Code Review Meetup #1
2018/01/19
15
前提: 銀の弾丸など存在しない
●
コードレビューだけで全ての問題を解決すること
はできない(当たり前)
●
他の施策と組み合わせてこそ真価を発揮する
– 技術力も上がる
– 属人化が解消される
- 16. Code Review Meetup #1
2018/01/19
16
アンチパターン1: HRTの欠如
●
チームが大切にする価値観を明確にしよう
– HRT
●
明文化するだけじゃなくて日々気を付けよう
– 文化は日々の行動によってのみ作られる
●
困った時は会話しよう
– テキストベースだけだと荒れがち
- 17. Code Review Meetup #1
2018/01/19
17
アンチパターン2: 曖昧な目的
●
「よいコード」の基準を共有しよう
●
目的を明確にしよう
– 1つである必要はないが、欲張りもよくない
●
typo、コーディング規約
●
設計の良し悪し
●
人のコードを読む
- 18. Code Review Meetup #1
2018/01/19
18
アンチパターン3: 技術力格差
●
未熟なメンバーがいる場合はちゃんと教育しよう
– コードレビュー「だけ」では成長できないし、そもそ
もテキストベースでのやり取りには限界がある
– ペアプロ/モブプロ
– 「リーダブルコードは基礎教養」とマサカリを投げる
のではなく、本当に基礎教養なら業務時間に読ませよ
う
- 19. Code Review Meetup #1
2018/01/19
19
アンチパターン4: 属人的コード
●
属人化解消したいならちゃんと時間を取る/やり
方を工夫しよう
– ペアレビュー(?)とか
●
レビュワーとレビュイーが隣りに座って、レビュイーがレ
ビュワーに説明しながら進めるやり方
●
チーム全員でやってもよさそう
– 社内勉強会とか
●
「○○のコードを△△先生に解説してもらう会」