Ayrat
Ну в общем, это работает. теперь у нас в одном месте описание, а по коду летает не тыща разных функций, а несколько рекордов
Ayrat
про один сверху это конечно преувеличение
Ayrat
эти функции надо разбить на домены и происхождение
Anonymous
ваще, в мире классического ООП есть как бы read монада. она хорошо в композиции со state работает.
Hog
Anonymous
ой
Anonymous
тьф
Anonymous
классического ФП
Ayrat
ну и конкретно у меня получилось 4 рекорда основных в которых может по 10 параметров и ещё десяток функций которые ни туда, ни сюда, оставил их бултыхаться
Daniil
у нас часть кода уже написана на рекордах из функций, щас чото начитался МС гайдлайнов и призадумался над интерфейсами
Anonymous
Anonymous
Ayrat
ну допустим есть рекорд кешей, а есть рекорд асинхронных настроек
Hog
Ayrat
ну вот в рекорде кешей сидит всякая оперативная информация, в рекорде асинхронных настроек лежит глобальная статика которая вычитывается лейзи, ну и пр. Названия функций или полей рекорда особо ничего не скажут.
MarginBoundCache например
Daniil
вот да, что думаете насчет рекорды функций vs интерфейсы
Daniil
понятно что в первом случае вывод типов
Daniil
а во втором лучший interop c .net
Ayrat
Ayrat
зачем отказываться?)
Daniil
а как выбрать что когда?)
Anonymous
это уже очень для F#-специфично, менее интересный вопрос на самом деле
Daniil
конфа же про f#?
Ayrat
ну я по умолчанию леплю рекорды, т.к. к ним можно методы привязывать, расширять (например дообъявить static member Empty для тестов)
Daniil
большинство решений, которые будут удачны для f#, не будут удачны для хаскеля и прочих чисто фп языков
Ayrat
ну и тайп инфиренс к ним есть
Ayrat
интерфейсы тоже леплю когда рекорды не получается забацать
Daniil
ну типа для интерфейсов можно тоже имплементировать тестовый класс?
Ayrat
Ayrat
не то чтобы это была проблема, просто надо будет писать что-то вроде #Interface
Daniil
когда использую рекорды, я типы функций описываю вне рекорда, потом полям рекорда указываю эти типы
Daniil
в итоге иде не подсказывает сигнатуру
Ayrat
короче, это не взаимозаменяемые штуки, а взаимодополняющие
Ayrat
с тайп алиасами беда у IDE
Hog
Ну, вот ща Кжиштоф починит всё!
Daniil
его наработки в ionide как-то отразятся на райдере?)
Daniil
или это не про того парня
Hog
Про того :)
Hog
А причём тут райдер? :)
Daniil
райдер - ide, vscode с ионидом уже не совсем)
в моем понимании
Hog
А в моём - наоборот :)
Hog
Пробую ща райдер - и ваще никак
Daniil
На самом деле райдеру сильно не хватает всяких тайпхинтов, рефакторингов, кодогенерации и прочего
Daniil
Хорошо хоть ренейм подвезли
Ayrat
Daniil
Конечно
Daniil
И всех вокруг прошу)
Hog
Ayrat
Hog
Понимаю. Сам такой.
Hog
Не поминай имя господа в ишуе
Андрей
а у меня мыло на иху
x
так чем там у стэк оверфлоу закончилось с ef.core? переехали?
Vasily
Такс, а кто у нас со всякими мемори/спанами плотно работал?
Vasily
Интересует вопрос последовательной записи
Alexey
а что с ним не так?
Vasily
У меня в tcp приезжают данные, надо бы их паковать в пакеты. Т.е. приехал блоб - у него сначала идет длина
Vasily
Но потом может доехать еще кусок того же блоба
Ayrat
Я бы даже сказал это будет сильно проще чем со спанами переменной длины возиться
Vasily
Ну мне же надо еще собирать сообщения из кусочков пришедших
Vasily
Типа смотрю текущий стейт - ага, есть длина, так, дописываем, разбиваем, идем дальше
Ayrat
а нельзя преаллоцировать объект или массив нужной длины заранее?
Vasily
Ну я как бы преаллоцирую
Ayrat
я имел в виду финальный стейт
Vasily
Ну смотри
Vasily
У меня по tcp едет бинарный блоб
Ayrat
ну то есть ты например знаешь что в итоге у тебя должен получиться объект - SomethingDTO
Vasily
Вида длина:данные
Vasily
Причем данные могут доехать и в следующем фрейме
Ayrat
понятно, в этих фреймах могуть быть разрезанные данные
Vasily
Вот мне и надо эти данные собирать и кидать парсеру
Vasily
Задача такая
Ayrat
а длина фреймов вменяемая для стека?
Vasily
Ну там всякое может быть, конечно