Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コードを見る!書く!見てもらう!で爆速ステップアップ!!
Search
Sho Nagata
July 06, 2019
Programming
1
2.4k
コードを見る!書く!見てもらう!で爆速ステップアップ!!
Sho Nagata
July 06, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
チームスローガンとその設計意図
nagata03
0
290
0→1フェーズのプロダクト開発のリアル
nagata03
0
210
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.3k
SmartHRにおけるスクラムマスターへの道
nagata03
0
220
競技プログラミングにチャレンジ!
nagata03
0
320
1年間Rubyを使って印象的だったあれこれ
nagata03
0
370
Railsのコードを読んでみる vol.1
nagata03
0
320
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
730
method_missingの黒魔術っぷりについて
nagata03
0
350
Other Decks in Programming
See All in Programming
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.1k
ONE WEDGE_company_guide
1wedge_one
0
470
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
0
850
"config" ってなんだ? / What is "config"?
okashoi
0
240
新宿ダンジョンを可視化してみた
satoshi7190
2
240
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
PHPはいつから死んでいるかの調査
chiroruxx
1
400
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
680
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
Milestoner
bkuhlmann
1
410
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
370
Featured
See All Featured
Done Done
chrislema
178
15k
The Invisible Customer
myddelton
114
12k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
GitHub's CSS Performance
jonrohan
1025
450k
Happy Clients
brianwarren
92
6.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Visualization
eitanlees
136
14k
Design by the Numbers
sachag
274
18k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Navigating Team Friction
lara
178
13k
Atom: Resistance is Futile
akmur
259
25k
Transcript
コードを見る!書く!見てもらう! で爆速ステップアップ!! 2019.7.6 (Sat) Tama Ruby会議01 @s_naga03
コードレビューしてますか?
自分一人で出せる成長速度には限界がある
コードレビューは 自分が至っていないレベルへ “ジャンプ” できるチャンス
• 自分が持っていない知識、技術、経験を踏まえての指摘やアドバイス • 自分と他者との思考の共有
case1:ネストを作らない / 戻り値を明確に • 指摘 • 自分ならこんな風に書く → return nil
unless review_id.present? • ネストができない • nilが返ることが明記できる
case1:ネストを作らない / 戻り値を明確に レビュー前 レビュー後
case1:ネストを作らない / 戻り値を明確に • 教訓 • ネストは悪。フラットこそが正義! • 早めの return
で戻り値をわかりやすく!
case2:TPOに合わせよう • 指摘 • whereの引数が異なるだけなら2行書くのは冗長じゃない? • return もやや可読性を下げている気がする
case2:TPOに合わせよう レビュー前 レビュー後
case2:TPOに合わせよう • 教訓 • 良い悪いはケースバイケース • 大事なのは “読みやすいか” “メンテしやすいか”
case3:既存コードが最適解とは限らない • 指摘 • match マッチャ使おうぜ!
case3:既存コードが最適解とは限らない レビュー後 レビュー前
case3:既存コードが最適解とは限らない • 教訓 • 既存コードが最適解とは限らない • より良い書き方がないか常に追求せよ
RSpecといえば… ※ࣸਅຊਓͷྃঝΛಘͯ༻͍ͯ͠·͢
より “たくさん” の “効果的な” レビューのために
コードを見る! • 他の人はどんな書き方をしているのかな? • 会社 / システムのコーディング文化、作法 • 解答例の一つがそこにある
コードを書く! • 思いついたらまず書いてみる • とりあえず動くものをアウトプット • ブラッシュアップ
コードを見てもらう! • 恥を捨てる • 気になっている箇所はあらかじめコメントしておこう • 思考を言語化できるか
まとめ • 自分一人で出せる成長速度には限界がある • 周りの力を借りて爆速でステップアップしよう • 今回はレビューイの視点だったが、レビュアーもステップアップのチャンス
Who am I? • Sho Nagata • Backend Engineer@カカクコム •
食べログのマイクロサービス化を推進中 • Ruby / Rails(歴は10ヶ月) ˏs_naga03 Sho Nagata nagata03
Thank you!!