別チームが管理しているDBを参照することがあったのだが
仕様書には「hoge
カラムは使わないでください」と書いてあった
ActiveRecordを利用するので、何か対応をしなければmy_model.hoge
で参照できてしまう
この状況でどういう対応をしたのか履歴を残しておく
対応1
nilを返すよう強制した
class MyModel < ApplicationRecord
def hoge
nil
end
end
結果
運用前にレビューで弾かれので対応2へ
対応2
触れない
レビューで「使ってほしくないカラムに対してコードは書かなくて良いのでは」という意見をもらったのでそうしてみた
class MyModel < ApplicationRecord
end
結果
実装して数日経つと、使ってはいけないという仕様を忘れてしまい
見事に使ってしまった
これは良くないということで対応3へ
対応3
例外を投げる
エラーを投げることで使ってはいけないということを開発者に通知するようにした
# 例外クラスを作る
UnavailableAttributeError = Class.new(StandardError)
class MyModel < ApplicationRecord
def hoge
raise UnavailableAttributeError
end
end
結果
今のところ問題無し
さいごに
対応3で運用してみて問題があればまた更新します。
更新が無いということはうまくいっていると思っていただければm(_ _)m