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.6k
コードを見る!書く!見てもらう!で爆速ステップアップ!!
Sho Nagata
July 06, 2019
Tweet
Share
More Decks by Sho Nagata
See All by Sho Nagata
チームスローガンとその設計意図
nagata03
0
420
0→1フェーズのプロダクト開発のリアル
nagata03
0
260
スクラムマスターの悩みどころを赤裸々に告白します
nagata03
1
1.5k
SmartHRにおけるスクラムマスターへの道
nagata03
0
320
競技プログラミングにチャレンジ!
nagata03
0
400
1年間Rubyを使って印象的だったあれこれ
nagata03
0
430
Railsのコードを読んでみる vol.1
nagata03
0
390
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
880
method_missingの黒魔術っぷりについて
nagata03
0
420
Other Decks in Programming
See All in Programming
WebDriver BiDiとは何なのか
yotahada3
1
140
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
5
650
Writing documentation can be fun with plugin system
okuramasafumi
0
120
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
120
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.3k
Unity Android XR入門
sakutama_11
0
160
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
130
Introduction to kotlinx.rpc
arawn
0
700
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
330
DROBEの生成AI活用事例 with AWS
ippey
0
130
Software Architecture
hschwentner
6
2.1k
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
130
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Writing Fast Ruby
sferik
628
61k
Code Reviewing Like a Champion
maltzj
521
39k
Embracing the Ebb and Flow
colly
84
4.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
A Philosophy of Restraint
colly
203
16k
Automating Front-end Workflow
addyosmani
1368
200k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building an army of robots
kneath
303
45k
Scaling GitHub
holman
459
140k
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!!