こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。
この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 57 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有してお り、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください)
百見は一 fetch にしかず
テキストメッセージを送受信するアプリケーションを実装しているとします。以下の sendMessage 関数では、引数として受け取った MessageModel に変換し、それをクエリパラメータとして送信する API を呼び出しています。
private fun sendMessage(messageModel: MessageModel): SendResult {
val sendRequestParams = toSendRequestParams(messageModel)
// ... snip...
return try {
val response = apiClient.sendMessage(sendRequestParams)
SendResult.Success(response)
} catch (e: ApiException) {
SendResult.Failure(e.toErrorType())
}
}
ここで、次に示す diff のコードレビュー依頼を受けたとしましょう。この変更では「メッセージテキストが空文字列か空白のみのときは、INVALID_MESSAGE を返す」という早期リターンのコードが追加されています。
private fun sendMessage(messageModel: MessageModel): SendResult {
+ if (messageModel.text.isBlank()) {
+ return SendResult.Failure(MessageErrorType.INVALID_MESSAGE)
+ }
+
val sendRequestParams = toSendRequestParams(messageModel)
// ... snip...
return try {
val response = apiClient.sendMessage(sendRequestParams)
SendResult.Success(response)
} catch (e: ApiException) {
SendResult.Failure(e.toErrorType())
}
}
このようなコードレビュー依頼を受けたときに、注意するべき点はありますか?