deviseを使用してデフォルトの設定で認証機構を構築すると、ユーザーに関する多種多様な情報が一つのテーブルに集約されます。 これはモデルクラスの責務の増加につながり、拡張性の担保の難しさを招き、ひいてはセキュリティ面に多少の問題が発生することになると考えました。
この問題に対して、責務ごとにテーブルの分割を行うことで改善を試みる方法を提案します。 また関連して、「ユーザーの削除と関連情報の保持」というよく発生する課題について、テーブル分割でどのように対応していくかについても説明します。
テーブル分割で実現するdeviseの責務の分離と柔軟な削除機構 - Speaker Deck
株式会社Fusicでバックエンドエンジニアをしています。好きな gemはDoorkeeper。