Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
俺コン Vol.1 / Day. 1
2017/10/02 (Mon)
前⽥隼輔
SWETグループ
DeNA Co., Ltd.
iOSにおけるコード...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
n前⽥隼輔
• @duck8823
• 所属
• DeNA SWETグループ テスト基盤チーム
⾃⼰紹介
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerを利⽤したレビュー(前)チェック
• GitHub Bot を簡単に作るツール
• PRを静的チェック
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerを利⽤したレビュー(前)チェック
https://www.slideshare.net/ShunsukeMaeda/dangerpull-...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
リソースの変更 => 画⾯のキャプチャ
• リソースファイルの変更で
画像取得ジョブ
• 画像はジョブ実⾏時に
⾃動プッシュ
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
どのコミットステータスをみるのか
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
とあるPull Request... (実際の画⾯とは異なります)
• プロダクトコードの変更 commit 1
• テストコードの変更 commit...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
ビルドしてテストして
• レビューしてええで
• README...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
過去の成功からの差分を⾒る
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてえ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
DangerfileでGitHub API
• github.api でOctokitインスタンス取得
• GitHub API v3に対応した Ru...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerプラグインを作成するときの注意
• Dangerプラグインの引数なしメソッドは
danger local または danger pr でコ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
ディレクトリ構造 ≠ プロジェクト構造
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
ディレクトリ構造 ≠ プロジェクト構造
• プロジェクト( .xcodeproj ) への追加( コミット )漏れ
• プロジェクトターゲットが複数デ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
ディレクトリ構造 ≠ プロジェクト構造
• プロジェクト( .xcodeproj ) への追加( コミット )漏れ
• プロジェクトターゲットが複数デ...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerfileで プロジェクトのファイルを⾒る
• DangerfileではGemが使える
=> xcodeproj https://rubyg...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでのチェック
• 指定ディレクトリ以下にファイルが追加・削除された際に .xcodeproj
も更新されているかどうか
• 変更が...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
まとめ
• 最新のコミットだけでなくPR全体で判断する
• ディレクトリではなくプロジェクト構造をみる
• Dangerfile は Ruby DSL...
Nächste SlideShare
Wird geladen in …5
×

iOSにおけるコードレビューを一歩先へ進める

1.814 Aufrufe

Veröffentlicht am

iOSにおけるコードレビューについて、
Dangerを使って自動化できる部分は自動化した話。

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

iOSにおけるコードレビューを一歩先へ進める

  1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. 俺コン Vol.1 / Day. 1 2017/10/02 (Mon) 前⽥隼輔 SWETグループ DeNA Co., Ltd. iOSにおけるコードレビュー を⼀歩先へ進める
  2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. n前⽥隼輔 • @duck8823 • 所属 • DeNA SWETグループ テスト基盤チーム ⾃⼰紹介
  3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerを利⽤したレビュー(前)チェック • GitHub Bot を簡単に作るツール • PRを静的チェック
  4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerを利⽤したレビュー(前)チェック https://www.slideshare.net/ShunsukeMaeda/dangerpull- request?qid=4757fbc8-16c0-4f07-ae16- 6f0eb90ec7b2&v=&b=&from_search=1 https://www.slideshare.net/ShunsukeMaeda/pull-request- 76210799?qid=2a587e94-f5f8-4b79-aebd- 0b32b4b6f028&v=&b=&from_search=1 • Dangerの紹介 • PR時のチェックルール の紹介 • GitHubを⽤いて画⾯ 差分を視覚化
  5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか
  6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. リソースの変更 => 画⾯のキャプチャ • リソースファイルの変更で 画像取得ジョブ • 画像はジョブ実⾏時に ⾃動プッシュ
  7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか さらに掘り下げる
  8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. どのコミットステータスをみるのか
  9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. とあるPull Request... (実際の画⾯とは異なります) • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 ビルドしてテストして • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って
  10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 ビルドしてテストして • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
  11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
  12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
  13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストしてから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
  14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストしてから⾔って ビルド テスト 直前のコミットステータス しかみない 無駄にCIを回す とあるPull Request... (実際の画⾯とは異なります)
  15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. 過去の成功からの差分を⾒る • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • レビューしてええで ビルド テスト HEAD - 前回成功間 でソースに変更が あるかチェック
  16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. DangerfileでGitHub API • github.api でOctokitインスタンス取得 • GitHub API v3に対応した Rubyクライアント • トークンでログイン済み • Auto Paginate は true になっている • ステータス取得メソッドなど • Octokit経由で Pull Request の操作も可能( やりすぎは注意 )
  17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerプラグインを作成するときの注意 • Dangerプラグインの引数なしメソッドは danger local または danger pr でコールされる • Pull Request をクローズ / オープンする 引数なしメソッドを作ると...
  18. 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか さらに掘り下げる
  19. 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠ プロジェクト構造
  20. 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠ プロジェクト構造 • プロジェクト( .xcodeproj ) への追加( コミット )漏れ • プロジェクトターゲットが複数ディレクトリにまたがる場合 判断しづらい
  21. 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠ プロジェクト構造 • プロジェクト( .xcodeproj ) への追加( コミット )漏れ • プロジェクトターゲットが複数ディレクトリにまたがる場合 判断しづらい プロジェクト構造から判断する
  22. 22. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerfileで プロジェクトのファイルを⾒る • DangerfileではGemが使える => xcodeproj https://rubygems.org/gems/xcodeproj • 特定のターゲットのファイル⼀覧を取得できる https://github.com/CocoaPods/Xcodeproj
  23. 23. Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでのチェック • 指定ディレクトリ以下にファイルが追加・削除された際に .xcodeproj も更新されているかどうか • 変更があったディレクトリプロジェクトターゲットに応じて CIジョブ が実⾏されているか
  24. 24. Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ • 最新のコミットだけでなくPR全体で判断する • ディレクトリではなくプロジェクト構造をみる • Dangerfile は Ruby DSL • 便利なライブラリはどんどん使おう( Octokit / xcodeproj )

×