Size: a a a

2021 February 12

IV

Igor V in ctodailychat
Artur
так и прошу, дайте мне нормальную)
сложно найти пример где они “ненормальные”. регепсами пользуешься? а виртуальными машинами? контейнерами?
источник

D

Denys in ctodailychat
Artur
так и прошу, дайте мне нормальную)
Простой игровой AI или большое количество embedded устройств.
источник

A

Artur in ctodailychat
Igor V
сложно найти пример где они “ненормальные”. регепсами пользуешься? а виртуальными машинами? контейнерами?
мы о разных вещах говорим https://t.me/ctodailychat/167762
источник

AS

Alexey Samoylov in ctodailychat
В любом контроллере лифта есть стейт машина
источник

IV

Igor V in ctodailychat
Artur
так и прошу, дайте мне нормальную)
class WorkspaceState:
   def __init__(self, *, allow_start, allow_reboot):
       self._allow_start = allow_start
       self._allow_reboot = allow_reboot

   @property
   def allow_start(self):
       return self._allow_start

   @property
   def allow_reboot(self):
       return self._allow_reboot


states = dict(
   available = WorkspaceState(allow_start=False, allow_reboot=True),
   unhealthy = WorkspaceState(allow_start=False, allow_reboot=False),
   stopped = WorkspaceState(allow_start=True, allow_reboot=False),
)



workspace = get_workspace(workspace_id)
if states[workspace.state].allow_reboot:
  workspace.reboot()
источник

IV

Igor V in ctodailychat
вот тебе без кружочков
источник

AR

Anton Revyako in ctodailychat
Александр Арбузов
она с прослушкой?
с браузером амиго
источник

A

Artur in ctodailychat
Igor V
вот тебе без кружочков
спасибо, мир новыми красками заиграл))
источник

A

Artur in ctodailychat
allow_start = true, allow_reboot = true - это какой стэйт?
источник

IV

Igor V in ctodailychat
это не стейт, а операции которые разрешены в рамках стейта. стейт это available, unhealthy, stopped, etc
источник

A

Artur in ctodailychat
ааа
источник

A

Artur in ctodailychat
а workspace.reboot() в какой стэйт переводит машину?
источник

IV

Igor V in ctodailychat
есть набор операций над сущностями, их поведение или доступность меняются в зависимости от стейта.

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

IV

Igor V in ctodailychat
любой нормальный архитектор будет требовать три диаграмы/документа, абстрактно без привязки к uml: стуктура сущностей, диаграма состояний объектов и деплоймент
источник

IV

Igor V in ctodailychat
и обычно спаггети из if говорит о том, что разработчик не разобрался с паттером state machine
источник

ИМ

Илья Макеев... in ctodailychat
Igor V
class WorkspaceState:
   def __init__(self, *, allow_start, allow_reboot):
       self._allow_start = allow_start
       self._allow_reboot = allow_reboot

   @property
   def allow_start(self):
       return self._allow_start

   @property
   def allow_reboot(self):
       return self._allow_reboot


states = dict(
   available = WorkspaceState(allow_start=False, allow_reboot=True),
   unhealthy = WorkspaceState(allow_start=False, allow_reboot=False),
   stopped = WorkspaceState(allow_start=True, allow_reboot=False),
)



workspace = get_workspace(workspace_id)
if states[workspace.state].allow_reboot:
  workspace.reboot()
во ++ =)
для меня тут только вопрос стоит ли ставить сверху какую-нить обертку, позволяющую описывать это в конфигах либо лучше всеж кодом
источник

IV

Igor V in ctodailychat
Илья Макеев
во ++ =)
для меня тут только вопрос стоит ли ставить сверху какую-нить обертку, позволяющую описывать это в конфигах либо лучше всеж кодом
состояния это не то что должно часто меняться. если возможные состояния меняются, то обычно это все серьезно влияет на логику приложения
источник

A

Artur in ctodailychat
Igor V
любой нормальный архитектор будет требовать три диаграмы/документа, абстрактно без привязки к uml: стуктура сущностей, диаграма состояний объектов и деплоймент
ну началось! "любой нормальный архитектор" уже появился как рьяный отстаиватель стэйт машин)) а все остальные, кто стэйт машину не обожает - ненормальные
источник

ИМ

Илья Макеев... in ctodailychat
Igor V
состояния это не то что должно часто меняться. если возможные состояния меняются, то обычно это все серьезно влияет на логику приложения
тоесть конфиг лучше?)
источник

IV

Igor V in ctodailychat
нет 😉
источник