Полагаю, ваш реальный вопрос в том, что если c # может делать все, зачем вообще использовать javascript? Ответ здесь - производительность, как воспринимаемая, так и реальная. Хитрость заключается в том, что для использования C # для выполнения DOM-манипуляций, обычно связанных с javascript, браузер должен отправить дополнительный http-запрос на сервер и сообщить коду c #, что делать. Давайте поговорим об этих дополнительных запросах. Распространение вокруг множества пользователей, они очень быстро складываются и разрушают инфраструктуру вашего сервера. «Реальная» проблема производительности заключается в том, что теперь большая часть работы должна выполняться на вашем сервере (ах), а не в браузерах ваших пользователей. «Воспринимаемые» проблемы с производительностью заключаются в том, что даже если у вас есть ресурсы сервера для простой обработки всех дополнительных http-запросов, ваш пользователь теперь должен тратить дополнительное время на ожидание задержки, вызванной этими обходами http.
Я обычно использую имена переменных экземпляра без префикса (обратите внимание, что «переменная-член» - это изм C ++, поскольку он предполагает, что структуры и классы в основном взаимозаменяемы, чего нет в Objective-C), и в случаях, когда возникает двусмысленность, я использую соглашение Smalltalk о наименовании параметра по его типу с помощью «a» или «an», например:
- (void)setFoo:(SOFoo *)aFoo;
{
foo = aFoo;
}
(конечно, в современном ObjC вы бы использовали для этого свойство.)
Использование theFoo
вместо aFoo
также довольно распространено; см. ответы на этот вопрос .
Соглашение Google имеет смысл, если вы действительно беспокоитесь о конфликтах. Если вы используете текстовый макрос Xcode или такой инструмент, как Completion Dictionary или Accessorizer для создания своих директив, его довольно просто принять.
Обратите внимание, что
1143103] Руководство по кодированию значения ключа какао в значительной степени предполагает, что либо (а) вы не добавляете префикс / суффикс к именам переменных экземпляра, либо (б) вы реализуете (или синтезируете) для них методы доступа без префиксов / суффиксов. Как уже упоминалось, не используйте префикс _; он зарезервирован для использования Apple в своих фреймворках.
Как уже упоминалось, не используйте префикс _; он зарезервирован для использования Apple в своих фреймворках. Как уже упоминалось, не используйте префикс _; он зарезервирован для использования Apple в своих фреймворках. m_variableName
также довольно часто используется для переменных-членов.
Лично я обычно использую одно и то же имя для обеих переменных и делаю различие между this.varname
и varname
.
В Какао стиль состоит в том, чтобы иметь имена pascalCased (или это CamelCased? Я никогда не могу вспомнить); и пусть переменные-члены будут названы так же, как методы доступа. (Например, NSInteger anInteger
, - anInteger
и - setAnInteger:
).
Это может быть не лучший стиль, но, вероятно, неплохая идея. привыкайте к нему, если вы собираетесь проделать какой-либо объем работы с Какао, так как ряд механизмов предполагает именно этот тип соглашения об именах.
Во-первых: в Objective-C нет «переменных-членов», есть «переменные экземпляра» или «ivars».
Google НЕ является авторитетом в области кодирования Objective-C или разработка для Mac. «Google Планета Земля - это приложение Qt», - сказал Нафф.
Кажется, я помню, как видел официальное руководство по стилю кодирования от Apple для Objective-C, которое я не нахожу на данный момент. Однако эта статья представляет собой довольно хорошее резюме:
http://cocoadevcentral.com/articles/000082.php
Нашел! Вот официальные рекомендации Apple по кодированию для Какао: