コムズコラム

コムズコラム

2024.03.18

共通関数を作るタイミング


共通関数とは

WEBアプリケーションの開発を行っていると、画面によっては色々な機能を実装する場合があります。機能によっては同じ機能を追加する場合もありますが、何も考えずに一つ一つ機能を実装すると後々保守が大変になることがあります。
そこで同じ機能を共通関数化することで、保守性を高め、より見やすいコードにすることが重要となってきます。
例えば1つの画面に対しA、B、Cという3つの検索機能があり、この機能は同じ機能だとします。それぞれA、B、Cと機能毎にコードを記述することもできますが、その場合今後A、B、Cに対して機能追加するようなことが起きた場合、A、B、C全てのコードに対し手直しする必要が出てきます。そこでA、B、Cを共通関数にすることで今後機能追加があったとしても、直すのは共通関数のみで良いことになります。
こういった保守性の面でも同じ機能は共通関数化するべきです。

共通関数を作るタイミング

共通関数は複数の機能を一つの処理でまとめて行うため、各機能処理を追加する前に共通関数を追加する必要があります。要件定義でどのような機能が同じ処理を行うかは事前に把握できていると思います。共通関数化できる箇所は開発に入る前に抑えておくことでよりスムーズに開発を行うことができます。
仮に各機能を追加し、テストを終えた後に同じ機能が多いからといって共通関数化しようとすると1度テストクリアしたテスト項目も再度テストし直す必要が出てきてしまい、2度手間になってしまいます。そのため、共通関数は最初に作る必要があります。

共通関数を作る必要性

共通関数の必要性について説明してきましたが、共通関数にすることで保守性が高まり、コード数を減らすことができるメリットがありますが、必ずしも共通関数を必要があるかというと必要ない場合もあります。それは同じ機能がない場合となります。
無理に共通関数化してしまうとむしろ保守性が下がってしまい、不具合の原因となってしまいます。共通関数を作るべきかどうかは要件定義を確認して判定しましょう。

チェック処理について

入力した文字をチェックするなどチェック処理を作成する際、複数の画面で同じチェック処理を使用することがあります。チェック処理を共通関数化すると他の画面でチェック処理が必要になった時や、今後機能を追加した際に共通関数を呼び出すことで、チェック処理を1から作る必要がなくなります。

共通関数化する際に注意点

これまで処理を共通関数にすることによるメリットを説明してきましたが、注意する点(デメリット)もあります。共通関数は同じ処理を共通化しますが、その処理自体がどのような処理をしているかコメントをつけ明確にしておく必要があります。
チェック処理など複雑な処理ではない場合は把握しやいと思いますが、複雑な処理を共通化していた場合、通常の処理より内容を把握しづらくなるためコメントで他の人が読んでもわかるように説明しなければなりません。また共通関数に修正や機能追加が発生する場合、共通関数を使用している他の機能にも影響が出てしまうため、テスト項目数が通常の機能追加より増える可能性もあります。共通関数化しているから共通関数を使用している1機能だけをテストすればいいでは済まされません。
メリットもありますがデメリットもありますので、開発に入る前に共通関数が本当に必要なのかどうか正確に判断する必要があります。その上で共通関数が必要で使用するのであれば、今後の開発において共通関数は開発者の開発効率を上げてくれるでしょう。