Соглашения о наименовании

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

Имя элемента должно отражать его назначение.

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

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

Вы никогда не должны использовать бессмысленные имена, такие, как a, b, x23, state1, event14. Односимвольные имена могут использоваться только в качестве имен временных “одноразовых” переменных, например, для индексов циклов. Избегайте аббревиатур, если только они не используются в обычной жизни чаще, чем сами полные названия, например: КПД, ROI, ARPU. Помните, что используя имя элемента в выражении или коде, вам не нужно будет печатать его полностью: эту работу сделает за вас Мастер подстановки кода AnyLogic, поэтому вы можете легко использовать длинные имена.

Придерживайтесь одного стиля наименований.

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

Пара важных фактов: Java учитывает регистр: Anylogic и AnyLogic являются различными именами! Имена не могут содержать пробелов.

В приведенной ниже таблице приводятся рекомендации по наименованию различных типов элементов модели.

Элемент

Правила наименования

Примеры

  • Переменная
  • Параметр
  • Коллекция
  • Табличная функция
  • Статистика

Первая буква может быть как строчной, так и заглавной (здесь мы ослабляем требования к наименованию); каждое входящее в составное имя слово должно начинаться с заглавной буквы.

Имя должно быть существительным.

Для имен коллекций используйте множественное число.

Иногда добавление суффикса или префикса с именем типа элемента может помочь понять смысл элемента и избежать дублирования имен. Например, AgeDistribution может быть пользовательским распределением, заданным на основе данных, хранящихся в табличной функции AgeDistributionTable.

rate
Income
DevelopmentCost
inventory
AgeDistribution
AgeDistributionTable
friends
  • Функция

Первая буква должна быть строчной, каждое входящее в составное имя слово должно начинаться с заглавной буквы.

Имя должно быть глаголом.

Если функция возвращает значение свойства объекта, ее имя должно начинаться с префикса get (или is, если она возвращает значение логического типа boolean). Если функция изменяет значение свойства объекта, то ее имя должно начинаться с префикса set.

Чтобы сделать код более компактным, некоторые функции (такие как системные функции AnyLogic time() и date() или функция size() коллекций Java) префикса не имеют.

resetStatistics
getAnnualProfit
goHome
speedup
getEstimatedROI
setTarget
inState
isVisible
isEnabled
  • Аргумент функции
  • Локальная переменная, объявленная в коде

Имя должно быть по возможности коротким, начинаться со строчной буквы. Если состоит из нескольких слов, то каждое входящее в составное имя слово должно начинаться с заглавной буквы.

Обычными именами для временных целых переменных являются i, j, k, m и n.

cost
sum
total
baseValue
i
n
  • Константа Java
Имя пишется в верхнем регистре, составляющие составное имя слова разделяются символами подчеркивания “_”. TIME_UNIT_MONTH
Агенты:
  • Тип агента
  • Пользовательский Java класс
  • Динамическое событие

Первая буква обязательно должна быть заглавной, каждое входящее в составное имя слово также должно начинаться с заглавной буквы.

Имя должно быть существительным, если только элемент не задает компонент модели, моделирующий процесс, и имеющий смысл действия - в этом случае имя может быть глаголом.

Consumer
Project
UseNurse
RegistrationProcess
HousingSector
PhoneCall
Order
Arrival
  • Вложенный объект, т.e. экземпляр типа агента, включая библиотечные объекты

Первая буква должна быть строчной, каждое входящее в составное имя слово должно начинаться с заглавной буквы.

Для имен реплицированных объектов используйте множественное число.

project
consumers
people
doTriage
registrationProcess
stuffAndMailBill

Динамические переменные:

  • Накопитель
  • Поток
  • Вспомогательная переменная

В моделях системной динамики очень часто используются длинные многословные имена переменных. Поскольку в Java и в AnyLogic имена не могут содержать пробелов, то вы должны использовать другие способы для разделения слов. Мы рекомендуем начинать каждое слово составного имени переменной с заглавной буквы. Использование подчеркиваний ”_” не рекомендуется, но допускается.

BirthRate
Population
DrugsUnderConsideration
TimeToImplementStrategies
  • Событие (не динамическое)
  • Диаграмма состояний
  • Состояния
  • Переход

Первая буква может быть как заглавной, так и строчной, каждое входящее в составное имя слово начинается с заглавной буквы.

overflow
at8AMeveryDay
purchaseBehavior
InWorkForce
discard