Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > f.g.programmer

Оценить эту запись

ActionScript 3.0. Правила именования.

Запись от f.g.programmer размещена 25.09.2010 в 02:12
Обновил(-а) BlooDHounD 29.09.2010 в 14:10

В процессе приобретения опыта программирования, чтения чужого кода, рекомендаций по именованию, у меня выработались некоторые правила, которых я стараюсь придерживаться.
Но мне было бы интересно узнать, каких правил придерживаются другие и по каким соображениям, и, возможно, расширить набор или внести коррективы.

Сразу скажу, что признаю возможность своей неправоты и не призываю строго придерживаться правил описанных мною. Каждый предпочитает что-то своё, и что подходит одному не всегда подойдёт другому.

Базовые принципы

* Имя должно отображать суть.
* Имя должно быть легко читаемым.
* Сокращения используются только если они узнаваемы и не ухудшают читаемость.
* Имя должно быть англоязычным.



Имя класса
Здесь всё просто, правило общее для многих языков.
Набор слов, каждое начинается с прописной буквы, по сути - существительное в единственном числе с определяющими словами. Аббревиатуры пишутся прописными буквами.
Примеры
Код AS3:
BigGreenSquare
AngryCat
XMLParser

Имя поля

Имя поля - это переменная-свойство класса или его экземпляра. Служат для хранения и управления состояниями объектов.
Код AS3:
class  AngryCat {
    private static var _manager:AngryCatManager; // поле класса
    private var _sex:int; // поле экземпляра
}
Поля классов всегда private, поля экземляров - private или protected.
Имя по сути - существительное в единственном или множественном числе с определяющими словами. Все буквы в имени строчные, слова отделяются друг от друга символом подчёркивания, начинается с символа подчёркивания.
Примеры
Код AS3:
_x
_begin_speed
_current_target
_new_best_friends // в случае с множественным числом, это обычно Array или Vector
Поля экземпляров также могут быть определяющим словом или словами относящимися к самому экземляру, примеры
Код AS3:
_ready
_loaded
Локальные переменные и параметры методов
По сути - существительное в ед. или мн. числе с определяющими словами. Все буквы строчные, слова отделяются друг от друга символом подчёркивания, начинается с буквы.
Код AS3:
Примеры
local_variable
temp_state
result
args

Функции, методы, геттеры, сеттеры

Набор слов, первое начинается со строчной буквы, остальные с прописной.
Имена функций и методов по сути представляют из себя некоторый процесс, действие или вопрос, обычно начинаются с глагола.
Имена геттеров, сеттеров по сути то же что и поля
Примеры функций и методов
Код AS3:
doSomething()
createNewCat()
isReady()
Примеры геттеров, сеттеров
те же что и для полей, но с правилами набора букв как у функций
Код AS3:
beginSpeed
currentTarget
loaded

Константы

Набор слов, разделённых символом подчёркивания, состоящий из прописных букв. По сути ближе всего к переменным.
Примеры
Код AS3:
MAX_VALUE
RADIAN_COOF

Интерфейсы
Интерфейсы в AS3 состоят из списка методов или геттеров, сеттеров. По сути служат для отображения способности что-то делать.
Имя начинается с большой буквы “I”, все остальные слова пишутся с заглавной буквы. Часто кончается на “able”, или представляет из себя абстракцию высокого уровня.
Примеры
Код AS3:
IDrawable
IClonable
ITrajectory
Всего комментариев 59

Комментарии

Старый 06.10.2010 23:52 dimarik вне форума
dimarik
 
Аватар для dimarik
Ну так в примере, в условии, явно спрашивали за null, заметь, а не за undefined. Или я опять что-то не понял, или что-то ты утаиваешь? )
Старый 07.10.2010 00:08 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
нет, это значит:
Код AS3:
if (foo[100] == null)
то это плохо, но допустимо т.как оно там может быть что угодно, и может человек именно null искал, а не undefined или там ноль. В любом другом случае -
Код AS3:
if (!foo)
. Почему - очень просто, короче и без ущерба для здоровья. Но это мелочи на общем фоне. Если человек будет писать функции по пятсот строк, и будет в то же время писать if (foo), ничем это не поможет. Надо соблюсти все, тогда и эффект будет.
Старый 07.10.2010 00:26 dimarik вне форума
dimarik
 
Аватар для dimarik
А, понятно! Это ты про нубские ошибки. Я просто подумал, что это честный человек написал в условии того, чего хочет.)
Старый 07.10.2010 13:48 GBee вне форума
GBee
 
Аватар для GBee
Мне всегда было интересно, кто как пишет названия, если они содержат аббревиатуры и тп вещи, типа XML, ID, HTTP и т.п?

myID или myId, XMLParser или XmlParser?
Старый 07.10.2010 18:08 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
xmlParser или XMLParser. Ссылки на конвенции были.

Олег, а ты устроился LD работать? Расскажи =)
Старый 07.10.2010 23:43 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Не, я вообще не понятно еще чем занимаюсь. Но давайте не засорять интересную тему экскурсами в личную жизнь
По поводу аббревиатур, я теперь больше склоняюсь к тому, чтобы 3+ букв - паскаль-кейс, 2 буквы - обе прописные. Но имо, другой подход не ошибка. Кроме того - меньше прописных буков набирать - меньше кнопок жать, маленький, но выигрыш
Старый 08.10.2010 08:35 GBee вне форума
GBee
 
Аватар для GBee
Цитата:
Ссылки на конвенции были.
Судя по этой теме, у каждого своя конвенция. Да и вопрос кто как пишет был.
Старый 08.10.2010 12:33 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
@GBee, есть конвенция от Adobe - она единственно правильная рекомендация. Все остальные - неправильные. Рекомендацией это называется потому что есть ещё и здравый смысл: я не следую 1-2 правилом из неё, потому что мне так более удобно. Уверен, что в любой команде есть свои правила написания кода, но в любой вменяемой команде все они строятся на вышеупомянутой конвенции.

@wvxvw, вроде паскаль регистронезависим. Приведи пример пожалуйста, что ты имел ввиду. )
Старый 08.10.2010 14:45 petyar вне форума
petyar
@Psycho Tiger, имелся в виду стиль наименования переменных, а не язык. Стиль "Паскаль" - имя переменной начинается с прописной, к примеру: CurrentLevel. "Верблюд" - соответственно, со строчной: allowControl.
 
Последние записи от f.g.programmer

 


Часовой пояс GMT +4, время: 12:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.