SlideShare a Scribd company logo
Submit Search
Upload
iOSにおけるコードレビューを一歩先へ進める
Report
Share
S
Shunsuke Maeda
Follow
•
1 like
•
2,500 views
1
of
24
iOSにおけるコードレビューを一歩先へ進める
•
1 like
•
2,500 views
Report
Share
Download Now
Download to read offline
Software
iOSにおけるコードレビューについて、 Dangerを使って自動化できる部分は自動化した話。
Read more
S
Shunsuke Maeda
Follow
Recommended
Dangerでpull requestレビューの指摘事項を減らす by
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
4.6K views
•
25 slides
バージョンアップ対応を軽減するサービス:マスティフ by
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
1.9K views
•
15 slides
iOSで利用できるデバイスファームのメリット・デメリットの紹介 by
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
4.8K views
•
16 slides
2017年のiOSアプリ開発におけるCI事情 by
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
6.9K views
•
20 slides
DroidKaigi_devicefarm by
DroidKaigi_devicefarm
Shunsuke Maeda
6.2K views
•
87 slides
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス by
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
1.5K views
•
12 slides
More Related Content
What's hot
Pull request時の画面差分取得の自動化 by
Pull request時の画面差分取得の自動化
Shunsuke Maeda
6.3K views
•
22 slides
Bluepillを使ったiOS自動テストの並列化 by
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
1.7K views
•
9 slides
iOSアプリの自動テストをはじめよう by
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
17.5K views
•
21 slides
DeNAにおけるSWETの役割 by
DeNAにおけるSWETの役割
Toshiyuki Hirata
6.7K views
•
18 slides
Android e2e testing at mercari by
Android e2e testing at mercari
Vishal Banthia
4.6K views
•
35 slides
スマホアプリディレクターが考えていること by
スマホアプリディレクターが考えていること
Kazuaki KURIU
2.1K views
•
24 slides
What's hot
(20)
Pull request時の画面差分取得の自動化 by Shunsuke Maeda
Pull request時の画面差分取得の自動化
Shunsuke Maeda
•
6.3K views
Bluepillを使ったiOS自動テストの並列化 by Toshiyuki Hirata
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
•
1.7K views
iOSアプリの自動テストをはじめよう by Toshiyuki Hirata
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
•
17.5K views
DeNAにおけるSWETの役割 by Toshiyuki Hirata
DeNAにおけるSWETの役割
Toshiyuki Hirata
•
6.7K views
Android e2e testing at mercari by Vishal Banthia
Android e2e testing at mercari
Vishal Banthia
•
4.6K views
スマホアプリディレクターが考えていること by Kazuaki KURIU
スマホアプリディレクターが考えていること
Kazuaki KURIU
•
2.1K views
Xcodeの管理を楽に - Jenkins編 - by Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
•
3.2K views
UIテストの実行時間の短縮の方法 by Toshiyuki Hirata
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
•
4.7K views
iOSアプリ開発のCI環境 - Jenkins編 - by Toshiyuki Hirata
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
•
3.1K views
iOSアプリにおけるリリースフローとCI環境 by Toshiyuki Hirata
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
•
4.1K views
バージョンアップの対応を軽減するためのサービスの構築 by Toshiyuki Hirata
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
•
6.1K views
Xcode10での テスト周りの進化をふりかえる by Toshiyuki Hirata
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
•
1.8K views
fastlane snapshotの並列実行についてまとめてみた by Toshiyuki Hirata
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
•
2.6K views
Androidアプリ開発のテスト環境 by Toshiyuki Hirata
Androidアプリ開発のテスト環境
Toshiyuki Hirata
•
3K views
OpenSTFを ECSに乗せてみた話 by 司 知花
OpenSTFを ECSに乗せてみた話
司 知花
•
2.3K views
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜 by gree_tech
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
gree_tech
•
8.6K views
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 - by Toshiyuki Hirata
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
•
5K views
5minQues - SWET近況報告 by Masaki Nakagawa
5minQues - SWET近況報告
Masaki Nakagawa
•
5.9K views
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック by Kouhei Sutou
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
Kouhei Sutou
•
726 views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
347 views
Similar to iOSにおけるコードレビューを一歩先へ進める
MakeGoodで快適なテスト駆動開発を by
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
1.2K views
•
28 slides
2014-04-22 Ques #4 Automation Testing of Mobage Platform by
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
6.6K views
•
64 slides
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築 by
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
CROOZ, inc.
50.1K views
•
54 slides
Rails on GKEで運用するWebアプリケーションの紹介 by
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
4.2K views
•
44 slides
ドリコムJenkins勉強会資料 by
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
8.4K views
•
28 slides
Voicepic@FukuiMASeminar by
Voicepic@FukuiMASeminar
Manabu Shimobe
1.4K views
•
33 slides
Similar to iOSにおけるコードレビューを一歩先へ進める
(20)
MakeGoodで快適なテスト駆動開発を by Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
•
1.2K views
2014-04-22 Ques #4 Automation Testing of Mobage Platform by Masaki Nakagawa
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
•
6.6K views
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築 by CROOZ, inc.
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
CROOZ, inc.
•
50.1K views
Rails on GKEで運用するWebアプリケーションの紹介 by Makoto Haruyama
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
•
4.2K views
ドリコムJenkins勉強会資料 by Go Sueyoshi (a.k.a sue445)
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
•
8.4K views
Voicepic@FukuiMASeminar by Manabu Shimobe
Voicepic@FukuiMASeminar
Manabu Shimobe
•
1.4K views
GitHub Actions で CI/CD by Issei Hiraoka
GitHub Actions で CI/CD
Issei Hiraoka
•
252 views
Jenkins+Gitによる検証済みマージ(30分版) by Kohsuke Kawaguchi
Jenkins+Gitによる検証済みマージ(30分版)
Kohsuke Kawaguchi
•
4K views
Git & GitHub & kintone でウルトラハッピー! by ymmt
Git & GitHub & kintone でウルトラハッピー!
ymmt
•
35.4K views
devsami kansai 2012 #c2 by Yushi_Takagi
devsami kansai 2012 #c2
Yushi_Takagi
•
996 views
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017 by Yahoo!デベロッパーネットワーク
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
•
9K views
Robotium を使った UI テスト by 健一 辰濱
Robotium を使った UI テスト
健一 辰濱
•
1K views
Gitと出会って人生変わった テックヒルズ2013-03-22 by Shota Umeda
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
•
5.6K views
GitHubの機能を活用したGitHub Flowによる開発の進め方 by Takeshi Mikami
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
•
5.4K views
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ by Takeshi Mikami
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Takeshi Mikami
•
862 views
技術選択とアーキテクトの役割 by Toru Yamaguchi
技術選択とアーキテクトの役割
Toru Yamaguchi
•
42K views
Hacktoberfest 概要、Node-REDプロジェクト貢献手順 by Hitachi, Ltd. OSS Solution Center.
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hitachi, Ltd. OSS Solution Center.
•
241 views
Developer summit continuous deliveryとjenkins by Kohsuke Kawaguchi
Developer summit continuous deliveryとjenkins
Kohsuke Kawaguchi
•
3.6K views
RustでWebSocketな自社APIを使う by Satoshi Yoshikawa
RustでWebSocketな自社APIを使う
Satoshi Yoshikawa
•
1.2K views
20170209 ios/android app_build/test pipeline by Masashi Kurita
20170209 ios/android app_build/test pipeline
Masashi Kurita
•
2.1K views
iOSにおけるコードレビューを一歩先へ進める
1.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 俺コン Vol.1
/ Day. 1 2017/10/02 (Mon) 前⽥隼輔 SWETグループ DeNA Co., Ltd. iOSにおけるコードレビュー を⼀歩先へ進める
2.
Copyright © DeNA Co.,Ltd. All Rights Reserved. n前⽥隼輔 • @duck8823 •
所属 • DeNA SWETグループ テスト基盤チーム ⾃⼰紹介
3.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerを利⽤したレビュー(前)チェック • GitHub
Bot を簡単に作るツール • PRを静的チェック
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.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが
WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか
6.
Copyright © DeNA Co.,Ltd. All Rights Reserved. リソースの変更 =>
画⾯のキャプチャ • リソースファイルの変更で 画像取得ジョブ • 画像はジョブ実⾏時に ⾃動プッシュ
7.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが
WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか さらに掘り下げる
8.
Copyright © DeNA Co.,Ltd. All Rights Reserved. どのコミットステータスをみるのか
9.
Copyright © DeNA Co.,Ltd. All Rights Reserved. とあるPull Request...
(実際の画⾯とは異なります) • プロダクトコードの変更 commit 1 • テストコードの変更 commit 2 ビルドしてテストして • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って
10.
Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 ビルドしてテストして • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
11.
Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
12.
Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストやってから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
13.
Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストしてから⾔って ビルド テスト とあるPull Request... (実際の画⾯とは異なります)
14.
Copyright © DeNA Co.,Ltd. All Rights Reserved. • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • ビルドとテストしてから⾔って ビルド テスト 直前のコミットステータス しかみない 無駄にCIを回す とあるPull Request... (実際の画⾯とは異なります)
15.
Copyright © DeNA Co.,Ltd. All Rights Reserved. 過去の成功からの差分を⾒る • プロダクトコードの変更
commit 1 • テストコードの変更 commit 2 レビューお願い • レビューしてええで • README更新 commit 3 • レビューお願い • レビューしてええで ビルド テスト HEAD - 前回成功間 でソースに変更が あるかチェック
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.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerプラグインを作成するときの注意 • Dangerプラグインの引数なしメソッドは danger
local または danger pr でコールされる • Pull Request をクローズ / オープンする 引数なしメソッドを作ると...
18.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでチェックしているルール • タイトルが
WIP になっていないか • 変更があったディレクトリに応じて CIジョブ が実⾏されているか (コミットステータスのチェック) • プロダクトコードの変更 => ビルド / テスト • テストコードの変更 => テスト • リソースファイルの変更 => 画⾯のキャプチャ • チケットのURLが貼られているか さらに掘り下げる
19.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠
プロジェクト構造
20.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠
プロジェクト構造 • プロジェクト( .xcodeproj ) への追加( コミット )漏れ • プロジェクトターゲットが複数ディレクトリにまたがる場合 判断しづらい
21.
Copyright © DeNA Co.,Ltd. All Rights Reserved. ディレクトリ構造 ≠
プロジェクト構造 • プロジェクト( .xcodeproj ) への追加( コミット )漏れ • プロジェクトターゲットが複数ディレクトリにまたがる場合 判断しづらい プロジェクト構造から判断する
22.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerfileで プロジェクトのファイルを⾒る •
DangerfileではGemが使える => xcodeproj https://rubygems.org/gems/xcodeproj • 特定のターゲットのファイル⼀覧を取得できる https://github.com/CocoaPods/Xcodeproj
23.
Copyright © DeNA Co.,Ltd. All Rights Reserved. Dangerでのチェック • 指定ディレクトリ以下にファイルが追加・削除された際に
.xcodeproj も更新されているかどうか • 変更があったディレクトリプロジェクトターゲットに応じて CIジョブ が実⾏されているか
24.
Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ • 最新のコミットだけでなくPR全体で判断する •
ディレクトリではなくプロジェクト構造をみる • Dangerfile は Ruby DSL • 便利なライブラリはどんどん使おう( Octokit / xcodeproj )