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
310
競技プログラミングにチャレンジ!
nagata03
0
390
1年間Rubyを使って印象的だったあれこれ
nagata03
0
430
Railsのコードを読んでみる vol.1
nagata03
0
380
プログラミング歴半年のRubyistがGoを学び始めて戸惑った点
nagata03
1
870
method_missingの黒魔術っぷりについて
nagata03
0
420
Other Decks in Programming
See All in Programming
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
920
命名をリントする
chiroruxx
1
620
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
160
functionalなアプローチで動的要素を排除する
ryopeko
0
160
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
180
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.3k
선언형 UI에서의 상태관리
l2hyunwoo
0
260
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
120
php-conference-japan-2024
tasuku43
0
420
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
180
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
380
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
290
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
It's Worth the Effort
3n
183
28k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Done Done
chrislema
182
16k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Navigating Team Friction
lara
183
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
950
Agile that works and the tools we love
rasmusluckow
328
21k
Docker and Python
trallard
43
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
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!!