Когда я программирую, я часто пишу функции, что-should-(чтобы быть надлежащим английским языком) содержат апострофы (слишком плохой C запустил всех думающие, что апостроф был соответствующим разделителем). Например: get_user's_group() -> get_users_group()
. Что делает Вас, парни делают с тем принудительно-плохо-английским неоднозначным английским языком? Просто проигнорируйте апостроф? Создать другую формулировку?
В этом случае я бы сделал get_group_for_user ()
.
Так что да, я бы «создал другую формулировку» :)
Либо это, либо user.get_group ()
.
Либо get_user_ApostropheShouldBeHereButLanguageWillNotLetMe_s_group
, либо просто игнорируйте его, потому что это действительно не имеет значения.
Я игнорирую апостроф getGroupyUser
и group_from_user
оба совершенно понятны. Беспокойство о наличии правильной грамматики в именах ваших функций - это пустая трата времени и отвлекает от правильной цели иметь понятные и понятные имена пользователей.
Два пункта: Во-первых, не используйте имя, которое в противном случае потребовало бы апострофа, если вы можете избежать его. Во-вторых, вы правы в том, что беспокоитесь о двусмысленности. Например, вы можете:
getUsersGroup
: получить группу из списка пользователей. Если вы используете объектно-ориентированный язык, то это может иметь больше информации, чем просто строка идентификатора группы. Вы также можете иметь что-то вроде createUsersGroup
, что создаст объект группы из списка пользователей, переданных внутрь. getGroupOfUser
: принимает в каком-то объекте пользователя; возвращает имя группы пользователяgetGroupByUserId
: принимает имя пользователя или уникальный ID, связанный с этим пользователем; возвращает имя группы пользователяЛучший способ определить разницу между всеми этими объектами - просто использовать стандартные комментарии к методам, объясняющие имена методов. Это будет зависеть от того, с каким языком вы работаете и какой стиль комментариев метода используется в вашей организации.
getGroupOfUser
? getUserGroup
?
Это язык программирования, а не литература...
Это был бы getBackgroundColour
на правильном английском (а не getBackgroundColor
)
Обычно я просто бросаю апостроф, но работают ли обратные клещи? (get_user's_group)
-121--3770430-Ваше регулярное выражение почти работает, вы просто забыли уйти от периода. Кроме того, в PHP нужны разделители:
'/@(.*?)\./s'
S является модификатором DOTALL .
Вот полный пример того, как вы могли бы использовать его в PHP:
$s = 'foo@bar.baz';
$matches = array();
$t = preg_match('/@(.*?)\./s', $s, $matches);
print_r($matches[1]);
Output:
bar
-121--2300673- точка правильного английского в именовании функций немного экстремальна...
я имею в виду, почему апостроф беспокоит вас, но _ вместо пространства нет?
Лично я бы написал get_user_group()
, а не get_group_for_user()
, так как мне кажется, что он лучше читается. Конечно, я использую язык программирования, где апострофы разрешены в именах:
proc get_user's_group {id} {#...}
Хотя некоторые более плодовитые неанглоязычные европейские пользователи используют его в качестве разделителя слов:
proc user'group {id} {#...}
к каждому своему, наверное...
В зависимости от языка программирования можно использовать имена переменных Unicode, этот SO-поток перечисляет несколько.
С помощью Unicode-идентификаторов Вы можете использовать один из апострофов Unicode для правильного форматирования имени переменной на английском языке. Хотя это только предположение. И это будет трудно поддерживать. На самом деле, теперь, когда я думаю об этом, это звучит совершенно злобно.
Обычно я просто бросаю апостроф, но спинки работают? (get_user`s_group)
Мой первоначальный ответ Игнорировать его, двигаться дальше!
неполный. Вы должны игнорировать тот факт, что вы не можете использовать
в вашем методе / функциях. Но вы должны продолжать смотреть на именование их, чтобы лучше объяснить, что они делают. Я думаю, что это стоящее преследование в программировании.
Выбирая на JavaScript, вы могут , если вы хотите использовать апострофы:
const user = {
"get_user's_group": () => console.log("Naming things! Am I right?!")
}
user["get_user's_group"]()
, но не делайте этого