Pavel
копипастить то предпалагалось из жавы в шарп. чего там в жаве нет копипасту не мешает
Pavel
оно до сих пор так библиотеки перетаскивают
Pavel
просто копипастишь даешь имя потом. это много проще чем в 100 и 1 методе искать проверки на null и их менять. нет?
Pavel
я хз вообще что это в жабе. написал про примеру анонимок в шарпе. если там что по другому показывай
Pavel
Искать проверки на null просто - их ищет компилятор
ищет компилятор меняет человек. развлечение небесплатное
Bonart
А на самом деле просто ляпнул не подумав ;)
Pavel
А на самом деле просто ляпнул не подумав ;)
еще раз напомню про затраты. соотношение анонимных классов к проверкам на null какое? если на классы еще можно забить (по разным причинам) то с null могло и не прокатить .
Ayrat
Выскажу мнение про то что C# копия Java. МS и правда хотела выкатить конкурента Java, но кроссплатформенность тогда никого особо не парила, потому что "вендор-лок это прекрасно" (MS времён 90ых). В С# 1.0 были улучшения по сравнению с Джавкой (гетеры/сетеры, делегаты и чот ещё), и в самом рантайме тоже кой чо было (явно выделенные valueType), НО В ЦЕЛОМ это была та же Джава, только от MS Цельные неймспейсы слизаны https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmldocument.getelementsbytagname?view=netframework-4.7.2 https://docs.oracle.com/cd/B28359_01/appdev.111/b28391/oracle/xml/parser/v2/XMLDocument.html#getElementsByTagName_java_lang_String_ StringReader всякие и прочее говно Ну и Сайм хорошо про дженерики рассказывает в той самой статье, что ему ещё пришлось убеждать что это необходимо и какие бенефиты это даст. Дженерики хотели релизнуть в С# 1.0 но не срослось, очень сложная тема.
Ayrat
неймспейсы слизывали с теми же методами и классами как раз для того чтобы заманить джавистов на C#
Ayrat
ну и без ключевого слова var, C# даже выглядел похоже! Там ещё был старый ArrayList (прям как в джаве)
Roman
@vshapenko Ayrat хотел бы узнать ваше мнение: Чтоб сделать для CQRS комманд невалидной состояние невозможным, я решил для паршал апдейта сущностей использовать непустой лист из DU, выглядит это так: https://gist.github.com/kagetoki/4d4636ca8c4226e17194aea67d2dc56e Ясен пень, что наружу при этом для сериализации надо выставлять плоские модели. Вопросы следующие: - Нормальная ли идея? - Если да, то имеет смысл попробовать как-нить нагенерить эти плоские модели из этих DU, чтоб бойлерплейт этот руками не писать. Как лучше подойти к этой штуке? Тайп провайдер написать?
Ayrat
Соверешенно случайный одинаковый метод https://docs.microsoft.com/en-us/dotnet/api/system.collections.arraylist.trimtosize?view=netframework-4.7.2 https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#trimToSize--
Bonart
Выскажу мнение про то что C# копия Java. МS и правда хотела выкатить конкурента Java, но кроссплатформенность тогда никого особо не парила, потому что "вендор-лок это прекрасно" (MS времён 90ых). В С# 1.0 были улучшения по сравнению с Джавкой (гетеры/сетеры, делегаты и чот ещё), и в самом рантайме тоже кой чо было (явно выделенные valueType), НО В ЦЕЛОМ это была та же Джава, только от MS Цельные неймспейсы слизаны https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmldocument.getelementsbytagname?view=netframework-4.7.2 https://docs.oracle.com/cd/B28359_01/appdev.111/b28391/oracle/xml/parser/v2/XMLDocument.html#getElementsByTagName_java_lang_String_ StringReader всякие и прочее говно Ну и Сайм хорошо про дженерики рассказывает в той самой статье, что ему ещё пришлось убеждать что это необходимо и какие бенефиты это даст. Дженерики хотели релизнуть в С# 1.0 но не срослось, очень сложная тема.
То что без явы шарпа бы не было - очевидно. Но то же самое про null - смесь домысла с вымыслом.
Ayrat
До первого анонимного класса
не, ну разница конечно была, а чо бы нет. Но отрицать что C# был HEAVILY INFLUENCED by Java по-моему бессмысленно. Виртуальная машина, система типов (top type - object, kinda bottom type ... Null? но не совсем конечно подходит, т.к. в null есть значение null), стак-хип-гц c поколениями (но тут могу и соврать, может быть поколения не сразу завезли в оба языка, а может кто-то у кого-то слизал),
Bonart
Следовательно из общей зависимости языков нельзя делать вывод о зависимости всех конкретных частей
Bonart
Null - это не особенность одной явы
Ayrat
@atsapura здесь тайп параметр маркерный? type Command<'Payload> = { OperationId : Guid InitiatorId : UserId TimeStamp : DateTimeOffset }
Ayrat
Не, это я пропустил. там собсно пейлоад поле должно быть
Я уж хотел сказать что делать маркерным тайп параметр - ну ваще не очень
Ayrat
потому что допускает создание какой угодно команды Command<HzChto>
Roman
Я уж хотел сказать что делать маркерным тайп параметр - ну ваще не очень
мне даже в голову не приходила такая идея) Обновил гисту
Ayrat
деконстракт апдейт комманд в плоскую структуру?
Я не уверен что ты DU без боли и каста в obj сможешь запихнуть в плоскую структуру
Roman
Roman
собсно я и хочу как-нить сгенерировать этот бойлерплейт
Ayrat
Дженерики же вообще новым концептом были
Как подвид параметрического полиморфизма, возможно (я не уверен) А в целом никто не мешал писать полиморфный код до C# на других языках
Ayrat
Я вообще не уверен в чём разница между параметрическим полиморфизмом как таковым и "дженериками"
Vladislav
Жабаженерики же вроде позже появились
Ayrat
Жабаженерики же вроде позже появились
они не появились кекеке, там атрибутами намазано толсто в компайл тайме
Vasily
деконстракт апдейт комманд в плоскую структуру?
Можно актив паттерны попробовать использовать
Ayrat
не, то что в C# дженерики таки появились, а в джабе нет - это факт. Я имел в виду, что судя по рассказу Сайма, Хайлсберг их не планировал вводить, т.к. был очень занят клонированием Джавы, но т.к. в Project 7 вокруг были одни хаскель дроты, да ещё и Сайм перед руководством MS прочитал как полезны дженерики, пришлось вводить. До C# 1.0 сделать не успели
Ayrat
Удачи им
закрыли ж ишуй
Vasily
закрыли ж ишуй
И это хорошо
Roman
Можно актив паттерны попробовать использовать
Мне кажется, деконстракт апдейт команд это наименьшая проблема. Я хочу сначала сделать тайп провайдер (видимо), чтоб нагенерить дто по таким вот юнионам
Vasily
Дто у тебя будут простыми
Vasily
А вот насчёт тп не уверен, что уже есть над типами
Vasily
Дто я бы предложил делать в удобном для сериализации виде
Vasily
А неявное преобразование- актив паттерном
Bonart
Что интересно, Дельфи была склонирована почти в той же степени что и ява
Vasily
Что интересно, Дельфи была склонирована почти в той же степени что и ява
Мне больше не понравилась некрасивая история с выходом windows rt
Vasily
Где была реальная возможность затащить .net как базу для апи, но пошли по пути ком интерфейсов
Bonart
После дельфи на шарп с винформами в студии переход шел прпктически бесшовно
Vladislav
Только проползалы
Bonart
ты имеешь в виду с обжект паскаля?
К тому моменту язык назывался дельфи
Ayrat
После дельфи на шарп с винформами в студии переход шел прпктически бесшовно
Видны уши фотографа!!!1 RAD и всё такое. Я вообще удивлён как Хайлсберг после дельфи и С# делает TS
Ayrat
TS вообще меня удивляет всё больше от версии к версии
Vasily
Чтобы удивить Ayrat , надо постараться
Roman
Дто я бы предложил делать в удобном для сериализации виде
так да, просто если делать это руками, то придется на каждую команду делать 2 типа, и работа достаточно примитивная и механическая. Потому хочу автоматизировать
Ayrat
Чтобы удивить Ayrat , надо постараться
Ну там делают вещи, которые нечасто и в чистых ФП языках найдёшь.
Vasily
Один тип у тебя все равно условно маркерный
Ayrat
юнион тайпы, интерсекшн тайпы, сабструктурная типизация, тайп гварды (которые участвуют в датафлоу анализе и имеют скоуп), полный фарш короче
Ayrat
F# конечно имеет дженерики в рантайме, но от юнионов и интерсекшнов покуривает нервно в сторонке.
Vasily
не понял, это какой
Ну как я понял, тебе надо инвалидировать некий список как команду
Vasily
По определенным правилам
Ayrat
а ещё в нём есть нормальный Bottom Type!! Never называется.
Ayrat
у нас даже такого нет
Ayrat
а у них есть
Vasily
У нас есть @fvnever
Dr. Friedrich
У нас есть @fvnever
Намекаете, что я — днище (bottom)?
Vasily
@atsapura Но мне надо добраться до компа
Vasily
Намекаете, что я — днище (bottom)?
Обитатель придонного слоя. Глубинный бэкенд