Size: a a a

2020 May 25

YS

Yan Shkurinskiy in haskell_blah
Это скорее особенности стандратных либ
источник

АГ

Александр Гранин... in haskell_blah
Alexander Vershilov
> - Implementation details leak into BL through type classes

это значит что Implementation details leak into BL through LangL ?
Нет, через LangL при правильном дизайне языков детали не текут. На то она и абстракция, на то он и интерфейс.

Правда, для beam библиотеки в Hydra пришлось допустить протекания, и это сложный случай. Решаемый, но нужно больше времени.
источник

YS

Yan Shkurinskiy in haskell_blah
Leonid 🦇 Onokhov
а что за бизнес логика такая у вас там? У меня вся логика - проверить что у пользователя есть права и он не дурак.
у меня грузчики записываются на заказы и приложения (и все вытекающие)
источник

AV

Alexander Vershilov in haskell_blah
Нет, через LangL при правильном дизайне языков детали не текут. На то она и абстракция, на то он и интерфейс.

подставь класс типов и получишь тоже самое
источник

NV

Nikita Vilunov in haskell_blah
Александр Гранин
Есть интерфейсы, у них есть имплементация. Имплементации бывают нужны какие-то специальные данные. Например, хендлер логгерной библиотеки можно туда положить. Это детали имплементации, так как они проистекают из нативных подсистем. Эти детали должны быть скрыты, и потому их хорошо и правильно помещать в рантайм, которым будут пользоваться только интерпретаторы. Это примерно то же самое, как и инкапсуляция в ООП. Ты не видишь, что за интерфейсом, но каждая конкретная имплементация может хранить свои данные, нужные только ей. Клиент, пользующийся интерфейсом про эти данные не знает и знать не может
То есть вам нужно прокидывать контекст, который требуется имплементациям тайпклассов? Мне кажется, в TF это тоже очень хорошо решено через ридер-монадку
источник

АГ

Александр Гранин... in haskell_blah
Oleg ℕizhnik
и типа если хочется смешать два языка - это противоречит SRP или вроде того
Это приводит к неясным последствиям. Само по себе смешение является механизмом, не относящимся к интерфейсу. Просто какая-то дополнительная тайп-левелная магия, видная из бизнес логики.
источник

LO

Leonid 🦇 Onokhov in haskell_blah
Yan Shkurinskiy
у меня грузчики записываются на заказы и приложения (и все вытекающие)
ну т.е. проверить права и что не дурак, записать что-то в базу и чё-нить в очередь
источник

YS

Yan Shkurinskiy in haskell_blah
Leonid 🦇 Onokhov
ну т.е. проверить права и что не дурак, записать что-то в базу и чё-нить в очередь
ну, там глянуть пересечение по времени заказов, глянуть может ли он туда записаться и прочеи и прочее
источник

YS

Yan Shkurinskiy in haskell_blah
хватает вроде .-.
источник

YS

Yan Shkurinskiy in haskell_blah
нужен ли он вообще там
источник

LO

Leonid 🦇 Onokhov in haskell_blah
ну я к тому что чо там течёт то вообще?
источник

АГ

Александр Гранин... in haskell_blah
Oleg ℕizhnik
Т.е. желание решить экспрешон проблем  - это агрессивная тяга академиков писать код непрактично
Желание решить экспрешон проблем - это желание поиграться. Как правило, о реальных требованиях к проекту товарищи не вспоминают. А может оказаться так, что решать эту проблему вообще не нужно. Или же расширяемость достигается каким-то другим, более подходящим и простым способом, и там, где это нужно
источник

YS

Yan Shkurinskiy in haskell_blah
ну, у меня не течёт, у меня не используются стандартные тайпклассы
источник

YS

Yan Shkurinskiy in haskell_blah
IO не просунешь туда
источник

АГ

Александр Гранин... in haskell_blah
Oleg ℕizhnik
Но ведь тф любители с этим не спорят
Зато я спорю
источник

LO

Leonid 🦇 Onokhov in haskell_blah
ну сделаешь интерпретатор\мтл без IO и вся имплементашка будет размазана по Х файлов
источник

Oℕ

Oleg ℕizhnik in haskell_blah
Александр Гранин
Желание решить экспрешон проблем - это желание поиграться. Как правило, о реальных требованиях к проекту товарищи не вспоминают. А может оказаться так, что решать эту проблему вообще не нужно. Или же расширяемость достигается каким-то другим, более подходящим и простым способом, и там, где это нужно
Ну в моём опыте и опыте моих коллег, желание решить экспрешшон проблем - насущная необходимость
источник

NV

Nikita Vilunov in haskell_blah
Александр Гранин
Зато я спорю
Мне кажется мы нашли чучело
источник

АГ

Александр Гранин... in haskell_blah
Alexander Vershilov
Не больше, чем наличие в языке возможности дернуть IO, которые у тебя в примерах было
Мой метод - черная дыра. Я явно сообщаю, что его использование нежелательно.

Но в отличие от, мой метод поддается контролю. Его даже замокать можно
источник

YS

Yan Shkurinskiy in haskell_blah
Leonid 🦇 Onokhov
ну сделаешь интерпретатор\мтл без IO и вся имплементашка будет размазана по Х файлов
ну в одном, но не суть
источник