CodeZine(コードジン)

特集ページ一覧

アプリケーション開発で質の高いコードレビューを実現するためのポイントとは?【後編】

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2020/09/11 12:00

 AWSでは、デベロッパーが持つ悩みや不安に対する課題解決のヒントとなるような、AWSのクラウド活用を学ぶことができる公式ウェブマガジン「builders.flash」を運営しています。今回は、質の高いコードレビューについて解説する記事の一部を、builders.flashでの公開に先駆けて一足お先にお届けします。(編集部)

  • 著:森崎 修司(名古屋大学 大学院 情報学研究科 准教授)

 前編で『コードレビューの目的』や仕様との整合性、読みやすさを例とした『コードの読み進めかた』を説明してきました。後編では、ネットワークを経由して呼び出す API に関わる読み進めかたの例を説明します。

Web API の呼び出し

 ネットワーク経由で呼び出す API はこうした要素技術の代表的なものの一つです。通信が不安定になる場合がありますので、送信できなかったときの例外処理や再送信といった処理が必要になります。こうした処理が実現できているかどうかを確かめるための読み進めかたは次のように書けます。

 AWS SDK が提供している ClientConfiguration クラスのように、送信できなかった場合に、再送信を実施してくれるライブラリもあります。また、再送信が連続してうまくいかない場合には、再送信する時間の間隔を伸ばしながら再送信 (エクスポーネンシャルバックオフ) してくれます。こうしたライブラリを利用しているかをチェックしてもよいでしょう。

 API 固有の問題が起きないかを確かめるもう一つの例として、データベースを検索するAPI の前後の読み進めかたを紹介します。こうした API では、検索条件によっては検索結果が多数になり、一度のリクエストでは検索結果の全部を受け取れない場合があります。また、複数回に分けて検索結果を受け取るときには、これまで検索結果のどこまでを受け取っていて、どこからを受け取りたいかを API 側に指定しなければならない場合があります。これらをチェックする方法は以下のとおりです。

 たとえば、AWS の Dynamo DB が用意している API である BatchGetItem は、検索結果が 100 件か容量が 16MB のどちらかに達すると結果の一部しか返されません。そうした場合が考慮されたコードになっているか確かめます。

 まだ返されていない検索結果は UnprocessedKeys として戻されますので、検索結果を受け取るときには複数回に分けて受け取っているか、そして続きを受け取るために UnprocesseddKeys を API に渡しているか確かめます。

効率化を目指そう

 読み進めかたを改善していくと効率化につながります。改善の方法の一つは読み進めかたを整理したり、バリエーションを増やしてコードレビューの対象に応じて適切なものを選んだりできるようになることです。他にも、一部を自動化して目視で確かめる箇所を減らす方法もあります。

※この記事で紹介したサービスの資料をダウンロードいただけます。資料は会員の方のみダウンロードしていただけます。



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • builders.flash 編集部(builders.flash ヘンシュウブ)

     builders.flash は、日本のデベロッパーの皆様へ向けて、実践的なクラウドベストプラクティスを身近なテーマから解説する記事や、幅広い開発インタビューをお届けする AWS のウェブマガジンです。

バックナンバー

連載:選り抜き!「builders.flash」
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5