ユーザー種別に応じて利用可能な機能が異なる場合の実装方法
公開日:2021年9月22日(水)

とあるシステムでユーザーごとに使用できる機能を制限したいという要件がありました。
当初はユーザー数が2種類しか存在しなかったため、機能ごとにIF分を使用してユーザーAの場合は利用可能、ユーザーBの場合は利用不可。といった具合に条件分岐で機能の切り分けを行っていました。
しかし、これが後々命取りになったのです。
ユーザー種別が増えたり、機能が増えていくと、機能の振り分け上限かスパゲティー状態になりテスト工数の増加や不具合が多発してしまいました。
ユーザー種別と利用可能機能を実装する場合は、必ずマトリクス化して連想配列なり多次元配列で管理したほうが良いという事がわかりました。
なるべくプログラムを簡略化することで不具合を減らすということは重要なリファクタリングと言えます。
ナビゲーター
投稿日時:2021年9月22日(水)