Компилятор как суперсила: state machine без хаоса в коде
Интересная мысль про конечные автоматы в TypeScript.
Два варианта кода могут делать одно и то же, но ощущаться совершенно по-разному. Слева обычно получается ручное управление состояниями: условия, переходы, проверки, много места для ошибки.
Справа уже больше похоже не просто на код, а на маленький язык внутри TypeScript. Ты описываешь состояния, события и переходы декларативно, а компилятор начинает работать как страховка.
Он может подсветить невозможный переход, поймать забытый кейс, не дать передать неправильное событие в неправильное состояние и сделать часть логики проверяемой ещё до запуска приложения.
Вот в этом и сила хорошего дизайна API: ты не просто пишешь функции, ты заставляешь TypeScript понимать правила своей предметной области.
State machine становится не схемой в голове разработчика, а контрактом, который проверяется компилятором.
Post #2235
2.3K


- 👍 3
- 👎 3
- ❤ 1