Одна из вещей, которые мне больше всего нравятся в какао, это коэффициент читаемости.
Одна из вещей, которая меня раздражает больше всего, - это соглашение конструкторов удобства для принудительного повторения.
Вот пример:
[NSString stringWithString:s]
[NSNumber numberWithDouble:d]
[NSValue valueWithInt:i]
[NSDictionary dictionaryWithObjectsAndKeys:<blah>]
и т.д.
Почему конвенция просто не запускает конструкторы удобства со словом "with"? так что тогда мы будем иметь:
[NSString withString:s]
[NSNumber withDouble:d]
[NSValue withInt:i]
[NSDictionary withObjectsAndKeys:<blah>]
и т.д.
Это небольшой вопрос для обсуждения, но я подумал, что просто выброшу туда и посмотрю, сможет ли кто-нибудь с большим влиянием, чем я, объяснить все эхо в моей голове.
Очевидно, я не собираюсь ходатайствовать перед AAPL о переписывании appKit в пользу моего предложения, но есть ли какие-либо аргументы против именования моих собственных конструкторов удобства как таковых?
Конечно, я могу использовать любые условные обозначения, которые я хочу, в моем собственном коде, но я ненавижу слепо плыть вверх по течению.