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
, мы видим замысловатые титулы, дарованные королю Роберту Баратеону, такие как «Король Андалов и Первых Людей, Лорд Семи Королевств и Защитник Царства». Произнесение этих великих названий вызывает благоговение и восхищение.
Я мог ошибаться, но, по крайней мере, я мог ошибаться по смыслу, не так уж плохо, счастливого развития!