Vasily
но... но... но как же наш ДДД мейд фанкшнл?
Отдельно тип, отдельно данные
Ayrat
я же попросил забыть, хотя бы на минуточку
Но ведь вы и так используете нутонсофт
Vasily
Хватило бы енама
Vasily
Или рекорда с полем type и message
Vasily
То, что я вижу, это шиза
Ayrat
Или рекорда с полем type и message
Это Ду и так делает на фоне
Ayrat
У него же таг есть
Ayrat
Поэтому в рекорде это не надо
Vasily
Бля
Vasily
Я про то, что там в du одинаковый тип во всех кейсах
Vasily
Вопрос, зачем
Ayrat
Короче, я нихуя не понял снова
Vasily
Кортеж du,message
Vasily
Смотрится ок
Roman
Я про то, что там в du одинаковый тип во всех кейсах
ну ДУ — это типы суммы. А рекорд — произведение. Но кто-то любит умножать путем сложения
Vladimir
во как на пульсаре выглядит https://github.com/fsharplang-ru/pulsar-client-dotnet/blob/develop/src/Pulsar.Client/Internal/ClientCnx.fs#L192-L228
Vladimir
читается одно поле и конструируется нужный объект из DU
Vladimir
шо?
Shub
Shub
не советовал
Ayrat
не советовал
Там внизу написано что он хейтит этот дизайн!!1
Shub
а в книжке написано, что наоборот, очень одобряет
Shub
ивенты у него там примерно так и смоделированы
Shub
ну в общем-то я свой ответ нашел, спасибо всем
Vasily
Бля
Vasily
Реальная хуета же
Ayrat
Я тут кстати недавно сделал ЕнумЛайк конвертер для ДУ
Ayrat
Ща покажу
Ayrat
https://gist.github.com/Szer/c27dffacf6dbe0997519c704b3b13a05
Ayrat
type Foo = | A | Bb | BB type Test = { Id: string Field: Foo } let t = {Id = "1"; Field = Bb} let json = Json.serializeUCamel t //"{"id":"1","field":"Bb"}" Json.deserialize<Test> json //val it : Test = { Id = "1" // Field = Bb }
Ayrat
Это не енум, а ДУ.
Shub
Реальная хуета же
ну справедливости ради - это блог. там заметно, как менялось его понимание от начала к концу.
Shub
Это не енум, а ДУ.
в FsCodec уже есть, TypeSafeEnumConverter
Shub
FsCodec правда превратился в барахолку, но это такое
Ayrat
в FsCodec уже есть, TypeSafeEnumConverter
А хз, я туда не хожу
Ayrat
Но, это хорошо
Ayrat
Что там есть!
Shub
еще там есть способ писать свои конверторы. щас покажу
Shub
https://gist.github.com/eglyph/620f810ab49f694bcc5f6c88a3b34733
Shub
не спрашивайте, зачем мне это нужно
Ayrat
https://gist.github.com/eglyph/620f810ab49f694bcc5f6c88a3b34733
Приведенный пример ещё ничего
Ayrat
Опять же, все есть. Неясно что пошло не так
Shub
по-моему, кастомный конвертор в 4 строчки - это хорошо
Ayrat
Такой же опшн для нутонсофта немного больше
Shub
хотя постойте, это ж из TypeShape кажется
Shub
FsCodec просто обертка
Anonymous
как в ваших системах решается проблема отслеживания сообщения по всей цепочке микросервисов от точки входа до точки выхода? и решается ли вообще?
Ayrat
Есть коррелейшн айди
Ayrat
Но он работает через пизду
Ayrat
(не работает)
Ayrat
Кто-то забывает прокидывать, кто-то забывает логировать
Ayrat
Кто-то в хедеры кладет, кто-то в боди, кто-то в квери
x
Демократия
Anonymous
мне эту проблему кровь из носа надо решить за следующие, скажем, 4 месяца. muid в системе-то есть, аналог corrId, но проблема в том, что бОльшая часть системы это джоины по разным топикам Кафки, каждые из которых обладают своими muid'ами
Anonymous
в системе порядка 25 микросервисов, половина в облаках, другая на земле
Anonymous
в результате любого джоина у тебя уже внезапно два разных muid'а
Anonymous
во-во, вот про это и вопрос
Anonymous
как прокидывать контекст так чтобы перед потомками не было стыдно
Anonymous
и что должно быть в таком контексте
Shub
у нас такого фреймворка нет, мы можем максимум отследить входящий запрос до момента исходящего. ну скажем кто-то дернул апишечку, а нам пришлось вызвать другой микросервис
Anonymous
P.S. языки разные. от питона до дотнета
Ayrat
Языки разные, способы передачи разные
Shub
Фреймворка быть не может
у гоферов почему-то может, а у нас вдруг не может
Shub
Языки разные, способы передачи разные
ну хотя бы в рамках одного стека
Anonymous
Фреймворка быть не может
отдельный микросервис может быть, например. это мысли вслух.
Anonymous
мы ж не волмарт
Ayrat
у гоферов почему-то может, а у нас вдруг не может
Но бля надо скалу, джаву, гошечку связать. Хттп, кафку, грпц
Shub
у нас например проблема в том, что разработчики даже в пределах одной команды клали болт на соррИд
Anonymous
и этому миросервису можно отдавать метаданные на тему того, "я такой-то такой-то сейчас на таком-то этапе".
Shub
Но бля надо скалу, джаву, гошечку связать. Хттп, кафку, грпц
ну как-то же связали это воедино разными там протоколами?