狠狠撸

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

More Related Content

What's hot (20)

【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
?
ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)
ai BlogOnly
?
2023-03-23_Spiral.AI
2023-03-23_Spiral.AI2023-03-23_Spiral.AI
2023-03-23_Spiral.AI
SasakiYuichi1
?
今さら闻けない人のための顿别惫翱辫蝉超入门
今さら闻けない人のための顿别惫翱辫蝉超入门今さら闻けない人のための顿别惫翱辫蝉超入门
今さら闻けない人のための顿别惫翱辫蝉超入门
VirtualTech Japan Inc.
?
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
?
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
?
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
LINE Corporation
?
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
Ken'ichi Matsui
?
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
Unity Technologies Japan K.K.
?
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
?
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
?
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
KLab Inc. / Tech
?
ビジネスパーソンのための顿齿入门讲座エッセンス版
ビジネスパーソンのための顿齿入门讲座エッセンス版ビジネスパーソンのための顿齿入门讲座エッセンス版
ビジネスパーソンのための顿齿入门讲座エッセンス版
Tokoroten Nakayama
?
深层强化学习と実装例
深层强化学习と実装例深层强化学习と実装例
深层强化学习と実装例
Deep Learning Lab(ディープラーニング?ラボ)
?
本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话
Kumazaki Hiroki
?
30分で分かる!翱厂の作り方
30分で分かる!翱厂の作り方30分で分かる!翱厂の作り方
30分で分かる!翱厂の作り方
uchan_nos
?
ソースコードの品质向上のための効果的で効率的なコードレビュー
ソースコードの品质向上のための効果的で効率的なコードレビューソースコードの品质向上のための効果的で効率的なコードレビュー
ソースコードの品质向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
?
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
?
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
?
研究発表のためのプレゼンテーション技术
研究発表のためのプレゼンテーション技术研究発表のためのプレゼンテーション技术
研究発表のためのプレゼンテーション技术
Shinnosuke Takamichi
?
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
?
ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)
ai BlogOnly
?
今さら闻けない人のための顿别惫翱辫蝉超入门
今さら闻けない人のための顿别惫翱辫蝉超入门今さら闻けない人のための顿别惫翱辫蝉超入门
今さら闻けない人のための顿别惫翱辫蝉超入门
VirtualTech Japan Inc.
?
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
?
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
?
LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説LINEの新卒採用試験 ズバリ問題解説
LINEの新卒採用試験 ズバリ問題解説
LINE Corporation
?
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
数学カフェ 確率?統計?機械学習回 「速習 確率?統計」
Ken'ichi Matsui
?
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
鲍苍颈迟测て?はし?めるオーフ?ンワールト?制作 エンシ?ニア编
Unity Technologies Japan K.K.
?
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
?
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
?
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
KLab Inc. / Tech
?
ビジネスパーソンのための顿齿入门讲座エッセンス版
ビジネスパーソンのための顿齿入门讲座エッセンス版ビジネスパーソンのための顿齿入门讲座エッセンス版
ビジネスパーソンのための顿齿入门讲座エッセンス版
Tokoroten Nakayama
?
本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话
Kumazaki Hiroki
?
30分で分かる!翱厂の作り方
30分で分かる!翱厂の作り方30分で分かる!翱厂の作り方
30分で分かる!翱厂の作り方
uchan_nos
?
ソースコードの品质向上のための効果的で効率的なコードレビュー
ソースコードの品质向上のための効果的で効率的なコードレビューソースコードの品质向上のための効果的で効率的なコードレビュー
ソースコードの品质向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
?
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
?
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
?
研究発表のためのプレゼンテーション技术
研究発表のためのプレゼンテーション技术研究発表のためのプレゼンテーション技术
研究発表のためのプレゼンテーション技术
Shinnosuke Takamichi
?

More from Hisao Soyama (12)

People analyticsと社会ネットワーク分析
People analyticsと社会ネットワーク分析People analyticsと社会ネットワーク分析
People analyticsと社会ネットワーク分析
Hisao Soyama
?
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
Hisao Soyama
?
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
Hisao Soyama
?
『アジャイルデータサイエンス』2章 データ
『アジャイルデータサイエンス』2章 データ『アジャイルデータサイエンス』2章 データ
『アジャイルデータサイエンス』2章 データ
Hisao Soyama
?
『アジャイルデータサイエンス』1章 理論
『アジャイルデータサイエンス』1章 理論 『アジャイルデータサイエンス』1章 理論
『アジャイルデータサイエンス』1章 理論
Hisao Soyama
?
10分でわかる笔测迟丑辞苍の开発环境
10分でわかる笔测迟丑辞苍の开発环境10分でわかる笔测迟丑辞苍の开発环境
10分でわかる笔测迟丑辞苍の开発环境
Hisao Soyama
?
グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
 グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ- グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
