レビュー、キライ、…、そして、今。
by
misato maeda
×
Copy
Open
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
レビュー、キライ、...、 そして、今。 Recustomer株式会社 misato maeda
Slide 2
Slide 2 text
⾃⼰紹介 事業会社のマーケティング⽀援、制作部⾨ →受託会社のエンジニア →Recustomer株式会社のエンジニア
Slide 3
Slide 3 text
突然ですが
Slide 4
Slide 4 text
私はレビューがキライです
Slide 5
Slide 5 text
● 実装の背景が不明 ● 設計思想が不明 ● コードが難しすぎて読めん ● ⼈間関係が怖い ● 採点してる/されている感覚
Slide 6
Slide 6 text
PRとの悲しい思い出 → No Description の世界
Slide 7
Slide 7 text
PRとの悲しい思い出 → 実装背景不明 の世界
Slide 8
Slide 8 text
さて、私が所属している
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
受賞してしまうくらい 開発スピードが 速いスタートアップ
Slide 12
Slide 12 text
ではレビューは雑なのか?
Slide 13
Slide 13 text
ではレビューは雑なのか? いや、全然。 むしろ、めちゃくちゃ丁寧だったりします。
Slide 14
Slide 14 text
レビュー意識の⾼い会社 レビューされてないPRを slackで通知する 1⽇に数回、こんな通知が届きます
Slide 15
Slide 15 text
そんなRecustomerの 取り組み
Slide 16
Slide 16 text
設計思想の統⼀
Slide 17
Slide 17 text
Recustomerの設計思想 DDD + Hexagonal Architecture を採⽤
Slide 18
Slide 18 text
上位モジュールが下位モジュールに 直接依存せず、抽象(インターフェース)に依存 ● 密結合化が阻⽌される ● テスト容易性が向上する
Slide 19
Slide 19 text
各モジュールが単⼀の責務に集中 ● 命名の議論が減る ● 過度な共通化が避けられる
Slide 20
Slide 20 text
全員が同じ設計思想のもとにコーディング だから、 誰が書いても⼤きく揺れない統⼀されたコードになる
Slide 21
Slide 21 text
社内で「良いルール」の 共有
Slide 22
Slide 22 text
PythonCodingRulesを全員で作る 全員のapproveを経て ルールの改訂を実施
Slide 23
Slide 23 text
PythonCodingRulesを全員で作る 全員のapproveを経て ルールの改訂を実施 ↓ AIフレンドリー
Slide 24
Slide 24 text
PRの細分化
Slide 25
Slide 25 text
責務の層ごとに分ける 責務の層ごとに分割した PRを作成
Slide 26
Slide 26 text
1つの PR に⽬的を詰め込まない → PRの⽬的と本筋がズレる変更をあえて別PRに分けて対応する
Slide 27
Slide 27 text
実装前の認識合わせ
Slide 28
Slide 28 text
プランニング → 何かを達成した時に「誰がやった」ではなくて「チームで達成し た」を⽬指したい
Slide 29
Slide 29 text
ドメインモデルレビュー会 → 要件について共有しつつ、ドメインモデルレビューで⼿戻りを減 らす
Slide 30
Slide 30 text
テーブルレビュー会 明確な答えがない中で、 全員で考える⼀番良い設計 を共有する
Slide 31
Slide 31 text
Descriptionのフォーマット
Slide 32
Slide 32 text
載せることは最低限、シンプルに、わかりやすく ● バックログリンク ● 変更の意図‧経緯 ● 変更の概要 ● (UIの場合) スクリーンショットなど
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
...、(そう⾔われても)
Slide 35
Slide 35 text
どうレビューしていいか わからない
Slide 36
Slide 36 text
着眼点を絞ってレビューする
Slide 37
Slide 37 text
ここだけ⾒ました!とレビューする ● 関数や変数の命名は動作を表現できているか ● 1つの関数内でさらに複数の処理を⾏うスーパー関数がで きていないか ● エラーハンドリングが適切か ● 型定義が適切なのか
Slide 38
Slide 38 text
そして、
Slide 39
Slide 39 text
⼀番意識したい、 ⼼理的安全性
Slide 40
Slide 40 text
質問ベースのコメント → お気持ち表明もありつつ、議論welcomeな⾵⼟
Slide 41
Slide 41 text
実装、レビュー、ありがとうございます!の⽂化
Slide 42
Slide 42 text
CTOの⾔葉
Slide 43
Slide 43 text
コードレビューは 「⽂化をつくるためのもの」
Slide 44
Slide 44 text
● 「LGTMボット」をつくらない ● レビューは考え⽅を共有する場 ● 判断の理由をレビューに残す → それがチームの⽂化になる
Slide 45
Slide 45 text
Recustomerでは このようにしてレビュー⽂化 を活発化 させてきました
Slide 46
Slide 46 text
そんな会社で過ごしてみて、 今。
Slide 47
Slide 47 text
コードレビュー
Slide 48
Slide 48 text
そんなにキライでも ないような。