3 ms·
No, state machines aren't state factories. State factories are the generators for state pattern. State machines are constraint systems which govern which stat
by JohnHaugeland 5y ago
No, state machines aren't state factories.
State factories are the generators for state pattern.
State machines are constraint systems which govern which states are allowed to transition to one another.
The use case for a visual editor is that as state machines get over a certain complexity (for me, usually around 15 states,) they start getting hard to reason about. Being able to see them helps.
Consider the case of a state machine representing some object's flow through a manufacturing process. There are three lines: one for main process, one for defect repair, and one for pull testing.
Each line has a set of steps going in both directions: one for progress and the other for Toyota Method style step-audits, going in reverse.
It turns out you forgot one of the steps in the defect repair process, near the middle.
If you're looking at this in code, it's down to reading all the text, looking for exceptions, differences, really working it over
If you're looking at this on a diagram, it's two stripes where it should be three, and there's these two half-stripes that shouldn't be there
- RcouF1uZ4gsC 5y ago> It turns out you forgot one of the steps in the defect repair process, near the middle. This is one of the reasons I like programming my state machines in Rust using enums to represent states. If I forget to deal with that state in my match statement, the compiler yells at me.
- JohnHaugeland 5y agoRight, but there are two paths, so it will actually be in your match in one direction. Anyway, it's not that hard to come up with similar examples where a missing link in the mesh is easier to see than it is to read, and that's my core point. Consider the case of writing out a small connectivity diagram for a near-grid of things. Now everybody but the edge has 4-5 links. One missing in that is brutally hard to find, if it's irregular, but probably still pretty easy to see.