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
Let's learn code review
Search
RioFujimon
April 25, 2024
Programming
3
900
Let's learn code review
春和の候!若手エンジニアふんわりLT Night!_vol4で発表した資料
RioFujimon
April 25, 2024
Tweet
Share
More Decks by RioFujimon
See All by RioFujimon
実践 Realtime API 〜入力として音声データを扱う〜
riofujimon
1
34
Realtime API 入門
riofujimon
0
150
Other Decks in Programming
See All in Programming
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
970
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
930
Quine, Polyglot, 良いコード
qnighy
4
650
役立つログに取り組もう
irof
28
9.6k
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
630
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.2k
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
300
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
890
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
65
4.4k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Statistics for Hackers
jakevdp
796
220k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Scaling GitHub
holman
458
140k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Designing for humans not robots
tammielis
250
25k
Transcript
Let’s learn code review 藤門 莉生(Rio Fujimon) review suggestion
自己紹介 2 - 名前:藤門 莉生(Rio Fujimon) - 所属:Sansan株式会社 - 📱
23卒 iOSエンジニア - 🍎 Eight(iOS版)を開発 - SNS:@RioFujimon
コードレビュー上手くできてますか? review ask
コードレビューでありがちな課題感 4 - 🤯 他人の書いたコードレベルが高くて、 理解が難しい - 🤷 どのような観点でレビューすれば、 いいのか分からない
- 🚨 コードレビューで気をつける点は、 あるのか? - 🫥 雰囲気でコードレビュー
プログラミングは勉強するけど、 コードレビューの勉強は後回し(しない)
📚コードレビューも学習しよう! review suggestion
コードは書く時間より読む時間の方が長い review imo
コードレビュー学習の参考文献 ① Google’s Code Review Guidelines
コードレビュー学習の参考文献 ② Google Style Guides
コードレビュー学習の参考文献 ② Google Style Guides
🔍 Google’s Code Review Guidelinesの要点 review must
コードレビューの目的 12 コードベース全体の健全性が 時間と共に向上することを確認すること
開発者の進捗とコード健全性の調和 13 - 開発者の進捗とコード健全性の調和 - 開発者は進捗を遂げなければならないが、 コードベースの健全性も維持する - レビュアーはコード健全性を確保し、 開発者の進捗を妨げない
基本原則 14 - CL(Change List)がシステムのコード健全性を 向上させるならば、承認する - 完璧なコードを求めず、継続的な改善を重視 - コードレビューは開発者の成長と教育にも役立つ
重要な機会
レビュー原則 15 - 意見や個人の好みよりも、技術的な事実とデータを優先 - コードスタイルはスタイルガイドに従う - ソフトウェア設計は、原則に基づいて評価されるべき
議論紛争の解決 16 - レビュアーガイドラインの内容に基づいてみる - コードレビューコメントだけでなく、直接会議や オンライン会議も活用(議事録は必ず取る) - エスカレーションを活用 -
テクニカルリードやテクニカルマネージャーの 意見に助けてもらう
🔍 Code Review 観点 review must
コードレビュー観点 ① 18 1. コードが適切に設計されているか? 2. 機能がコードのユーザーにとって良いものであるか? 3. UIの変更が適切で見栄えが良いか? 4.
並行プログラミングが安全に行われているか? 5. コードが必要以上に複雑でないか? 6. 開発者が将来必要になるかもしれないが、 現時点では必要性が分からないものを実装していないか?
コードレビュー観点 ② 19 7. コードに適切な単体テストが含まれているか? 8. テストが適切に設計されているか? 9. 開発者がすべてのものに明確な名前を付けているか? 10.
コメントが明確で有用であり、 主になぜそのようになっているかを説明しているか? 11. コードが適切に文書化されているか? 12. コードがスタイルガイドに準拠しているか?
コードの不明点は開発者に積極的に質問しよう review imo
質問により得られるメリット 21 コードレビューには、開発者に言語、フレームワーク、または一般的なソフトウェア設 計原則について新しいことを教える重要な機能があります。開発者が新しいことを学 ぶのに役立つコメントを残すことは常に良いことです。知識を共有することは、時間と ともにシステムのコード健全性を向上させる一部です。 Google’s Code Review Guidelines(Mentoring)
できる部分から少しずつ実践していこう! review suggestion