前書き
雑に書きます。
「選択リスト値」・「レコードID」辺りを念頭にしています。
あり得る選択肢
- コード内にべた書き(=ハードコード)
- 定数を当該クラスの上の方にまとめる
- 定数クラスを作る
- SOQLで取ってくる
- カスタム設定
- カスタムメタデータ
選択リスト値の場合
原則、定数クラスを用いる。
開発規模が小さければ、クラス上部で定数を定義。
レコードIDの場合
■利用するレコードがリリース後に変更される可能性がゼロ
→DevelopeNameなどを条件としたSOQLで取得する
※定数化はSandboxとのレコードIDの差異への対応として不適切
■利用するレコードがリリース後に変更される可能性があるが、利用するレコードの数が変動する可能性がゼロ
→カスタム設定
■利用するレコードがリリース後に変更される可能性があり、また利用するレコードの数に関しても動的に増減する可能性がある
→カスタムメタデータ(にSOQLをかける実装)