Salesforceの設計力

Salesforceで一番差が出るのは「設計力」です。
正直ここミスると、どんな優秀なエンジニアでも詰みます。

ステップ1:業務を分解する

いきなりオブジェクト作るのはNG。

まずやるべきはこれ:

・業務フローを書き出す
・登場する“モノ”を洗い出す
・それをオブジェクト化する

例:受注管理

・顧客
・商品
・注文
・注文明細

👉 これがそのままオブジェクトになる

ステップ2:正規化を意識する

ありがちなミス:

「全部1オブジェクトに詰める」

→ データぐちゃぐちゃになる

悪い例:
注文オブジェクトに商品1〜10まで項目作る

良い例:
・注文(親)
・注文明細(子)

ステップ3:項目設計の原則

型は絶対に正しく選ぶ

データ正しい型
日付Date
金額Currency
フラグCheckbox

NG例:
日付をTextで保存

→ 並び替え不可
→ 集計不可
→ 地獄

必須項目は最小限

初心者あるある:

「全部必須にする」

→ 入力できない
→ ユーザーが嫌う

基本ルール:

👉 必須は“本当に業務に必要なものだけ”

命名規則は命

おすすめ:

・API名は英語+スネークケース
・ラベルは日本語OK
・略語は禁止

例:
customer_contract_start_date__c

ステップ4:将来変更を前提にする

設計は必ず変わる。これ前提。

だから:

・拡張しやすい構造にする
・ハードコードしない
・選択リストを活用

ステップ5:レコードタイプ設計

用途:
・同じオブジェクトで複数業務を管理

例:
・法人顧客
・個人顧客

レコードタイプで分けることで:
・画面
・必須項目
・選択肢

を変えられる

よくある失敗パターン

① Lookupだらけ

→ データ構造が崩壊

② 項目乱立

→ 何が何かわからない

③ 命名カオス

→ 誰も触れない

④ 拡張不可設計

→ 改修コスト爆発

実務チェックリスト

設計レビューで見るポイント:

・オブジェクト分割は適切か?
・リレーションは正しいか?
・項目型は適切か?
・命名規則は統一されているか?
・将来変更に耐えられるか?

まとめ

・設計=プロジェクトの成否
・正規化は必須
・型と命名が品質を決める
・将来変更を前提に設計する