Slide 1

Slide 1 text

コードを見る!書く!見てもらう! で爆速ステップアップ!! 2019.7.6 (Sat) Tama Ruby会議01 @s_naga03

Slide 2

Slide 2 text

コードレビューしてますか?

Slide 3

Slide 3 text

自分一人で出せる成長速度には限界がある

Slide 4

Slide 4 text

コードレビューは 自分が至っていないレベルへ “ジャンプ” できるチャンス

Slide 5

Slide 5 text

• 自分が持っていない知識、技術、経験を踏まえての指摘やアドバイス • 自分と他者との思考の共有

Slide 6

Slide 6 text

case1:ネストを作らない / 戻り値を明確に • 指摘 • 自分ならこんな風に書く → return nil unless review_id.present? • ネストができない • nilが返ることが明記できる

Slide 7

Slide 7 text

case1:ネストを作らない / 戻り値を明確に レビュー前 レビュー後

Slide 8

Slide 8 text

case1:ネストを作らない / 戻り値を明確に • 教訓 • ネストは悪。フラットこそが正義! • 早めの return で戻り値をわかりやすく!

Slide 9

Slide 9 text

case2:TPOに合わせよう • 指摘 • whereの引数が異なるだけなら2行書くのは冗長じゃない? • return もやや可読性を下げている気がする

Slide 10

Slide 10 text

case2:TPOに合わせよう レビュー前 レビュー後

Slide 11

Slide 11 text

case2:TPOに合わせよう • 教訓 • 良い悪いはケースバイケース • 大事なのは “読みやすいか” “メンテしやすいか”

Slide 12

Slide 12 text

case3:既存コードが最適解とは限らない • 指摘 • match マッチャ使おうぜ!

Slide 13

Slide 13 text

case3:既存コードが最適解とは限らない レビュー後 レビュー前

Slide 14

Slide 14 text

case3:既存コードが最適解とは限らない • 教訓 • 既存コードが最適解とは限らない • より良い書き方がないか常に追求せよ

Slide 15

Slide 15 text

RSpecといえば… ※ࣸਅ͸ຊਓͷྃঝΛಘͯ࢖༻͍ͯ͠·͢

Slide 16

Slide 16 text

より “たくさん” の “効果的な” レビューのために

Slide 17

Slide 17 text

コードを見る! • 他の人はどんな書き方をしているのかな? • 会社 / システムのコーディング文化、作法 • 解答例の一つがそこにある

Slide 18

Slide 18 text

コードを書く! • 思いついたらまず書いてみる • とりあえず動くものをアウトプット • ブラッシュアップ

Slide 19

Slide 19 text

コードを見てもらう! • 恥を捨てる • 気になっている箇所はあらかじめコメントしておこう • 思考を言語化できるか

Slide 20

Slide 20 text

まとめ • 自分一人で出せる成長速度には限界がある • 周りの力を借りて爆速でステップアップしよう • 今回はレビューイの視点だったが、レビュアーもステップアップのチャンス

Slide 21

Slide 21 text

Who am I? • Sho Nagata • Backend Engineer@カカクコム • 食べログのマイクロサービス化を推進中 • Ruby / Rails(歴は10ヶ月) ˏs_naga03 Sho Nagata nagata03

Slide 22

Slide 22 text

Thank you!!