Николай Пьяников - Чистый DI

Sdílet
Vložit
  • čas přidán 22. 08. 2024
  • Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
    Подробности и билеты: jrg.su/x2GKnA
    - -
    Скачать презентацию с сайта DotNext - jrg.su/QlLSfK
    Спикер рассказывает о проблемах, с которыми сталкиваются разработчики, и о том, как инверсия зависимостей помогает их решать.
    Сначала - немного теории по DI. Какие есть виды DI, их достоинства и недостатки, этапы эволюции: чистый DI, DI-контейнеры на основе Dictionary, LINQ Expressions и Reflection.Emit.
    Спикер рассказывает о чистом DI на базе .NET Source Generators как гибриде, объединяющем достоинства разных подходов. В докладе - интересные детали реализации генератора исходного кода Pure.DI, а также примеры его использования в различных сценариях.

Komentáře • 8

  • @MrCommanderKid
    @MrCommanderKid Před 18 dny

    В Asp используется встроеный DI, можно ли там заместить его на Pure. Di?

  • @user-dt6wc3sr5s
    @user-dt6wc3sr5s Před měsícem

    Ого, 20 лет опыта 😮

  • @gritsenkobiz
    @gritsenkobiz Před měsícem

    Продано на 15й минуте)

  • @user-dt6wc3sr5s
    @user-dt6wc3sr5s Před měsícem

    До конца пока не досмотрел, но возник вопрос, есть ли функциональность scoped времени жизни? Было что-то per resolve это и есть аналог scoped?

  • @bananasba
    @bananasba Před měsícem +1

    Что по минусам, очевидно они есть?

    • @JPyanikova
      @JPyanikova Před měsícem

      Нет позднего связывания

    • @batazor
      @batazor Před měsícem

      Минус как таковыз нет, но и идеальных реализаций тоже
      Из минусов:
      - все компоненты раскиданы вверху, и разработчик может набрать больше чем требуется, так как это просто, еще мало кто разделяет di на обшем уровне, и уровне отдельного компонента, из за чего могут протечь абстракции, или на более нижнем уровне откатиться к лапше инициализации (самый популярный выбор)
      - еще момент, что как правило нет контролля над тем в каком порядке компоненты будут создаваться и умирать, особенно если некоторые занимают много времени, или хотелось бы разбить инициализацию на несколько шагов или запараллелить

    • @gritsenkobiz
      @gritsenkobiz Před měsícem

      дольше компилиться будет)