SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

選り抜き!「builders.flash」(PR)

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

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

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

  • このエントリーをはてなブックマークに追加
  • 著:森崎 修司(名古屋大学 大学院 情報学研究科 准教授)

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

Web API の呼び出し

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

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

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

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

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

効率化を目指そう

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

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

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
選り抜き!「builders.flash」連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12797 2020/10/09 17:54

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング