модули и интерпретаторы (ну и ещё на много всего, но интересуют именно эти термины).
Алгебры - типа интерфейсы, модули - типа зависимости между ними и реализации в терминах F[_], а интерпретаторы - это уже конкретные реализации F.
Это очень похоже на разделение которое используется в final tagless, но я не уверен что у него термины изоморфны полностью тем что применяются в классическом описании TF.
Но вопрос не про это. В реальности, в своих обычных программах, ммикросервисах и т.п. делаете ли вы так? Начинаете ли с описания алгебры или халтурите и выносите trait только если собираетесь вместо него делать стаб? Делаете ли модули? Прячете ли всё что можно в F или грешите конкретными типами?
Интересует именно практика. Теорию объяснять не нужно.
Если не вынести алгебры не получится написать тесты. Если не делать модули, как di будет работать? И опять же тесты. Имхо это обязательное условие для написания в ТФ
Начинаем с написания трейта
Теорию сомневаюсь, что кто-то объяснит
Обсуждают сегодня