7й круг Dependency Hell - как выбраться?

Поділитися
Вставка
  • Опубліковано 6 вер 2024

КОМЕНТАРІ • 31

  • @user-lr6uj1nr1o
    @user-lr6uj1nr1o Рік тому

    Спасибо большое за материал, как всегда прекрасная подача. Много материла осознал благодаря твоим видео)

  • @brazq
    @brazq Рік тому +1

    о кайф. прям то, чего мне не хватало несколько лет.

  • @senk0n
    @senk0n Рік тому

    мегахорош, красиво объяснил, и пример самописного DI классный ❤

  • @sovrinfo
    @sovrinfo Рік тому +1

    Спасибо за видео. Коммент в поддержку!

  • @Max_Zaytsev
    @Max_Zaytsev Рік тому +1

    спасибо за видео) качество топ!))

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      Со звком обосрался немношк

  • @andrey7530
    @andrey7530 Рік тому

    людиииииии!!! Он вернулся 😃

  • @Disorrder
    @Disorrder Рік тому

    Рекомендую классы обзывать Company, User, Project - что-то из реального мира :)

  • @L0wPressure
    @L0wPressure Рік тому

    Новый UI Intellij просто кайф :)

    • @SeemsNerdy
      @SeemsNerdy  Рік тому +1

      Плюсую, глюковатый местами правда

  • @user-cx1rm2ud2u
    @user-cx1rm2ud2u Рік тому

    Теперь заживу!

  • @vitalibirulia
    @vitalibirulia Рік тому

    Как все это будет работать, если конструктор класса принимает два строковых аргумента?
    Для понимания работы DI ориентировался на видео Евгения Борисова по Spring. В том же Spring есть возможность гибко управлять созданием конкретных объектов. Например можно указать, что значение для свойства можно взять из определенных мест. Можно указать приоритет, когда в контейнере есть два инстанса, которые реализуют один и тот же интерфейс.
    К сожалению, DI не решит проблему, когда зависимость классов описывает данные. Например: Склад -> Каталог -> Товар -> Свойство товара и т.п.
    DI, на мой взгляд, больше подходит только для сервисов, где объекты не имеют состояний. В этом случае можно убрать жесткую связь и дать DI внедрять инстансы на основе реализованных им интерфейсов, которые ты ожидаешь в своем конструкторе класса. Тогда мы можем в сервисе ожидать, что DI нам внедрит нужный репозиторий и нам не придется его создавать руками.

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      Я блин даже не знаю что сказать :) спринг уже как джанга для питона стала. Кароче это тот кейс когда фреймворк тебе диктует как жить

    • @vitalibirulia
      @vitalibirulia Рік тому

      @@SeemsNerdy Ну так главная фишка спринга именно в ДИ. Хотя для Java есть и другие реализации.
      Мне бы хотелось лучше понять реализации DI в других стеках. Поэтому и задал вопрос про конструктор с двумя строковыми аргументами.

    • @SeemsNerdy
      @SeemsNerdy  Рік тому +1

      В любой реализации у тебя все сведется к каким-то идентификаторам одинаковых классов или их группировке и явном указании этих идентификаторов при вызове. Посмотри описание к ролику - там ссылка на гошный fx - в нем это сделано через теги name или group

    • @vitalibirulia
      @vitalibirulia Рік тому

      @@SeemsNerdy Спасибо!

  • @dervanowsky
    @dervanowsky Рік тому

    спасибо за новое видео! уже не трясет от "бизнес логики"?)) Минск

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      в 2021 году меня волновала "бизнес логика", сейчас все изменилось :)

  • @BeDb_MeDb
    @BeDb_MeDb Рік тому

    Мой коммент не по теме. Хочу узнать планируется ли какой-то тутуриал по растику?:-) Помню, что на канале были видосики о растике. Сложилось впечатление, что в пользу Go сделан выбор

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      Да конечно будет, руки чешутся про систему типов в расте рассказать.

    • @BeDb_MeDb
      @BeDb_MeDb Рік тому

      @@SeemsNerdy понял принял, спасибо:-)

  • @selenium4267
    @selenium4267 Рік тому +1

    Когда по растику видосы?)

    • @SeemsNerdy
      @SeemsNerdy  Рік тому +4

      Будет обязательно

  • @densusanin4415
    @densusanin4415 Рік тому

    Спасибо за отличную тему.
    Но не совсем понятен момент связывания переменных или инстансов классов с конструкторами.
    Из видео следует, что связывание происходит только по типу.
    А как тогда быть, если к конструктору подходят несколько переменных одного типа которые есть в контейнере?

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      Пример на Kotlin'е это ж просто пример, поэтому я там такое не делал, но в том же FX - uber-go.github.io/fx/annotate.html#annotating-a-function
      То есть на каждую переменную можно навесить тег `name` или тег `group` и в зависимых инстансах уточнить по этому тегу какой конкретный инстанс нужен, а в случае с `group` можно вообще весь массив переменных этого типа запросить

    • @densusanin4415
      @densusanin4415 Рік тому

      @@SeemsNerdy благодарю!

  • @Mytest437
    @Mytest437 Рік тому

    Программирую на Rust, чет проблем какая то выдуманная 😁😁😁

    • @SeemsNerdy
      @SeemsNerdy  Рік тому

      Ну так, лайфтаймов статических понавешал и живешь себе нормально. А че делать если у тебя фреймворк диктует свои правила жизненного цикла точек входа итд?

  • @artem418
    @artem418 Рік тому

    отличная подача материала 🥲