НУ ЧЕ ПАЦАНЫ, SOLID?

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

Комментарии • 46

  • @denisbryukhachev3663
    @denisbryukhachev3663 Год назад +12

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @Vovan00275
    @Vovan00275 9 месяцев назад +1

    Изучал все принципы SOLID, но никак не мог понять, последний принцип, из-за его определения, смотрел видосы разных авторов, но так пояснять, это талант, спасибо всё сразу стало на свои места)

  • @The14Some1
    @The14Some1 Год назад +7

    Такое ощущение, что ремонтяш решил рассказать за программирование :)

    • @bidlocode
      @bidlocode  Год назад +1

      Ремонтяш клёвый, спасеба)

  • @dizhelf8869
    @dizhelf8869 Год назад +3

    смотреть видео с терминами и сложными схемами🥵
    смотреть видео где программист матерится на код😎😎😎
    ну а говоря на самом деле, мне нравится такой подход к объяснению,
    ощущается не как нудная пара, а как будет с другом под пивко обсуждаю что нарыл в интернетах

  • @wdhjix
    @wdhjix 11 месяцев назад +1

    Лампово загоняешь спасибо

  • @33universe
    @33universe Год назад +3

    подход в объяснении топ, супер что примеры на каждый принцип были, лойс

  • @ХайдарДаукаев
    @ХайдарДаукаев Год назад +3

    братан вперед вперед, контент в кайф можно вот этого вот почаще!))))

    • @bidlocode
      @bidlocode  Год назад

      Посеба, постараюсь)

  • @s3n1ch
    @s3n1ch 11 месяцев назад +1

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще
    Накидайте клувней этому господину

    • @bidlocode
      @bidlocode  11 месяцев назад

      Спасибо за поддержку)

  • @alexdubkov6998
    @alexdubkov6998 11 месяцев назад +1

    Инъекцию удобно пояснять на примере уведомлений. покупка была, или форму отправили - надо отправить уведомление.
    Чтобы внутри контроллера не создавать отправку почты на конкретный сервер - передаём объект Нотификашн. А этот нотификейшн модет почту отправить через мейлчимп или печкина. А потом ещё и в телегу сможет научиться.
    При этом сам код Заказа или Формы вообще не трогаешь. Ну, в идеале, конечно

  • @alexdubkov6998
    @alexdubkov6998 11 месяцев назад +1

    Обмазывание интерфейсами - это ад. Стала тьма кода, разобраться сложнее. Очень умеренно надо это использовать.

    • @bidlocode
      @bidlocode  11 месяцев назад

      Ну да, это просто ещё один инструмент)

  • @koustakken195
    @koustakken195 Год назад +2

    Снова годнота, спасибо за твое существование)

    • @bidlocode
      @bidlocode  Год назад +1

      Блен, спасибо)

  • @No99no
    @No99no Год назад +5

    0:34 "общепринятое дерьмо" этим всё сказано. Зачем делать видео на 15минут?

    • @bidlocode
      @bidlocode  Год назад +1

      Общепринятое - не равно общеизвестное)

  • @maksimvashkevich1429
    @maksimvashkevich1429 Год назад +1

    нормас, подписка)))

  • @ТёмаКоролёв-к6ф
    @ТёмаКоролёв-к6ф Год назад +1

    Надо бы привести примеры, которые часто попадаются в кейсах например финансовые транзакции или уж тогда простую html игру запилить. Чем голову делать с треугольниками, которые "в почти" любом api проекте просто не нужны.

    • @bidlocode
      @bidlocode  Год назад

      Я не стал заморачиваться, поискал самые простые примеры, которые отображают суть

  • @VanyaMate
    @VanyaMate Год назад +2

    Здравствуй. Слушай, ну как я понимаю принцип подстановки Лисков, так дело тут в том, что, если в коде мы используем Animal, то при подстановки туда Bird, наследника Animal, код не должен сломаться и мы должны получить ожидаемое поведение. Ну и желательно это всё делать через контракты, через интерфейсы.
    Например. Давайте сделаем вместо метода walk - move. И в случае move у Animal - мы переключаем свойство walking на true. А у Bird мы переписываем метод move и в нем меняется flying на true, а walking не трогается. Как я понимаю - вот это и есть то самое нарушение принципа. Да, и там и там move, но логика разная и получается разное поведение.
    Но не факт, что мое видение - правильное. Я сам только это всё изучаю и не зашел бы на этот ролик если был бы уверен во всем)

    • @bidlocode
      @bidlocode  Год назад

      Да, я это и пытался сказать, но косноязычие не позволило)

    • @darkspace6089
      @darkspace6089 Год назад +1

      Скорее наоборот. При подстановке родителя вместо наследника код не должен ломаться, т.к. наследники должны расширять класс и не изменять уже то, что есть.
      "Подтипы должны быть заменяемы на своих базовые типы" @Р. Мартин

    • @bidlocode
      @bidlocode  Год назад +1

      Спс, я оставлю на всякий ссылку на подробную статью именно по этому принципу habr.com/ru/articles/83269/

    • @VanyaMate
      @VanyaMate Год назад

      А как родитель будет заменять ребенка?
      Допустим у нас есть Animal и Bird (extends Animal).
      Animal имеет метод walk (vector: Vector);
      Bird имеет дополнительно метод fly (vector: Vector, altitude: number);
      Допустим у нас есть функция takeAFlight(bird: Bird, vector: Vector, altitude: number);
      Функция вызывает bird.fly(vector, altitude);
      Каким образом любой Animal может заменить Bird в этом примере?
      Ведь у Animal нету метода fly.
      Замена будет возможна только в случае того, если Bird является полностью копией Animal. В чем тогда смысл?
      Но если мы имеем функцию takeAWalk(animal: Animal, vector: Vector);
      Функция вызывает animal.walk(vector);
      То мы можем подставить вместо Animal любой экземпляр класса или интерфейса который соответствует контракту. Например Bird.
      И тут, как я понимаю, в этом и принцип, что мы не переписываем методы, мы только дополняем. Из-за чего мы можем подставлять любые подтипы вместо их родителей.
      Нарушением принципа будет переписать метод walk у Bird, например на walk(vector: Vector, speed: number).
      Тогда мы не можем передать в takeAWalk Bird. Ну или перепишем логику внутри так, что класс будет вести себя иначе и из-за чего появятся ошибки.
      @@darkspace6089

    • @darkspace6089
      @darkspace6089 Год назад

      @@VanyaMate понятное дело, что родитель не сможет выполнить новые методы наследника, потому что просто о них не знает. Речь идёт о тех методах, которые известны обоим. Родитель обладает им, наследник его не меняет. В итоге в коде кого хочешь ставь - метод всё равно сработает одинаково

  • @ukrainetoday960
    @ukrainetoday960 Год назад +1

    2:01 Метод валидации мейла вобще-то может относится к Персоне - если персона проверряет емейлы

    • @bidlocode
      @bidlocode  Год назад +2

      Так можно что угодно связать. Метод подключения к БД может относиться к person - если person подключается к БД. Так что ли?)

    • @ukrainetoday960
      @ukrainetoday960 Год назад +1

      @@bidlocode Вполне)

    • @bidlocode
      @bidlocode  Год назад +1

      Понял тебя)

  • @dudo5094
    @dudo5094 Год назад +1

    Пхп когда будет?

    • @bidlocode
      @bidlocode  Год назад

      Я думаю никогда 🙅

  • @maestro6948
    @maestro6948 Год назад +1

    Чувак, а у тебя уроки брать можно? Я бы без задней мысли взял бы у тебя пару платных уроков. Так понятно мне ещё никто не объяснял

    • @bidlocode
      @bidlocode  Год назад

      Заходи в телегу да спрашивай, мы там бесплатно поможем чем можем)

  • @MRasulM
    @MRasulM Год назад +2

    Еще раз извинишься 8:57 за отрыжку - отпишусь, нах)

  • @mcoxotnik
    @mcoxotnik Год назад +1

    Ты первый кого я увидел, кто в 2023 писали на var.

    • @bidlocode
      @bidlocode  Год назад

      Примеры взяты из интернета, главное чтобы было понятно

    • @mcoxotnik
      @mcoxotnik Год назад +1

      @@bidlocode, ок не знал.