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

Поділитися
Вставка
  • Опубліковано 5 вер 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, а также примеры его использования в различных сценариях.

КОМЕНТАРІ • 10

  • @MrCommanderKid
    @MrCommanderKid Місяць тому

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

  • @alexandreryomin8820
    @alexandreryomin8820 4 дні тому

    А Scoped Lifetime в Pure.DI не реализован?

    • @alexandreryomin8820
      @alexandreryomin8820 4 дні тому

      Нашел. На 55 минуте упоминается про Singleton внутри сессий, в качестве аналога Scoped

  • @user-dt6wc3sr5s
    @user-dt6wc3sr5s Місяць тому

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

  • @gritsenkobiz
    @gritsenkobiz Місяць тому

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

  • @user-dt6wc3sr5s
    @user-dt6wc3sr5s Місяць тому

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

  • @bananasba
    @bananasba Місяць тому +1

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

    • @JPyanikova
      @JPyanikova Місяць тому

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

    • @batazor
      @batazor Місяць тому

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

    • @gritsenkobiz
      @gritsenkobiz Місяць тому

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