GetUserByIdOrReference против GetUser

Какое имя лучше для функции?

func GetUserByIdOrReference(id, userReference string) (*User, error) {
 var db = database.CreateFinanceCryptoDatabaseHandleFromPool()
 user := User{}
 var err error
 if id != "" {
  // If ID is provided, query by ID
  err = db.Get(&user, USER_GET_QUERY_BY_ID, id)
 } else if userReference != "" {
  // If ID is not provided but userReference is provided, query by userReference
  err = db.Get(&user, USER_GET_QUERY_BY_USER_REFERENCE, userReference)
 } else {
  // If neither ID nor userReference is provided, return an error
  return nil, fmt.Errorf("either id or userReference must be specified")
 }

 return &user, err
}

Or

func GetUser(id, userReference string) (*User, error) {
 var db = database.CreateFinanceCryptoDatabaseHandleFromPool()
 user := User{}
 var err error
 if id != "" {
  // If ID is provided, query by ID
  err = db.Get(&user, USER_GET_QUERY_BY_ID, id)
 } else if userReference != "" {
  // If ID is not provided but userReference is provided, query by userReference
  err = db.Get(&user, USER_GET_QUERY_BY_USER_REFERENCE, userReference)
 } else {
  // If neither ID nor userReference is provided, return an error
  return nil, fmt.Errorf("either id or userReference must be specified")
 }

 return &user, err
}

Хотел бы я провести здесь опрос, но правда в том, что два старших разработчика из моей команды проголосовали за первый.

Однако я вижу другое:

После моего первоначального прочтения кода встреча с функцией GetUserByIdOrReference имеет тенденцию вызывать чувство трепета, как будто перед лицом пугающей проблемы. Моей подсознательной реакцией может быть: «Боже мой, это должно быть сложная и сложная функция; Я пока отложу это. Напротив, обнаружение функции GetUser в конце кода приносит облегчение, поскольку короткие и лаконичные имена функций способствуют более удобному изучению.

Что касается GetUser, его имя не только передает его назначение, но и его параметры также предоставляют ценную информацию, указывая на то, что эта функция использует id и userReference для извлечения пользователя. Ясность как имени, так и параметров позволяет быстро понять и сразу понять его предполагаемую функциональность.

Проводя параллели с царством Game of Thrones, мы видим замысловатые титулы, дарованные королю Роберту Баратеону, такие как «Король Андалов и Первых Людей, Лорд Семи Королевств и Защитник Царства». Произнесение этих великих названий вызывает благоговение и восхищение.

Я мог ошибаться, но, по крайней мере, я мог ошибаться по смыслу, не так уж плохо, счастливого развития!