本記事では、Salesforceのインプリ(標準機能を使った実装と定義)に関する命名規約の必要性とファイル様式(テンプレート)を提供します。
標準機能に関する設定項目は機能追加とともに年々増えてきています。
Salesforceプロジェクトでは、要件定義フェーズからすぐにプロトタイプを作成が始めることがほとんどだと思います。
要件定義フェーズで命名規約を定義しないまま進めた結果、プロトタイプの作成が終わって、いざ設計・開発工程になるとこれまで設定した意味不明なプロトタイプの命名を改名するところから始まることもあります。
メタデータをすべて洗い出して定義しなおすのはかなりしんどい作業になるので、あらかじめ定義して無駄のない効率的な開発を目指しましょう。
また、Creative Content Lab Tokyo(クリエイティブコンテンツラボトウキョウ)が作成したプロジェクトですぐに使えるSalesforce標準設定のインプリに関する命名規約のテンプレートをご提供しておりますので、ご活用ください。
1.Saleforce標準機能の命名規約について
Salesforceの標準機能では、基本的にラベル名(論理名)とAPI参照名(物理名)の2種類があります。
参考
・ラベル名:主にユーザが利用するもの(画面やレポートなどに表示される名称)
・API参照名:主に開発者やシステム管理者が利用するもの(Apex等のプログラムから項目や設定のメタデータを参照するときに利用します)
今回ご紹介する命名規約は主にAPI参照名の付与ルールとなります。
ラベル名に関してはお客様の業務に合わせた形で定義することが多いため、どちらかというと業務用の用語集を作成しておき、用語集に定義されたものに統一するというのが一般的かと思います。
用語集が必要な方は、こちらの記事からダウンロードできます。
-
参考セールスフォース用語集(Excelテンプレート)サンプル
本記事では、Salesforceプロジェクトですぐに使えるSalesforce基礎用語の用語集のテンプレートをご提供しております。 1.Salesforceの用語集サンプル プロジェクト開始後、お客様 ...
続きを見る
スネークケースとキャメルケースについて
開発者の方は、スネークケースとキャメルケースという言葉はよく知っているかもしれません。
これは、複数のアルファベットを組み合わせて命名するときに各単語や要素の先頭の文字を大文字で表現したりアンダースコア(_)で表現する手法を表す言葉です。
スネークケース
スネークケースは、名前の通り地面を這う蛇(へび)のようだからという理由でそのように呼ばれるそうです。
具体的な表記法は、単語間の区切りをアンダースコアで表現します。
参考
system_administrator_profile
この手法も実はスネークケースと呼ばれることを知らずに使っている方も多いのではないでしょうか。
名称はしらずとも、間をハイフンで繋ぐとか単語の区切りを大文字にするなどルールを決めてやっていればそれで問題ないということです。
キャメルケース
続いては、キャメルケースとなります。なぜここでラクダの写真がアップされたのかすぐにお分かりになると思います。
キャメルケースは、大小の組み合わせがラクダのこぶの形に似ているということでこのように呼ばれるそうです。
上記の写真は、管理人が実際にモンゴル砂漠でラクダに乗ったときに撮影したもので、実はこの写真は会社で企画された写真でアワードを取って、カレンダー化されました。
グローバルでの企画だったので各国からかなりの数の応募があった中で、私と同僚の二人が偶然カレンダー賞に選ばれるという思いで深い作品です。
もしかしたら日本の本社の方や、パートナーの方でこれを受け取った方が、このサイトを見て気づいてくれたかもしれません。
話がそれましたが、説明を続けます。
キャメルケースは、先頭は小文字で単語の区切りを大文字で表現します。
キャメルケースには、種類あって、先頭も大文字にするアッパーキャメルケース(パスカルケースとも言います)と、逆に小文字で表すのはローワキャメルケースといいます。
アッパーキャメルケース
参考
SystemAdministratorProfile
ローワーキャメルケース
参考
systemAdministratorProfile
ケバブケース
もうひとつケバブケースというのがあります。
HTMLのクラス名(Class)やCSSに利用されることが多いのがケバブケースとなります。
こちらも名前から想像できますが町で見かけるケバブをイメージすると串にささって焼かれてますよね。あのイメージで串のかわりに[-]ハイフンが使われます。
単語と単語の間を[-]ハイフンで繋ぐのがケバブケースとなります。
参考
system-administrator-profile
注意ポイント
javascriptなどでは、ハイフンはマイナス記号として認識されるため変数としては利用できません。利用する言語やデータベースによっては不具合を生む可能性がありますので、利用する際は注意が必要となります。
Salesforceのインプリ(標準機能を使った実装)に関する命名規約
画像はクリックすると拡大表示されます。
標準機能といっても一つ一つ挙げるとかなりの量があるため、一部サンプルでご紹介します。
実際には、プロジェクトで利用するものだけに絞って定義すればよいので、テンプレートを利用する場合は、プロジェクトに合わせて追加・削除してご利用ください。
権限関連
まず権限関連では、以下のような内容を定義します。
参考
- 機能:ロールやプロファイルといった標準機能を定義
- ラベル名:ラベル名(論理名)の命名ルールを定義します。例えばロールであえばお客様組織の部門名や部署名などを利用するなど機能の用途に合わせてルールを設定します。また(※1)で記載していますが、基本的には用語統一のため用語集用いることとしています。
- API参照名:物理名に関しては、基本的にラベル名を英訳したものを定義します。※用語集の英訳欄があればそれを用いる方が統一されてよい
- 制限事項:名称の桁数にはそれぞれ上限があるためあらかじめ上限数を定義しておきましょう
- 手法:命名の手法を定義します。※テンプレートでは選択リストから選択可能。ただしあらかじめ定義されたもの以外を利用する場合は具体的なルールを記載しましょう。例えばSalesforce標準に準ずるとして、Salesforce標準で用いられているものを例で説明したり等
上記のように必要な機能とルールをそれぞれ定義して、メンバーへ配布して使っていきましょう。
また、エクセルベースで用語集や各種規約を管理する場合、メンバー同士の共有や資料の更新が難しいと思います。
その場合は、GoogleのSpreadsheet(スプレッドシート)化して利用することをお勧めします。
メンバー全員で参照・編集できるため、用語集や設計書など更新頻度の高い資料の管理が非常に効率的に行うことができます。
注意ポイント
ただし、セキュリティだけは十分に注意してください。
基本的にプロジェクトで扱う資料はほとんどが守秘義務があるものばかりです。
Googleドライブやその他クラウドサービスを利用して文書を管理する場合は、必ず外部のユーザが参照できないようなセキュリティ設定としましょう。
Salesforce標準機能のインプリ命名ルール(テンプレート)ダウンロード
※実際のプロジェクトでは、複数メンバーで共同作業することが多いため、上記のようにGoogleのスプレッドシートを利用して同時編集できるようにすると作業効率がアップしますので、お勧めです。
ただしセキュリティ設定だけはしっかりとしておいてください!!
(共有は必要なメンバーを指定する形とし、リンクを知っている人が誰でも参照・編集できるような設定はしないように注意してください)
3.命名規約のダウンロード
資料のダウンロードおよびご利用に関しては、本サイトのコンテンツ利用規約に同意される場合のみ利用可能となります。
一般公開資料
標準インプリ命名規約(Excel)のダウンロードはこちら