Что такое пространство состояний? - PullRequest
5 голосов
/ 16 октября 2010

Я просматриваю эту лекцию (http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl), и примерно через 34 минуты на слайде упоминается точка с надписью «очень тщательно проверяется пространство состояний документа».

Что такое пространство состояний? ПочемуДолжен ли я задокументировать это «очень осторожно»? К сожалению, у меня нет звука на машине, с которой я отправляю сообщения, но сами слайды чрезвычайно полезны для моего обучения (это было бы еще более полезно со звуком).

Спасибо

Ответы [ 2 ]

4 голосов
/ 16 октября 2010

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

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

Он использует Date и Calendar из Java в качестве примеров API, где это является проблемой, но не вдавается в подробности.

Чтобы датьконкретный (но упрощенный) пример, рассмотрим TCP соединение.Это было бы в основном два государства, открытое или закрытое.Когда он закрыт, вы не можете отправлять или получать что-либо через него, поэтому вызовы этих методов не разрешены.

1 голос
/ 16 октября 2010

Перефразируя то, что говорит говорящий, если объект изменчив, вам необходимо задокументировать пространство состояний.Затем он ссылается на то, что Java Date и Calendar API плохо документированы в этом смысле.

Я думаю, что он имеет в виду, что вам нужно документировать любые функции, которые могут изменять состояние кода.Также, когда это хорошее (или плохое) время для вызова этих функций.Пример вызова функции read() после объекта closed().

...