テクノロジー

HAKATA Test Night #1 で「トークンリフレッシュ処理を含むAPIClientのテスト」について喋ってきました #hakata_test_night

アバター danbo-tanaka
2018.12.17
シェア
ツイート
ブックマーク
トゥート

おばんです、博多に行った際に一番美味しかったのは明太子だと思った田中です。「お前はまだ本当の博多グルメを知らない」的なマサカリ歓迎です。

さて、今回は先日博多で開催されたHAKATA Test Night #1で発表した内容についてまとめます。

HAKATA Test Night #1 - connpass

発表について

概要

Access/Refresh Token形式の通信処理は簡単にまとめると以下の手順を踏みます。

  • Access Tokenが有効期限切れだった場合に、Refresh Tokenを使ってAccess Tokenを更新する
  • Refresh処理が成功したら、新しく取得したAccess Tokenを使って元の通信処理をRetryする

これらの一連の処理が並列して複数走ってしまうと、それぞれの通信でAccess Tokenを更新しあって、RefreshとRetryを繰り返してしまい、不要な通信が走ってしまう問題と、Retryの回数制限を迎えて諦めてしまう通信が発生する問題があります。

これらの問題に対して以下の話をしました。

  • Androidの通信ライブラリの設計を参考にしてみた
  • 複数本の並列した通信のテストケースを考えてみた
  • 見辛い、考えにくいテストケースに対してシーケンス図を書いて対応してみた
  • テストコードを定型化するようにしてリーダブルにしてみた

感想

「他のプラットフォームを参考にするのは確かに良い」「そういう問題実はうちでもあるかも」などの意見を聞けて、参考になってよかったです。

スライドの中でも軽く触れているのですが、一緒にこの問題を解決してくれたメンバーも、このケースに対する知見はないとのことだったので、良い挑戦になりました。

イベントの感想

博多で開催されたイベントでしたが、普段から自分と馴染みのある東京メンバーも多く参加していたので、不安なく賑わっていて楽しかったです。

今回のHAKATA Test NightはたまたまiOSアプリエンジニアの登壇が多かったですが、iOSに限らないイベント趣旨でした。 今後の回では、他のプラットフォームのエンジニアの発表も楽しみです!


少し話は変わりますが、実はこの期間に連続して以下のイベントも開催されました。

他のイベントも全て参加したので、随時レポートを上げていきます!乞うご期待!

宣伝

実はピクシブは福岡に開発拠点があります。 ご興味ある方はぜひお話しにきてください🍵

僕は東京オフィスのメンバーで、BOOTHというアプリをやっているので、こちらもご興味あればお話しにきてください🍵

シェア
ツイート
ブックマーク
トゥート