1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【リーダブルコード】初心者エンジニアが読み解く「無関係の下位問題の抽出」について - 第10章

Posted at

こんばんは。マル太です。

前回は、リーダブルコードの第9章「変数と読みやすさ」についてまとめました。
今回は、第10章「無関係の下位問題を抽出する」について、Qiitaにアウトプットしていきます。

無関係の下位問題って、何・・・・?

プログラムを書いていると、1つの関数の中に、たくさんの処理を詰め込んでしまうこと、ありますよね?
でも、複雑な処理が1つにまとまっていると、コードが読みにくくなってしまいます。

そこで役に立つのが、「無関係の下位問題を抽出する」というテクニックです。
これは、メインの処理とは直接関係ない部分を、別の関数として切り出すことによって、コードを整理する方法です。

例:ユーザー登録
ユーザー登録の処理を例に考えてみましょう。

ユーザー登録では、以下のような処理を行う必要があります。

1.ユーザー名、パスワードなどの入力値をチェックする。
2.ユーザー情報をデータベースに登録する。
3.登録完了メールを送信する。

これらの処理をすべて1つの関数にまとめてしまうと、コードが長くなって読みにくくなってしまいます。

そこで、入力値のチェック、データベースへの登録、メール送信といった「下位問題」を、それぞれ別の関数として切り出すことで、コードを整理することができます。

Java

// 入力値をチェックする関数
boolean validateUserData(UserData userData) {
  // ユーザー名パスワードなどの入力値をチェックする処理
}

// ユーザー情報をデータベースに登録する関数
void registerUser(UserData userData) {
  // データベースにユーザー情報を登録する処理
}

// 登録完了メールを送信する関数
void sendRegistrationEmail(UserData userData) {
  // ユーザーに登録完了メールを送信する処理
}

// ユーザー登録を行う関数
void registerUser(UserData userData) {
  if (validateUserData(userData)) { // 入力値をチェック
    registerUser(userData);  // データベースに登録
    sendRegistrationEmail(userData);  // メール送信
  }
}

このように、無関係の下位問題を抽出することで、各関数の役割が明確になり、コード全体が読みやすくなります。

無関係の下位問題を抽出するメリット
・コードの可読性が向上する
・関数の再利用性が高まる
・テストがしやすくなる
・バグを減らしやすくなる

まとめ

無関係の下位問題を抽出することで、コードを整理し、読みやすくすることができます。
複雑な処理を分割することで、コードの可読性、再利用性、テスト容易性、保守性が向上します。

ぜひ、このテクニックを実務にも活用していきたいですね!

次回は、第11章「一度にひとつのことを」についてまとめます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?