SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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-
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を⽤いて画⾯
差分を視覚化
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
(コミットステータスのチェック)
• プロダクトコードの変更 => ビルド / テスト
• テストコードの変更 => テスト
• リソースファイルの変更 => 画⾯のキャプチャ
• チケットのURLが貼られているか
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
リソースの変更 => 画⾯のキャプチャ
• リソースファイルの変更で
画像取得ジョブ
• 画像はジョブ実⾏時に
⾃動プッシュ
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
(コミットステータスのチェック)
• プロダクトコードの変更 => ビルド / テスト
• テストコードの変更 => テスト
• リソースファイルの変更 => 画⾯のキャプチャ
• チケットのURLが貼られているか
さらに掘り下げる
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
どのコミットステータスをみるのか
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
とあるPull Request... (実際の画⾯とは異なります)
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
ビルドしてテストして
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストやってから⾔って
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
ビルドしてテストして
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストやってから⾔って
ビルド
テスト
とあるPull Request... (実際の画⾯とは異なります)
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストやってから⾔って
ビルド
テスト
とあるPull Request... (実際の画⾯とは異なります)
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストやってから⾔って
ビルド
テスト
とあるPull Request... (実際の画⾯とは異なります)
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストしてから⾔って
ビルド
テスト
とあるPull Request... (実際の画⾯とは異なります)
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 commit 3
• レビューお願い
• ビルドとテストしてから⾔って
ビルド
テスト
直前のコミットステータス
しかみない
無駄にCIを回す
とあるPull Request... (実際の画⾯とは異なります)
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
過去の成功からの差分を⾒る
• プロダクトコードの変更 commit 1
• テストコードの変更 commit 2
レビューお願い
• レビューしてええで
• README更新 commit 3
• レビューお願い
• レビューしてええで
ビルド
テスト
HEAD - 前回成功間
でソースに変更が
あるかチェック
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
DangerfileでGitHub API
• github.api でOctokitインスタンス取得
• GitHub API v3に対応した Rubyクライアント
• トークンでログイン済み
• Auto Paginate は true になっている
• ステータス取得メソッドなど
• Octokit経由で Pull Request の操作も可能( やりすぎは注意 )
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerプラグインを作成するときの注意
• Dangerプラグインの引数なしメソッドは
danger local または danger pr でコールされる
• Pull Request をクローズ / オープンする
引数なしメソッドを作ると...
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでチェックしているルール
• タイトルが WIP になっていないか
• 変更があったディレクトリに応じて CIジョブ が実⾏されているか
(コミットステータスのチェック)
• プロダクトコードの変更 => ビルド / テスト
• テストコードの変更 => テスト
• リソースファイルの変更 => 画⾯のキャプチャ
• チケットのURLが貼られているか
さらに掘り下げる
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://rubygems.org/gems/xcodeproj
• 特定のターゲットのファイル⼀覧を取得できる
https://github.com/CocoaPods/Xcodeproj
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
Dangerでのチェック
• 指定ディレクトリ以下にファイルが追加・削除された際に .xcodeproj
も更新されているかどうか
• 変更があったディレクトリプロジェクトターゲットに応じて CIジョブ
が実⾏されているか
Copyright	©	DeNA Co.,Ltd.	All	Rights	Reserved.
まとめ
• 最新のコミットだけでなくPR全体で判断する
• ディレクトリではなくプロジェクト構造をみる
• Dangerfile は Ruby DSL
• 便利なライブラリはどんどん使おう( Octokit / xcodeproj )

Weitere ähnliche Inhalte

Was ist angesagt?

Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Shunsuke Maeda
 
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化Toshiyuki Hirata
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようToshiyuki Hirata
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割Toshiyuki Hirata
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercariVishal Banthia
 
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていることスマホアプリディレクターが考えていること
スマホアプリディレクターが考えていることKazuaki KURIU
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法Toshiyuki Hirata
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -Toshiyuki Hirata
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境Toshiyuki Hirata
 
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築Toshiyuki Hirata
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるToshiyuki Hirata
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたToshiyuki Hirata
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Toshiyuki Hirata
 
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話司 知花
 
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜gree_tech
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -Toshiyuki Hirata
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告Masaki Nakagawa
 
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックSEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックKouhei Sutou
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
 

Was ist angesagt? (20)

Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
 
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercari
 
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていることスマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
 
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
 
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告
 
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックSEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 

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

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage PlatformMasaki Nakagawa
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築CROOZ, inc.
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Makoto Haruyama
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminarManabu Shimobe
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CDIssei Hiraoka
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Kohsuke Kawaguchi
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2Yushi_Takagi
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト健一 辰濱
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Shota Umeda
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方Takeshi Mikami
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウTakeshi Mikami
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkinsKohsuke Kawaguchi
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うSatoshi Yoshikawa
 

Ähnlich wie iOSにおけるコードレビューを一歩先へ進める (20)

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
 
Developer summit continuous deliveryとjenkins
Developer summit   continuous deliveryとjenkinsDeveloper summit   continuous deliveryとjenkins
Developer summit continuous deliveryとjenkins
 
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使うRustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
 
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
 

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