Size: a a a

F# Flood: Смак с Андреем Макаревичем

2020 March 19

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
у нас к сожалению выбор ограничен только ньютонсофтом. но допустим я могу запилить обобщенную сериализацию. вопрос, как дальше быть с DU? сама идея выносить поле type на уровень выше как-то не очень
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
в том смысле, что ок, допустим не класс, допустим я сделаю рекорд с полем type
источник

оГ

отец Григорий in F# Flood: Смак с Андреем Макаревичем
Anatoly
на винде збс работает
ДАЙ ПОЦЕЛУЮ!
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
но все равно: матчить по DU или по полю рекорда (которое тоже DU) - разница небольшая
источник

VS

Vasily Shapenko in F# Flood: Смак с Андреем Макаревичем
Информацию о du все равно надо где-то хранить
источник

SB

S B in F# Flood: Смак с Андреем Макаревичем
Shub Niggurath
но все равно: матчить по DU или по полю рекорда (которое тоже DU) - разница небольшая
Так если я правильно понял, то у тебя и вариантов даже в теории нет. В джойсоне нет никакой метаинформации о принадлежности тому или иному кейсу суммы. Значит, ты не можешь решить проблему без перебора доступных вариантов.
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
отец Григорий
не по дддшному - возможны невозможные представления
я сделаю приватный конструктор
источник

SB

S B in F# Flood: Смак с Андреем Макаревичем
Ну или я вообще не понял проьлему.
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
Vasily Shapenko
Информацию о du все равно надо где-то хранить
зачем? du не самоцель
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
AlexxSt
Все равно придется в каком-то месте писать какому сообщение какой тип соответствует. И это будет не малкнький список.
в нормальном языке есть clauses - erlang\haskell, в мейнстриме есть перегрузка методов. компилятор за меня решит, какой метод вызвать, глядя на тип параметра. в эфшарпе че-то ничего в голову не приходит
источник

VS

Vasily Shapenko in F# Flood: Смак с Андреем Макаревичем
Вопрос, как ты будешь информацию о пейлоде хранить
источник

SB

S B in F# Flood: Смак с Андреем Макаревичем
Vasily Shapenko
Вопрос, как ты будешь информацию о пейлоде хранить
Во я тоже не понимаю это.
источник

VS

Vasily Shapenko in F# Flood: Смак с Андреем Макаревичем
Ну т.е. приезжает условный жсон
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
S B
ты все также полагаешься на добрую волю разрабов, ибо от слова "пэйлоад" ты никуда не ушел
компилятор не даст собрать проект с экземпляром класса, в котором нет payload. компилятор соблюдет статическую типизацию
источник

VS

Vasily Shapenko in F# Flood: Смак с Андреем Макаревичем
Который надо десериализовать в определенный тип
источник

VS

Vasily Shapenko in F# Flood: Смак с Андреем Макаревичем
Откуда информация о типе будет взята?
источник

SB

S B in F# Flood: Смак с Андреем Макаревичем
Shub Niggurath
компилятор не даст собрать проект с экземпляром класса, в котором нет payload. компилятор соблюдет статическую типизацию
А если завтра у вас еще другой ЯП появится вне дотнета? Или этот вариант не рассматривается и вся система будет знать только про твой АйМэсседж?
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
S B
А если завтра у вас еще другой ЯП появится вне дотнета? Или этот вариант не рассматривается и вся система будет знать только про твой АйМэсседж?
вся система уже сейчас не знает про мой эфшарп, система знает только про гарантированный контракт выраженный жсоном
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
что там внутри моего кода систему, мягко говоря, не волнует
источник

SN

Shub Niggurath in F# Flood: Смак с Андреем Макаревичем
варианты "завтра у вас появится другой ЯП" я оцениваю приблизительно с той же вероятностью, как и миграцию на AWS
источник