Я разработчик на PureScript и делаю фронтенды, в которых строгая типизация встроена в саму основу приложения. PureScript компилируется в JavaScript, но при этом остаётся честным функциональным языком с системой типов уровня Haskell: алгебраические типы, классы типов, полиморфизм строк и эффекты, зафиксированные прямо в сигнатурах. Благодаря этому я описываю вашу бизнес-логику так, что многие ошибки становятся невозможны — компилятор отвергает некорректный код ещё до сборки, а не оставляет его на растерзание пользователю. Сразу подчеркну: это не Elm и не TypeScript, а именно PureScript, с его выразительностью и предсказуемостью, которую я и предлагаю применить в вашем проекте.
Строю приложения вокруг чистого ядра, а всё, что связано с внешним миром — запросы, ввод, хранилище, — аккуратно выношу на края. Работаю с Halogen для компонентных интерфейсов, подключаю биндинги в стиле React, когда нужна совместимость с готовыми решениями, и покрываю типовые задачи: роутинг, формы, работу с HTTP и управление состоянием. Такой подход делает развитие проекта спокойным: любое переименование или перестройку модулей компилятор проверяет за меня, поэтому расширять функциональность можно без страха что-то тихо сломать.
Подключусь как к новому проекту с нуля, так и к существующей кодовой базе на JavaScript, куда нужно добавить типобезопасный участок, или помогу привести в порядок нестабильный интерфейс, который подводит на боевом сервере. Код пишу читаемый, границу FFI держу компактной и понятной, дополняю всё тестами и налаженной сборкой, чтобы результат было удобно поддерживать и после завершения работ.
— Типобезопасные фронтенды на PureScript с выходом в JavaScript
— Компонентные интерфейсы на Halogen и совместимость с React
— Чистое ядро, побочные эффекты вынесены на периферию
— Описание домена через ADT, классы типов и строковые типы
— FFI-обвязка к готовым JS-библиотекам и внешним сервисам
— Роутинг, формы, HTTP-запросы и состояние приложения
— Сборка, тесты и безопасный рефакторинг кодовой базы
Строю приложения вокруг чистого ядра, а всё, что связано с внешним миром — запросы, ввод, хранилище, — аккуратно выношу на края. Работаю с Halogen для компонентных интерфейсов, подключаю биндинги в стиле React, когда нужна совместимость с готовыми решениями, и покрываю типовые задачи: роутинг, формы, работу с HTTP и управление состоянием. Такой подход делает развитие проекта спокойным: любое переименование или перестройку модулей компилятор проверяет за меня, поэтому расширять функциональность можно без страха что-то тихо сломать.
Подключусь как к новому проекту с нуля, так и к существующей кодовой базе на JavaScript, куда нужно добавить типобезопасный участок, или помогу привести в порядок нестабильный интерфейс, который подводит на боевом сервере. Код пишу читаемый, границу FFI держу компактной и понятной, дополняю всё тестами и налаженной сборкой, чтобы результат было удобно поддерживать и после завершения работ.
— Типобезопасные фронтенды на PureScript с выходом в JavaScript
— Компонентные интерфейсы на Halogen и совместимость с React
— Чистое ядро, побочные эффекты вынесены на периферию
— Описание домена через ADT, классы типов и строковые типы
— FFI-обвязка к готовым JS-библиотекам и внешним сервисам
— Роутинг, формы, HTTP-запросы и состояние приложения
— Сборка, тесты и безопасный рефакторинг кодовой базы