Generic'и в C# работают лучше, чем в Java и вот почему. Covariance/Contravariance и WinDBG

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 35

  • @HOSTRASOKYRA
    @HOSTRASOKYRA ปีที่แล้ว +10

    Гарно, що з ранку в понеділок. Надихає.

  • @yevheniytymchishin8401
    @yevheniytymchishin8401 ปีที่แล้ว +3

    new StaticClass.... хах.. интересно))

  • @ПростоЁж-щ3ъ
    @ПростоЁж-щ3ъ ปีที่แล้ว +2

    Полезный ролик. Спасибо, Андрей!

  • @99aabbccddeeff
    @99aabbccddeeff ปีที่แล้ว

    Про StaticClass пример интересный. Такое лично не проверял, но был уверен, что для каждого типа вызовется конструктор по 1 разу. Почему-то всегда вспоминаю шаблоны и раздувание когда из-за шаблонов в плюсах. Кода компилятор генерирует код для каждого из типов. Но в .Net, насколько я знаю, этот процесс более оптимизирован.

    • @DevJungles
      @DevJungles  ปีที่แล้ว +1

      Код все еще генерируется, но в runtime...
      Ну и для ссылочных типов переиспользуется, для значимых генерится с нуля.

    • @admivang
      @admivang ปีที่แล้ว

      @@DevJungles но с примером статик конструктора он вызвался и для обжект и для стринг - оба ссылочных, Методы общие но почему конструктор тогда вызвался ?

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Метод общий, а объект типа нет:
      Два разных объекта типа ссылаются на одну таблицу методов: но данные о вызове стат конструктора у каждого свои

  • @sparda1813
    @sparda1813 ปีที่แล้ว +5

    Было бы интересно послушать как работают все коллекции, а не только list и linkedlist

    • @DevJungles
      @DevJungles  ปีที่แล้ว +5

      И до них дело дойдет.
      Хочу особенно про concurrent коллекции рассказать.

  • @TOKYODRIFT00000
    @TOKYODRIFT00000 ปีที่แล้ว +2

    привет, а можешь рассказать о volatile, о всяких других интересных штуках, например: interlocked
    просто я это никогда не использую, а для «потокобезопасности», использую lock :)

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Честно говоря, Interlocked юзать приходилось всего несколько раз, а volotile и того меньше ..

  • @EugeneS88-RU
    @EugeneS88-RU ปีที่แล้ว

    Насколько помню, тема ролика описана и разобрана в книге Скита "C# в глубине" Поправьте,если ошибаюсь

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Вполне возможно, он там много писал, а я ее даже выборочно читал)
      Но дело было лет пять назад, потому уже не вспомню точно

  • @Borys-h4s
    @Borys-h4s ปีที่แล้ว +1

    Nice. Comment

  • @antibioticknone3057
    @antibioticknone3057 ปีที่แล้ว

    А как вы предпочитаете писать:
    1) var dict = new Dictionary();
    2) Dictionary dict = new();

  • @zopPes
    @zopPes ปีที่แล้ว +1

    А на канале планируется реклама?
    Или для неё пока что подписчиков мало?

    • @DevJungles
      @DevJungles  ปีที่แล้ว +3

      Думаю будет.
      Сейчас пока приходило пару предложений, но было все довольно мутно.
      Плюс я не буду рекламировать компании из рф.
      В общем сложно это сейчас. Может какие-то другие формы монетизации буду пробовать.

  • @windus08
    @windus08 ปีที่แล้ว +5

    Дорогой дневник, пошел 2 год, как мой .нет сеньор на проекте ноет, что у джавистов такие костыли, но зп сочнее

    • @DevJungles
      @DevJungles  ปีที่แล้ว +2

      Ахахах)
      Мне кажется, нужно немного по другому смотреть на это: ЗПхи у части разрабов сочнее, часть из них джависты, часть дотНетчики, есть немного фронтэндеров и немного плюсовиков, пара мобильных разрабов и спец по IoT пишущий на чистом Си...
      Может не в языке дело?)

  • @hgmdev
    @hgmdev ปีที่แล้ว

    Так чем лучше-то?

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Все в видео)

  • @jesure
    @jesure ปีที่แล้ว +1

    Слушаю и понимаю слова, но уловить смысл не могу. Ещё много учиться мне

    • @DevJungles
      @DevJungles  ปีที่แล้ว +1

      Все в таких руках)
      Настрой хороший

  • @НатаниэльДампо
    @НатаниэльДампо ปีที่แล้ว +1

    Сейчас уже рулит не язык а экосистема).

    • @DevJungles
      @DevJungles  ปีที่แล้ว +1

      Это правда
      И здесь очко за MS с точки зрения бизнеса
      Ни у кого нет настолько полной системы, нужно будет бегать по пачке провайдеров.
      Teams, Office, Azure DevOps(instead of Jenkins+Jira+Bitbucket+Confluence), Azure Cloud, Outlook, .NET, C#
      К сожалению, ничего сравнимого никто не смог построить.

  • @ФагимСадыков-ъ6с
    @ФагимСадыков-ъ6с ปีที่แล้ว +2

    Писал на шарпе и котлине. Генерики лучше в шарпе чем в Java, соглашусь, но некоторых хаков которые достигаются на генериках в Java и Kotlin за счёт использования вайлдкарда произвольного типа, в шарпе исполнить нельзя. Но всё генерики джавы и Шарпа смотрятся просто детскими унылыми игрушками по сравнению что из себя представляют генерики в Rust. Вот уж где любитель генетиков может разгуляться...

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Еще в TS очень мощная система, но что-то она совсем мне в голову пока не влазит.

  • @Diyozen
    @Diyozen ปีที่แล้ว

    Меня просто уничтожает тот факт, что мы можем взять typeof от StaticClass, но не можем иметь массив StaticClass. Какого хрена? Ещё крайне не хватает возможности расширения констрейнов по цепочки наследования интерфейсов для методов. Причём, если сам интерфейс дженериковый, то расширять в наследниках-интерфейсах - можно, но вот дженериковый метод там же - нельзя.

    • @DevJungles
      @DevJungles  ปีที่แล้ว

      Почему нельзя массив:
      Непонятно как оперировать потом элементами -- есть какой-то метод с возвращаемым значением из дженериков:как его вызвать в этом случае?..

    • @Diyozen
      @Diyozen ปีที่แล้ว

      @@DevJungles да никак не оперировать. Пускай ведут себя как `object`. Суть в том, что я смогу получить аргументом массив вот таких штук для композита или ещё чего-нибудь, защищённый при этом типом.