Slide 1

Slide 1 text

Let’s learn code review 藤門 莉生(Rio Fujimon) review suggestion

Slide 2

Slide 2 text

自己紹介 2 - 名前:藤門 莉生(Rio Fujimon) - 所属:Sansan株式会社 - 📱 23卒 iOSエンジニア - 🍎 Eight(iOS版)を開発 - SNS:@RioFujimon

Slide 3

Slide 3 text

コードレビュー上手くできてますか? review ask

Slide 4

Slide 4 text

コードレビューでありがちな課題感 4 - 🤯 他人の書いたコードレベルが高くて、 理解が難しい - 🤷 どのような観点でレビューすれば、 いいのか分からない - 🚨 コードレビューで気をつける点は、 あるのか? - 🫥 雰囲気でコードレビュー

Slide 5

Slide 5 text

󰳕プログラミングは勉強するけど、 コードレビューの勉強は後回し(しない)

Slide 6

Slide 6 text

📚コードレビューも学習しよう! review suggestion

Slide 7

Slide 7 text

󰳓コードは書く時間より読む時間の方が長い review imo

Slide 8

Slide 8 text

コードレビュー学習の参考文献 ① Google’s Code Review Guidelines

Slide 9

Slide 9 text

コードレビュー学習の参考文献 ② Google Style Guides

Slide 10

Slide 10 text

コードレビュー学習の参考文献 ② Google Style Guides

Slide 11

Slide 11 text

🔍 Google’s Code Review Guidelinesの要点 review must

Slide 12

Slide 12 text

コードレビューの目的 12 コードベース全体の健全性が 時間と共に向上することを確認すること

Slide 13

Slide 13 text

開発者の進捗とコード健全性の調和 13 - 開発者の進捗とコード健全性の調和 - 開発者は進捗を遂げなければならないが、 コードベースの健全性も維持する - レビュアーはコード健全性を確保し、 開発者の進捗を妨げない

Slide 14

Slide 14 text

基本原則 14 - CL(Change List)がシステムのコード健全性を 向上させるならば、承認する - 完璧なコードを求めず、継続的な改善を重視 - コードレビューは開発者の成長と教育にも役立つ 重要な機会

Slide 15

Slide 15 text

レビュー原則 15 - 意見や個人の好みよりも、技術的な事実とデータを優先 - コードスタイルはスタイルガイドに従う - ソフトウェア設計は、原則に基づいて評価されるべき

Slide 16

Slide 16 text

議論紛争の解決 16 - レビュアーガイドラインの内容に基づいてみる - コードレビューコメントだけでなく、直接会議や オンライン会議も活用(議事録は必ず取る) - エスカレーションを活用 - テクニカルリードやテクニカルマネージャーの 意見に助けてもらう

Slide 17

Slide 17 text

🔍 Code Review 観点 review must

Slide 18

Slide 18 text

コードレビュー観点 ① 18 1. コードが適切に設計されているか? 2. 機能がコードのユーザーにとって良いものであるか? 3. UIの変更が適切で見栄えが良いか? 4. 並行プログラミングが安全に行われているか? 5. コードが必要以上に複雑でないか? 6. 開発者が将来必要になるかもしれないが、 現時点では必要性が分からないものを実装していないか?

Slide 19

Slide 19 text

コードレビュー観点 ② 19 7. コードに適切な単体テストが含まれているか? 8. テストが適切に設計されているか? 9. 開発者がすべてのものに明確な名前を付けているか? 10. コメントが明確で有用であり、 主になぜそのようになっているかを説明しているか? 11. コードが適切に文書化されているか? 12. コードがスタイルガイドに準拠しているか?

Slide 20

Slide 20 text

コードの不明点は開発者に積極的に質問しよう review imo

Slide 21

Slide 21 text

質問により得られるメリット 21 コードレビューには、開発者に言語、フレームワーク、または一般的なソフトウェア設 計原則について新しいことを教える重要な機能があります。開発者が新しいことを学 ぶのに役立つコメントを残すことは常に良いことです。知識を共有することは、時間と ともにシステムのコード健全性を向上させる一部です。 Google’s Code Review Guidelines(Mentoring)

Slide 22

Slide 22 text

できる部分から少しずつ実践していこう! review suggestion