Roman
Ну как я понял, тебе надо инвалидировать некий список как команду
я вот че хочу: Есть сущность BasicUserInfo type BasicUserInfo = { Id : UserId FullName : LetterString Username : LetterAndDigitString PictureId : PictureId BirthDate : BirthDate option } Классический подход к апдейту - прислать такую же, только там все поля логически опциональны, кроме айдишника. Я не хочу делать такой же тип, где все поля загнаны в Option и валидировать в рантайме, что хотя бы один из них Some. Хочу представить команду как серию апдейтов в виде NonEmptyList<MyUpdateDu>. Но для сериализации, как ты заметил, это неудобно, и там лучше использовать простую дто типа type BasicUserInfoDto = { Id : Guid FullName : string Username : string PictureId : Guid BirthDate : DateTimeOffset? } Этот тип все равно придется определить, так ведь? Я вот хотел это автоматизировать как-нибудь, поскольку работа достаточно примитивная
Ayrat
Кажется он просто крутой дизайнер языков
Да, все успешные, это факт. Но так же заметен скачок от C# к TS
Ayrat
Возможно даже что динамик рантайм (JS) ему руки развязал
Ayrat
т.е. в C# чтобы сделать что-то типа HKT надо в ноги CLR богам кланятся и ждать три года, а на JS можно в лёт накостылить
Pavel
хотя... js почти лисп
Dr. Friedrich
Но и достижения впечаляют, это да.
Dr. Friedrich
А то, что плохо, связано именно с ограничениями динамического рантайма.
Vladislav
Поправлю, три года ждать отрицательного решения
нет, получить потом approved in principle через день, а реализацию ждать 5 лет
Ayrat
На практике там (в TS) многое очень плохо
ты про TS? да, я видел. тайп гварды которые только для датафлоу чекинга, а на практике не ограничивают засылание типов
Dr. Friedrich
Ну и номинальные типы тоже хотелось бы иногда.
Vladislav
Ну и номинальные типы тоже хотелось бы иногда.
номинальная - это же сишорп например?
Dr. Friedrich
Но вещи, которые удались — удались на славу, ага. Особенно мне понравилось, как они тупли делали в какой-то из прошлых версий: просто массив с указанием длины :)
Dr. Friedrich
И вот указание длины и диспатчинг по ней — это очень интересно
Ayrat
А то, что плохо, связано именно с ограничениями динамического рантайма.
дада, но именно для этого TS активно развивает именно статический анализ чтобы ошибки не в рантайме ловить. Т.е. DU там сделаны интересно))) объяви литеральное поле и по нему матч сделай, компилятор даже сам exhaustive чек сделает
Vladislav
Vladislav
с богом
Ayrat
т.е. как бы DU, даже с тайп инфиренсом (просто по сравнению литералов, т.е. тех же тегов), но с вишенкой динамики
Ayrat
засеки время сборки
Dr. Friedrich
В новой студии будешь собирать?
Ayrat
на неткор3 конечно же
Dr. Friedrich
Там же под неткор 3 всё?
Ayrat
в докере
Vladislav
да я на самом деле украсть кот хочу
Vladislav
и посмотреть что можно сделать
Dr. Friedrich
Его и раньше можно было украсть.
Vladislav
который ResXNode и тп
Dr. Friedrich
Да, тут вообще всё верно, мне это действительно понравилось.
Vladislav
чот студия немного умерла от украденного
Roman
А неявное преобразование- актив паттерном
преобразование дто в комманду? И типа валидацию инкапсулировать в активпаттерн?
Крылатый
Форневероутра вам!
Roman
Форневероутра вам!
уж вечер близится
Крылатый
уж вечер близится
В Форневерляндии всегда утро.
Roman
Типа того
есть идеи, как сделать хоть сколько-нить универсальный механизм? В идеале, чтоб достаточно было определить валидную команду, а остальное нагенерировалось само?
Vasily
Ну сделать параметры команды в виде DU
Vasily
Тогда команда - это список из этих DU
Vasily
Но тут не гарантируется уникальность
Romɑn
Пожалуйста Постарайтесь не писать вот так вот короткими предложениями это подбешивает иногда иногда нет я сам так делаю но всё же бесит
Romɑn
Простите xD
Vladislav
так
Vladislav
я не разбираюсь в fake, но что делать когда он не может сдк поставить?)) Deleting contents of C:\Users\User\AppData\Local\dotnetcore Running build failed. Error: System.UnauthorizedAccessException: Access to the path 'C:\Users\User\AppData\Local\dotnetcore\dotnet.exe' is denied.
Vladislav
вызывается из под админа
Vasily
В смысле run as admin?
Vladislav
из повершела под админом
Vasily
Повершелл, как я понимаю, run as admin
Vladislav
ну да.
Vasily
А в данный момент dotnet.exe запущен?
Vasily
Хотя там access to path
Vasily
Глянь пермишны на папку просто
Vladislav
а, да, там два зомбаря в процессах висело
Ayrat
который когда-то честно назывался массивом!
Ayrat
а теперь неофиты путают списки и массивы
SuddenGunter
это недженерик Лист
Погоди А разве нет не дженерик List?
Ayrat
Не путают
ну кого ни спроси, List для них это список, а Array - массив, хотя и то, и другое - массив
Ayrat
а вот LinkedList уже список
SuddenGunter
а вот LinkedList уже список
Это связный список? С ссылками на соседние элементы?
Ayrat
https://en.wikipedia.org/wiki/List_of_data_structures#Linear_data_structures
Ayrat
https://en.wikipedia.org/wiki/Dynamic_array
Ayrat
оно на вики называется DynamicArray
Ayrat
ну типа реаллоцируемый массив, массив изменяемого размера
Ayrat
собсно List это и делает. По дефолту массив длиной 100, каждый раз когда ты пробиваешь капасити, он реаллоцирует массив в геометрической прогрессии
Karen
@fillpackart смотри ещё один CEO мысли толкает - https://tech.onliner.by/2018/12/04/406432
Bonart
Этого СЕО удачно обосрать непросто. А при большой удаче можно и присесть неиллюзорно
Анна
Этого СЕО удачно обосрать непросто. А при большой удаче можно и присесть неиллюзорно
Ну если @fillpackart на Хабре набросит, вряд ли ему что-то будет 🤷‍♀️
Олег Сулима
пусть только сохранится перед этим :)
Bonart
Ну если @fillpackart на Хабре набросит, вряд ли ему что-то будет 🤷‍♀️
Я бы подумал, почему на Хабре про этого СЕО помалкивают... а потом тщательно обдумал еще раз