Соглашения об именах: "состояние" и "статус" [закрыто]
быстрый вопрос: я хотел бы услышать ваши мысли о том, когда использовать "состояние" и "статус" при именовании обоих полей, таких как "Foo.currentState " vs " Foo.статус "и типы, такие как" enum FooState "vs"enum FooStatus". Обсуждается ли там конвенция? Мы должны использовать только один? Если да, то какой, а если нет, то как мы должны выбрать?
12 ответов:
Это зависит от контекста
состояние обычно относится ко всему состоянию объекта-все его значения и отношения в определенный момент времени (обычно, текущий)
статус-это скорее временная точка, скажем, где что - то находится в процессе или рабочем процессе-это грязно (поэтому требует сохранения), он завершен, он ожидает ввода и т. д.
Я надеюсь, что это поможет вам в вашем решении.
обычно я буду использовать государство для обозначения текущего состояния объекта или системы в целом. Я использую статус для представления результатов некоторых действий. Например, состояние объекта может быть сохранено / несохранено, допустимо / недопустимо. Состояние (результат) метода-успешно / неуспешно / ошибка. Я думаю, что это довольно хорошо согласуется с определением статуса как"или в отношении обстоятельств, " обстоятельства в данном случае являются применение действия / метода.
другая (полностью прагматическая) причина предпочесть состояние статусу заключается в том, что множественное число прямолинейно:
- государство -> государства
- информация -> статусы
и поверьте мне, рано или поздно у вас будет список или массив или любое другое состояние в вашем коде, и вам придется назвать переменную.
Я думаю, что многие люди используют " статус "для представления состояния объекта, если ни по какой другой причине, кроме" государства", не относится к политическому разделению Соединенных Штатов.
Я думаю, что вы могли бы добавить еще одну перспективу в уравнение, а именно "отправитель-запросчик".
с точки зрения отправителей, я бы передал свое состояние любому, кто готов слушать. Хотя с точки зрения просителей, я бы попросил чей-то статус.
вышеизложенное также может быть интерпретировано с точки зрения неопределенности: - Определено = состояние - Определено = статус Каков ваш статус? Я в расслабленном состоянии.
Я уверен, что это только один интерпретация, которая может не относиться к вашей конкретной ситуации.
быстрая проверка словаря показывает, что статус является синонимом состояния, но имеет дополнительную интерпретацию положение относительно других.
поэтому я бы использовал state для набора состояний, которые не имеют никакого неявного порядка или положения относительно друг друга, и статус для тех, кто делает (возможно, в режиме ожидания ?). Но это тонкое различие.
многие объекты, с которыми я имею дело (учетные записи, клиенты), могут иметь состояние (TX, VA и т. д.) и состояние (активный, закрытый и т. д.)
таким образом, пункт о том, что термин вводит в заблуждение, возможен. У нас есть стандартизированное соглашение об именовании баз данных (не мой личный выбор), где состояние называется
ST_CD
и будетACCT_STAT_CD
.с перечислением в среде OO эта проблема не так важна, так как если у вас есть строгая безопасность типов, компилятор гарантирует, что никто не пытается сделать это:
theCustomer.State = Customer.Status.Active;
Если вы находитесь в динамической среде, я бы больше волновался!
Если вы имеете дело с областью, где государственные машины или другая информация о состоянии и эта терминология преобладают, то я бы подумал, что состояние совершенно нормально.
У нас были эти точные дебаты по моему текущему проекту некоторое время назад. У меня действительно нет предпочтений, но последовательность является важным соображением.
первое (есть несколько) определение " состояния "в моем Sharp PW-E550 (удивительный словарь, я мог бы добавить) - это" особое состояние, в котором кто-то или что-то находится в определенное время."Первое определение" статуса "- это"относительное социальное, профессиональное или иное положение кого-либо или чего-либо". Даже второй (а последнее) определение понятия " статус "уступает понятию" государство "в данном контексте:" положение дел в конкретный момент времени, т. е. в политическом или коммерческом контексте."
кроме того, существует шаблон проектирования, описанный в книге "Банда четырех" под названием "шаблон состояния", твердо устанавливающий термин в вычислительная лексика.
по этим причинам я предлагаю "государство".
С. П. является то, что вы ДДМ? Вы все еще горько относитесь к "государству" против "статуса"?!!!!!!! Ржунимагу!
Ну, они означают одно и то же. Я не думаю, что необходимо обнародовать большое предпочтение одного над другим, но я бы вообще пошел с "статусом", потому что мне нравятся вещи, которые звучат латинскими и классическими. Я имею в виду, что в моем мире множественное число schema-это schemata, поэтому для меня нет другого пути.
Sophistifunk, я уверен, что вы получите аргументы как для состояния, так и для статуса. Самое главное, чтобы вы выбрали один, и использовать только один. Я бы предложил обсудить это с вашей командой и посмотреть, что все согласны.
тем не менее, мое предложение заключается в следующем.
предполагая, что вы используете объектно-ориентированный язык программирования, "состояние" объекта представлено самим объектом. SomeObject.государство вводит в заблуждение ИМО. Я не уверен, что представляет собой " статус в вашем примере, но моя естественная интуиция предпочитает это утверждать.
совсем не то же самое. Остановленные и запущенные состояния. Остановка и запуск-это состояние.
Если вы делаете их то же самое, как вы описываете автомобиль как остановленный, но в настоящее время начинается. Или заявка, поданная в настоящее время, но еще не вошедшая в процесс утверждения или утверждаемая, но в настоящее время приостановленная с условием ошибки ожидания подписи?