Pull to refresh

Comments 11

Отмена поездки — как долго вы находитесь в этом состоянии?)))

Каша из состояний и событий, которые переводят одно состояние в другое, у вас и в коде и голове))

'when milk = 0 and gas > 0'

Писать такое в 2021 - где то за гранью. Разве в php не завезли анонимные функции какие нибудь?

Завезли уже давно, но тут видимо дело в написании фрагментов "человекочитаемых для непрограммистов".

Вы серьезно думаете, что Стейт машина должна ходить в бд и читать консоль?

Как на счёт отправки смс и вебсокетов? :)

Прекратите писать примеры из 90-х. Любой новичок, набредший на эту статью, воспримет это как руководство к действию. Уже вышла 8-я версия языка, но до сих пор во многом благодаря подобным статьям пишут так, как будто последних двадцати лет не было. Неужели сложно было обернуть это дело в класс, избавив глобальную область видимости от мусора? Если вы думаете, что так понятнее, то не спешите с выводами. Если человек не может в азы ООП, то и конечные автоматы ему пока не нужны.

Также нам понадобится база данных MySQL и коннектор MySQLi. Это стандартные инструменты PHP.

Почему mysqli? Кто определил этот стандарт? MySQL не является инструментом PHP, это просто популярная СУБД. Вместо mysqli лучше использовать PDO, как более универсальное решение. Кстати, библиотека, предложенная вами, использует собственную обёртку над PDO, которая поддерживает MS SQL, MySQL и Oracle. И в этом, как мне видится, есть некоторая слабость этой библиотеки, т.к. много где используют PostgreSQL, и подозреваю, что именно в контексте PHP побольше, чем MS SQL и Oracle вместе взятые.

Спасибо, добавил пункт для новичков и ООП, MySQL тоже поправил.

Вам рекомендую посмотреть интересный доклад о целенаправленном переходе с ООП на конечные автоматы в Мегафоне, ссылка приведена в статье.

Что, простите? Переход с ООП на конечные автоматы? Послушал по ссылке кусок про автоматы, там ни слова о подобной глупости, наоборот там упоминаются абстракции. ООП - парадигма в программировании, при которой программа состоит из объектов, описываемых классами. Также существуют другие парадигмы, подробнее можно посмотреть тут. Конечный автомат - алгоритм, который можно реализовать, используя разные парадигмы. Кстати, используемая в статье библиотека реализована с использованием ООП.

Прекратите переживать за новичков.
Прекратите считать новичков идиотами и расписываться за их всех.
Прекратите заставлять авторов статей перегружать свой код ненужными абстракциями только потому что вам так хочется. Ах здесь засоряется глобальное пространсво - давайте впихнём сюда Симфони. А вы уверены, что здесь лучше подойдёт MySql, а не PostgreSQL?

Ну в текущем виде код точно не несёт пользы

Откуда взялись плюсы к посту - для меня вообще загадка

Описать события в таблице недостаточно - в табличном виде крайне тяжело найти ошибки и потерянные переходы. А вот если их нарисовать, тогда все становится намного проще и понятнее.

Так что диаграмма - это один из best practices при разработке конечных автоматов.

Пример не очень удачный. Кстати, конечный автомат хорошо бы зашёл в проектах, которые направлены на транзакции. Те же платёжные шлюзы. Где выполняется последовательность команд как одна сущность - транзакция. Если что-то пошло не так - откат назад до начала этой сукупности команд. Ну и последовательная операция со статусами что б невозможно было перепрыгнуть с шага на шаг, только вперёд либо закончить сразу всё.

Sign up to leave a comment.

Articles