Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@hanhan1978 APoSD本は良いぞ! Fukuoka.php 2020/10/14
Slide 2
Slide 2 text
本日のテーマ 買って読んで。(洋書)
Slide 3
Slide 3 text
コードレビュー してますか?
Slide 4
Slide 4 text
会社のブログにも書いた https://tech.innovator.jp.net/entry/2019/10/16/151227
Slide 5
Slide 5 text
● 近年、GithubのPRにより形式化 ● レビューを受けないとMerge不可 ● レビューにより品質が向上??
Slide 6
Slide 6 text
トレンドチェック https://trends.google.com/trends/explore?date=all&geo=US&q=%22Pull%20Request%22 2009年くらいから認知され てきている
Slide 7
Slide 7 text
コードレビューの目的は何か?
Slide 8
Slide 8 text
他人の目を入れる ● Aさんしか知らない実装を無くす => 属人性排除 ● Bさんが知っている見地からコードを見ても らう => 設計の妥当性
Slide 9
Slide 9 text
コードレビューの結果は 指摘事項として現れる
Slide 10
Slide 10 text
1. 仕様からの乖離は無いか 2. 誤りのあるコード 3. より良い実装・設計の提案
Slide 11
Slide 11 text
1. 仕様からの乖離は無いか 2. 誤りのあるコード 3. より良い実装・設計の提案 明確
Slide 12
Slide 12 text
1. 仕様からの乖離は無いか 2. 誤りのあるコード 3. より良い実装・設計の提案 曖昧
Slide 13
Slide 13 text
私が抱えていた問題(1)
Slide 14
Slide 14 text
レビュー対象のソースコードに 「良くない臭い」を感じるが... ● 上手く言語化できない ● 説明が冗長になりコストがかかる
Slide 15
Slide 15 text
私が抱えていた問題(2)
Slide 16
Slide 16 text
レビュー&指摘修正後のゴール ● そもそも何で指摘するのか? ● より良い設計という目的は曖昧
Slide 17
Slide 17 text
結果として
Slide 18
Slide 18 text
忖度LGTM
Slide 19
Slide 19 text
「説明長くなりそうだし、明日リリースだから...ヨシッ!」 「今夜は用事がある。少し気になるけど...ヨシッ!」 「読みづらいけど、説明が難しいし、緊急対応だから...ヨシッ!」
Slide 20
Slide 20 text
ヨクナイ
Slide 21
Slide 21 text
しかし、設計思想や目的を言語化す るのは難しい。 一体どうしたら...
Slide 22
Slide 22 text
APoSD
Slide 23
Slide 23 text
APoSDの主題
Slide 24
Slide 24 text
ソフトウェアデザイン
Slide 25
Slide 25 text
特に注目しているポイント
Slide 26
Slide 26 text
複雑性 ソフトウェア開発を難しくする原因
Slide 27
Slide 27 text
複雑性 C = ΣCpTp ● Cp => 部分の複雑性 ● Tp => 部分開発にかかる時間 全体の複雑性は 部分ごとの複雑性の積算
Slide 28
Slide 28 text
欠けていたピースが見つかった
Slide 29
Slide 29 text
1. 仕様からの乖離は無いか 2. 誤りのあるコード 3. より良い実装・設計の提案 3. 複雑性を下げる実装・設計の提案
Slide 30
Slide 30 text
具体的な手法は 是非本を読んでほしい。
Slide 31
Slide 31 text
目次
Slide 32
Slide 32 text
著者のオススメ ● コードレビュー時に参照 ● チームでBetterなシステムデザインを目 指す
Slide 33
Slide 33 text
まとめ
Slide 34
Slide 34 text
● 複雑性という共通の敵が明らかに ● レビューに活用、みんなで設計議論 ● 気軽に使いたいから、誰か翻訳して!
Slide 35
Slide 35 text
A Philosophy of Software Design