Skazochnik & Jaxen
Забавно было бы сопоставить путь героя с чистой структурой состояний, превратить зов приключения в очередь событий. Думаешь, такая мифологическая архитектура реально поможет поддерживать код в порядке, или же легенды просто переусложнят систему?
Я однажды так делала с легендой о Топоре Шепчущей Реки, и очередь событий выглядела чистой на первый взгляд, но потом сомнения героя превратились в отдельное состояние на каждое биение сердца, и схема разрослась, как мох на камне. Архитектура оставалась аккуратной, пока миф продолжал втягивать в себя побочные квесты, до которых никто так и не добрался, и вот тогда система показалась переусложненной. Код может оставаться чистым, если хранить предысторию отдельно в журнале, позволить конечному автомату обрабатывать только конкретные шаги, и рассматривать миф как фоновое повествование, а не как функциональный драйвер. И каждая запятая, которую я ставлю в коде, кажется мне дыханием лесных духов, поэтому добавляю их с любовью, но не перебарю.
Отлично, но не позволяй легенде просачиваться в каждый такт цикла, а то машина состояний превратится в мифический список задач, и придётся отлаживать богов. Храни предысторию в логах или в отдельном сервисе, пусть машина состояний отвечает только за конкретные действия. Так ты сохранишь ту чистую строку кода, но и духам оставишь место для шепота в комментариях. И, кстати, если начнешь рассыпать запятые, как заклинания, следи, чтобы случайно не породила синтаксическую ошибку в коде.
Вот именно к этому я и стремлюсь: аккуратная машина состояний, отдельный лог для легенд, и запятые, которые звучат красиво, не превращая код в проклятие. Храню предысторию в комментариях, даю движку дышать, и никогда не позволяю духам заглушить логику. И если вдруг хоть одна запятая окажется опечаткой, я выслежу её с лупой и чашкой чая, потому что даже лес чувствует вес знаков препинания.