Соглашения об именах:«Состояние» против «Статуса» [закрыто]

StackOverflow https://stackoverflow.com/questions/1162816

  •  18-09-2019
  •  | 
  •  

Вопрос

Быстрый вопрос:Я хотел бы услышать ваши мысли о том, когда использовать «Состояние» вместо «Статус» при именовании обоих полей, таких как «Foo.currentState» и «Foo.status», и типов, таких как «enum FooState» и «enum FooStatus».Обсуждается ли там какая-нибудь конвенция?Должны ли мы использовать только один?Если да, то какой, а если нет, то как выбрать?

Это было полезно?

Решение

Это зависит от контекста

Состояние обычно относится ко всему состоянию объекта — всем его значениям и отношениям в определенный момент времени (обычно текущий).

Статус — это скорее момент времени, скажем, где что-то находится в процессе или рабочем процессе — является ли оно грязным (поэтому требует сохранения), завершено ли оно, ожидает ли оно ввода и т. д.

Надеюсь, это поможет вам в вашем решении.

Другие советы

ИМХО:

статус == как дела?[хорошо плохо]

состояние == что ты делаешь?[отдыхаю/работаю]

Обычно я использую «Состояние» для обозначения текущего состояния объекта или системы в целом.Я использую статус, чтобы представить результат какого-либо действия.Например, состояние объекта может быть сохраненным/несохраненным, действительным/недействительным.Статус (результат) метода — успешный/неуспешный/ошибочный.Я думаю, что это вполне согласуется с определением статуса как «состояние или состояние относительно обстоятельств», обстоятельствами в данном случае являются применение действия/метода.

Другая (полностью прагматичная) причина предпочесть состояние статусу заключается в том, что множественное число прямолинейно:

  • штат -> штаты
  • статус -> статусы

И поверьте мне, рано или поздно у вас в коде появится список, массив или что-то еще, и вам придется назвать переменную.

Я думаю, что многие люди используют «Статус» для обозначения состояния объекта хотя бы по той причине, что «Штат» относится к политическому разделению Соединенных Штатов.

Я думаю, вы могли бы добавить к этому уравнению еще одну перспективу, а именно "отправитель-запрашивающий".

С точки зрения отправителей, я бы сообщил о своем состоянии любому, кто готов меня выслушать.Хотя, с точки зрения запрашивающих, я бы запрашивал чей-то статус.

Вышесказанное также может быть истолковано с точки зрения неопределенности:- Определено = состояние - Не определено = статус Каков ваш статус?Я нахожусь в расслабленном состоянии.

Я почти уверен, что это всего лишь одна интерпретация, которая может не относиться к вашей конкретной ситуации.

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

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

Многие объекты, с которыми я имею дело (счета, клиенты), могут иметь состояние (TX, VA и т. д.) и статус (активный, закрытый и т. д.).

Таким образом, возможен вывод о том, что этот термин вводит в заблуждение.У нас есть стандартизированное соглашение об именах баз данных (это не мой личный выбор), в котором состояние называется ST_CD и статус будет ACCT_STAT_CD.

При использовании перечисления в объектно-ориентированной среде эта проблема не так важна, поскольку, если у вас строгая безопасность типов, компилятор гарантирует, что никто не попытается это сделать:

theCustomer.State = Customer.Status.Active;

Если бы вы находились в динамичной среде, я бы волновался больше!

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

Некоторое время назад у нас была точно такая же дискуссия по моему текущему проекту.У меня действительно нет предпочтений, но последовательность - важное соображение.

Первое (их несколько) определение "состояния" в моем Sharp PW-E550 (могу добавить, потрясающий словарь) - это "особое состояние, в котором кто-то или что-то находится в определенное время". Первое определение "статуса" - это "относительное социальное, профессиональное или иное положение кого-либо или чего-либо".Даже второе (и последнее) определение "статуса" в данном контексте уступает "государству":"положение дел в конкретный момент времени, особенно.в политическом или коммерческом контексте".

Поэтому, если мы хотели, чтобы это было как можно проще для тех, кто пользуется моим словарем (он использует Новый Оксфордский американский словарь 2001 года), лучшим выбором было бы слово "state".

Кроме того, существует шаблон проектирования, описанный в книге the Gang of Four под названием State Pattern, который прочно закрепил этот термин в компьютерном лексиконе.

По этим причинам я предлагаю "заявить".

P.S.Это ты, DDM?Ты все еще злишься на "состояние" в сравнении со "статусом" ?!!!!!!!РЖУНИМАГУ!

Ну, они означают одно и то же.Я не думаю, что необходимо пропагандировать явное предпочтение одного перед другим, но я бы вообще выбрал «статус», потому что мне нравятся вещи, которые звучат по-латински и в классическом стиле.Я имею в виду, что в моем мире множественное число слова «схема» — это «схемы», так что у меня практически нет другого пути.

Софистифанк, я уверен, что ты найдешь аргументы как в пользу Государства, так и Статуса.Самое важное — выбрать один и использовать только один.Я бы предложил обсудить это с вашей командой и посмотреть, с чем все согласны.

Тем не менее, мое предложение состоит в следующем.

Предполагая, что вы используете объектно-ориентированный язык программирования, «состояние» объекта представлено самим объектом.SomeObject.state вводит в заблуждение, по моему мнению.Я не уверен, что представляет собой «статус» в вашем примере, но моя естественная интуиция подсказывает, что я предпочитаю это состоянию.

Совсем не то же самое.Остановлено и началось — это состояния.Остановка и запуск — это статус.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top