関数命名について GetXXX と CreateXXX の違い

May 14, 2023

4 mins read

背景

現在の参画している案件で「週1ゆるアウトプット」という名前でアウトプットしている方がいたので、自分も真似してみようと思う。
今回は、コードを書いていてふと気になったことがあったので、簡単にまとめていく。


概要

戻り地がある関数を命名するときに、createXXXgetXXXのどちらを使うか迷ったので、まとめていく。


本題

以下はサンプルコードを記載する。 名前のフルネームを作成する関数である。
createFullNamegetFullNameのどちらが適切かをまとめていく。

// 1. createXXX
const createFullName = (firstName: string, lastName: string): string => {
  return `${firstName} ${lastName}`
}

// 2. getXXX
const getFullName = (firstName: string, lastName: string): string => {
  return `${firstName} ${lastName}`
}

ポイントとしては、getXXX通常、既存のデータやリソースを取得するときに使用することを想定すること。
createXXX新しいデータを作成するときに使用する
なので、今回の場合は、既存のデータやリソースを取得するわけではないので、createXXXを使用するのが適切だと判断。

getXXXを使ったサンプルは以下

  1. ユーザー情報を取得する場合
const getUserInfo = (userId: string) => {
  // ユーザー情報を取得するロジック
};
  1. 配列から特定の要素を取得する場合
const getElementAtIndex = (array: string[], index: number) => {
  return array[index];
};
  1. オブジェクトのプロパティ値を取得する関数
const getPropertyValue = (object: Object, propertyName: string) => {
  return object[propertyName];
};


まとめ

今回は、関数の命名についてcreateXXXgetXXXのどちらを使うか迷ったので、まとめてみた。 getXXX通常、既存のデータやリソースを取得するときに使用することを想定すること。
createXXX新しいデータを作成するときに使用する

改めて言語化できたので、スッキリできた。