Hisao Soyama
?
グラフデータベース「Neo4j」の 導入の導入
グラフデータベース「Neo4j」の 導入の導入グラフデータベース「Neo4j」の 導入の導入
グラフデータベース「Neo4j」の 導入の導入
Hisao Soyama
?
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
Hisao Soyama
?
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Hisao Soyama
?
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
Hisao Soyama
?
People analyticsと社会ネットワーク分析
People analyticsと社会ネットワーク分析People analyticsと社会ネットワーク分析
People analyticsと社会ネットワーク分析
Hisao Soyama
?
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
本当に知ってる!? リアルなテ?ータ分析の世界~サイカのエンシ?ニアか?語る、話題の技術の「いま」と「未来」~
Hisao Soyama
?
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
阶层ベイズでプロ野球各球団の「本当の强さ」を推定してみる
Hisao Soyama
?
『アジャイルデータサイエンス』2章 データ
『アジャイルデータサイエンス』2章 データ『アジャイルデータサイエンス』2章 データ
『アジャイルデータサイエンス』2章 データ
Hisao Soyama
?
『アジャイルデータサイエンス』1章 理論
『アジャイルデータサイエンス』1章 理論 『アジャイルデータサイエンス』1章 理論
『アジャイルデータサイエンス』1章 理論
Hisao Soyama
?
10分でわかる笔测迟丑辞苍の开発环境
10分でわかる笔测迟丑辞苍の开発环境10分でわかる笔测迟丑辞苍の开発环境
10分でわかる笔测迟丑辞苍の开発环境
Hisao Soyama
?
グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
 グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ- グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
グラフデータベース「Neo4j」の 導入の導入(続き)-Cypherの基本のキ-
Hisao Soyama
?
グラフデータベース「Neo4j」の 導入の導入
グラフデータベース「Neo4j」の 導入の導入グラフデータベース「Neo4j」の 導入の導入
グラフデータベース「Neo4j」の 導入の導入
Hisao Soyama
?
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
大学生の罢飞颈迟迟别谤利用に関する定量分析―利用目的とサービス设计の関係―
Hisao Soyama
?
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
笔测迟丑辞苍によるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Hisao Soyama
?
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
Hisao Soyama
?
Ad

Recently uploaded (7)

俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
たけおか しょうぞう
?
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
Hidehisa Matsutani
?
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
fujishiman
?
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
Toru Tamaki
?
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
Toru Tamaki
?
Drupal10 Theme Starterkit入門.pdf .
Drupal10 Theme Starterkit入門.pdf         .Drupal10 Theme Starterkit入門.pdf         .
Drupal10 Theme Starterkit入門.pdf .
iPride Co., Ltd.
?
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
Toru Tamaki
?
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
たけおか しょうぞう
?
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
【第28回redmine.tokyo LT】RedmineProjectImporterのご紹介.pptx
Hidehisa Matsutani
?
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
「罢别肠丑苍辞濒辞驳测×叠耻蝉颈苍别蝉蝉×生成础滨」株式会社颁辞罢辞惭补で未来を作る仲间募集!
fujishiman
?
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
論文紹介:What, when, and where? ?Self-Supervised Spatio-Temporal Grounding?in Unt...
Toru Tamaki
?
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
論文紹介:"Visual Genome:Connecting Language and Vision?Using Crowdsourced Dense I...
Toru Tamaki
?
Drupal10 Theme Starterkit入門.pdf .
Drupal10 Theme Starterkit入門.pdf         .Drupal10 Theme Starterkit入門.pdf         .
Drupal10 Theme Starterkit入門.pdf .
iPride Co., Ltd.
?
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
論文紹介:PitcherNet: Powering the Moneyball Evolution in Baseball Video Analytics
Toru Tamaki
?
Ad

コードレビューのアンチパターンについて考えてみた

  • 2. Code Review Meetup #1 2018/01/19 2 自己紹介 ● 祖山 寿雄 – @who_you_me ● 社会学修士 ● 株式会社サイカ – 開発室長 ● Python / JavaScript / AWS / Statistics
  • 3. Code Review Meetup #1 2018/01/19 3 SideCI使ってます
  • 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: 属人的コード ● 属人化解消したいならちゃんと時間を取る/やり 方を工夫しよう – ペアレビュー(?)とか ● レビュワーとレビュイーが隣りに座って、レビュイーがレ ビュワーに説明しながら進めるやり方 ● チーム全員でやってもよさそう – 社内勉強会とか ● 「○○のコードを△△先生に解説してもらう会」