November 24th, 2018

Метамоделирование: часть 2

Дописал клиентскую часть и оглянулся. Очень тяжелая отладка. Был бы MVC framework, как в PureScript, — было бы легче. Но тут он добавляет лишних телодвижений. Зачем, если есть модель на сервере. Хотел было уже взяться прикручивать N2O, как тут меня осенило.

  • Типы можно шарить без выпендрёжа между GHC (сервером) и Fay (клиентом).
  • Декодер уже заложен в самом Fay (Fay.Convert): конструкторы типов вместе с данными замечательно раскладываются в JSON (в соответствующие слоты). Подсмотрел даже у Сноймана пример реализации!
  • Запилил пакет для вебсокетов на Fay (опубликую на Hackage, когда моя страничка заработает).
  • Затащил поддержку различных протоколов.
  • Переписываю рендеринг на сервере, хочу посмотреть, что выйдет в итоге.

Получается эдакий FRP на коленке. Вообще, я очень доволен тем, что вырисовывается. Открытым вопросом пока является проброс новых событий для новых элементов страницы, которым ещё предстоит появиться. Либо дернуть на стороне Fay, либо прямо JS на сервере сгенерировать. Там видно будет. Пока не хочу забивать этим голову.