「技術負債にならない・間違えない」権限管理の設計と実装

Webサービスの開発と運用に関わる方なら、権限管理の重要性については深く認識していることでしょう。運営アカウント、役割などの条件によって表示や操作を変えたい際に必要となります。権限は非常に繊細であり、1つの実装ミスがサービスや事業の大きな損失に繋がります。

しかし、条件をそのまま表現したadmin?のような簡易的な分岐による実装が多く見られます。そして、成長と共にadmin?manager?など権限の種類が増え、条件が複雑になり「レビュワーも条件を把握しきれない。」「実装を触るのが怖い。」「不具合の温床だ。」と技術負債になっているケースを多く目にしてきました。

このセッションでは、まず「なぜ権限管理は複雑になり、技術負債を生むのか」という根本原因を紐解きます。そして、その失敗から学んだ「実装・利用・理解、その全てで間違えない」というたった一つの原則に光を当てます。

私が辿り着いたのは、Rails Wayに沿ってModelとPolicyを1対1で対応させ「更に1つ軸を設ける」アプローチです。この設計によって、コードは驚くほど見通しが良くなり、エンジニア以外も誰が何をできるのかを正確に理解できるようになりました。

admin?を超えた先にある、明日からあなたのチームで実践できる「技術負債にならない・間違えない」権限管理の設計と実装。その全てをお伝えします。

Speaker

naro143 (Yusuke Ishimi)

naro143 (Yusuke Ishimi)

株式会社プレックスで建設業向けSaaS「サクミル」の開発をしています。新卒からRuby on Railsでご飯を食べています。