こんばんは。マル太です。
前回は、リーダブルコードの第9章「変数と読みやすさ」についてまとめました。
今回は、第10章「無関係の下位問題を抽出する」について、Qiitaにアウトプットしていきます。
無関係の下位問題って、何・・・・?
プログラムを書いていると、1つの関数の中に、たくさんの処理を詰め込んでしまうこと、ありますよね?
でも、複雑な処理が1つにまとまっていると、コードが読みにくくなってしまいます。
そこで役に立つのが、「無関係の下位問題を抽出する」というテクニックです。
これは、メインの処理とは直接関係ない部分を、別の関数として切り出すことによって、コードを整理する方法です。
例:ユーザー登録
ユーザー登録の処理を例に考えてみましょう。
ユーザー登録では、以下のような処理を行う必要があります。
1.ユーザー名、パスワードなどの入力値をチェックする。
2.ユーザー情報をデータベースに登録する。
3.登録完了メールを送信する。
これらの処理をすべて1つの関数にまとめてしまうと、コードが長くなって読みにくくなってしまいます。
そこで、入力値のチェック、データベースへの登録、メール送信といった「下位問題」を、それぞれ別の関数として切り出すことで、コードを整理することができます。
// 入力値をチェックする関数
boolean validateUserData(UserData userData) {
// ユーザー名、パスワードなどの入力値をチェックする処理
}
// ユーザー情報をデータベースに登録する関数
void registerUser(UserData userData) {
// データベースにユーザー情報を登録する処理
}
// 登録完了メールを送信する関数
void sendRegistrationEmail(UserData userData) {
// ユーザーに登録完了メールを送信する処理
}
// ユーザー登録を行う関数
void registerUser(UserData userData) {
if (validateUserData(userData)) { // 入力値をチェック
registerUser(userData); // データベースに登録
sendRegistrationEmail(userData); // メール送信
}
}
このように、無関係の下位問題を抽出することで、各関数の役割が明確になり、コード全体が読みやすくなります。
無関係の下位問題を抽出するメリット
・コードの可読性が向上する
・関数の再利用性が高まる
・テストがしやすくなる
・バグを減らしやすくなる
まとめ
無関係の下位問題を抽出することで、コードを整理し、読みやすくすることができます。
複雑な処理を分割することで、コードの可読性、再利用性、テスト容易性、保守性が向上します。
ぜひ、このテクニックを実務にも活用していきたいですね!
次回は、第11章「一度にひとつのことを」についてまとめます。