メインコンテンツまでスキップ

定数の定義例 - IM-BloomMaker

IM-BloomMakerで定義できる定数について、具体例を説明します。ここで紹介する内容は、数値や文字列などの識別子を直接利用する際のコスト軽減(スペルミスの抑止や記述変更時のメンテナンス性向上)を目的としています。

定数の命名例

  • 略称の使用を避ける
    • 略称についての統一的な認識がされていない場合、可読性の低下につながります。
  • 定数名は基本コンスタントケース(大文字かつ単語を_で区切る)とする
    • 例:INIT_SEARCH_CONDITION
    • ただし、アクションなどで変数を定数の値で更新するような処理をしたい場合、定数の名前を変数に合わておくと識別しやすくなります。
      • 例:変数名がuserNameであれば、定数名もuserNameにする
  • 定数は意味や役割のまとまり(オブジェクト)ごとに整理する
    • 初期化用定数、APIエンドポイントや画面遷移用のURLなど
    • 例:INIT_SEARCH_CONDITION, URL, END_POINT, ...

よくある定数の例

初期化用定数

入力エリアや繰り返しエレメントなどに紐づけた変数を、定数値で初期するときに利用できます。

{
"INIT_INPUT_AREA": { // 変数の初期化用(入力エリア)
"id": "",
"name": "",
"status": 0
},
"INIT_USER": { // 配列要素の初期値(繰り返しエレメント)
"id": "",
"name": ""
}
}
INIT_INPUT_AREAの利用例
アクション:変数〇に〇を代入する
代入元$constant.INIT_INPUT_AREA
代入先$variable.state.inputArea
INIT_USERの利用例
アクション:カスタムスクリプトを実行する

// ユーザ配列に初期値でユーザを追加

$variable.state.users.push($constant.INIT_USER)
備考

定数の命名例に記載したとおり、変数を更新する目的の定数定義になるため、定数の名前(idnamestatusなど)は代入先の変数名と同じ表記(キャメルケース)にしています。

ヒント

以下の参考記事では、繰り返しエレメントに紐づけた配列へ要素を追加するときにidnameといったオブジェクトのキー名を含めて直接記述していますが、上記のINIT_USERのようにpushメソッドに渡すオブジェクト自体を定数側で定義しておけば将来の変更に強くなります。

URL

  • APIエンドポイント用のURL
  • 画面遷移用のURL
    • パラメータを含むURLは、URL全体を定数として定義しておきます。利用する際にパラメータ部分(例:{taskId})を置換したり、文字列結合したりすることで動的にURLを生成できます。
{
"URL": {
"LIST": "accel-studio-app/task_management/list", // エンドポイント
"EDIT": "accel-studio-app/task_management/{taskId}" // パラメータを含む場合
}
}
URL.LISTの利用例
アクション:URL〇にリクエストを送信する
URL$constant.URL.LISTリクエストパラメータ$variable.endPoint.list.requestParameterレスポンスデータ$variable.endPoint.list.responseData
備考

リクエストパラメータレスポンスデータに指定するendPoint配下の変数の構造設計については、変数構造を検討するendPoint)の記載を参考にしてください。

画面識別(mode)

画面の種別に応じて、表示する内容や処理を切り替える場合に利用できます。

{
"MODE": {
"REGISTER": "register", // 登録画面
"REFER": "refer", // 参照画面
"EDIT": "edit" // 編集画面
}
}

エレメントに指定する固定値

フォントサイズや色、アイコンなどを定数として定義しておくことで、デザイン変更時に一括変更ができるようになります。

{
"ICON_CLASS": {
"SORT": {
"DEFAULT": "fas fa-sort",
"ASC": "fas fa-sort-up",
"DESC": "fas fa-sort-down"
}
}
}

ソートに指定する固定値

ソート処理に利用する「ソート対象のカラム指定」や「ソート方向」など定義します。

{
"SORT_PARAMETER": {
"SORT_CONDTION": {
"SORT_KEYS": { // 実際のカラム名をバリュー側に指定
"userCd": "user_cd",
"userName": "user_name",
"userSearchName": "user_search_name",
"emailAddress1": "email_address1"
},
"SORT_DIRECTION": { // ソート方向の指定を定数化
"ASC": "ASC",
"DESC": "DESC"
}
}
}
}

リクエストパラメータの固定値

APIエンドポイントに設定する固定パラメータを、エンドポイントごとに定義します。

{
"REQUEST": {
"{%エンドポイントごとのオブジェクト%}" {
"LIMTT": 30,
"OFFSET": 1
}
}
}
}

その他

  • プルダウン
  • メッセージ
    • 複数言語のメッセージを扱う場合には多言語の利用をおすすめしますが、定数を利用することもできます。
  • 税率などの計算値(係数)
  • prefix、suffixなどの固定値