Принципы SOLID | На примере Ruby

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

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

  • @IlyaBodrovKrukowski
    @IlyaBodrovKrukowski  2 года назад +3

    Друзья, в код вкралась глупая ошибка (спасибо коллеге Rebbit13 за внимательность). Она никак не мешает пониманию описанных принципов, то есть объяснения остаются прежними, но всё же этот момент стоит поправить. Вот короткий коммит для исправления github.com/bodrovis-learning/Ruby-SOLID-video/commit/5914b83748d6df40b6f70f6d19c330d8d9c798e5 Суть в том, что иначе время будет печататься одно и то же, поэтому сохранять изначально нужно только префикс

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

      ничего не понятно, но очень интересно

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

      @@jasperhumpsman7151 А так обычно и бывает

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

      @@jasperhumpsman7151 Мне пришло уведомление насчёт вашего вопроса, но YT его удалил (это известная проблема, с которой я ничего поделать не могу). Отвечаю тут: ну, если вам интересен Ruby, вот в этом плейлисте есть уроки с полного нуля, я их проводил для своего друга, который вообще не знаком с разработкой. ruclips.net/video/lhRAK_bwaeo/видео.html Если это не подойдёт, то хорошая книга Programming Ruby на сайте pragprog, это вообще бестселлер. Также на моём канале есть "секреты классов Ruby", но это сильно на вырост. Начать надо с простых проектов, которые в Ruby с нуля предлагаются, я думаю

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

      @@IlyaBodrovKrukowski Спасибо большое! Пост я сам удалил, потому что подумал что это "зашквар")) Посмотрю все ваши видео. Я просто столкнулся с противоречивой информацией. Очень мало качественной информации по руби в интернете, а все ютубные инфоцигане рекламируют учить корявый Js и только.

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

      @@jasperhumpsman7151 Почему же. Вполне нормальный вопрос. JS тут вообще не нужен, конечно. Сейчас имеет смысл искать сразу инфу по Ruby 3, тк это самая свежая версия

  • @andriyyermoshin605
    @andriyyermoshin605 2 года назад +4

    Спасибо, Илья! Умение так доходчиво объяснять - не каждому доступний навык)

  • @vinogradova82
    @vinogradova82 3 года назад +9

    Илья, очень нравится ваше изложение материала! Спасибо за труд! Всегда смотрю и подписана).

  • @vinogradova82
    @vinogradova82 2 года назад +2

    не первый раз смотрю уже этот ваш видос! реально это лучшее объяснение солида, которое я видела! спасибо еще раз!)

  • @gekphoenix6844
    @gekphoenix6844 3 года назад +8

    Спасибо за ваши старания!

  • @yuriinalyvaiko2241
    @yuriinalyvaiko2241 2 года назад +4

    В последнем примере лучше было бы передавать не класс, а готовый инстанс, полностью сконфигурированный как надо, и тогда `Logger` бы не зависел ни от каких opts. Ибо opts всё же даёт некую зависимость, и вызывающая сторона должна знать о том, как реализован `printer`.

  • @n1Sharam
    @n1Sharam 3 года назад +5

    Как всегда, на высоте) Спасибо!)

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад +1

      Благодарю за отзыв, буду стараться и дальше!

  • @MashinLife
    @MashinLife 2 года назад +2

    Превосходно! 👏🏼👏🏼👏🏼

  • @xaogao
    @xaogao 2 года назад +2

    Спасибо за видео, интересно посмотреть еще примеры с рефакторингом

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      Надо бы что-нибудь такое организовать, конечно

  • @markmakeitreal
    @markmakeitreal 2 года назад +1

    Спасибо большое, очень наглядно

  • @vladcid3938
    @vladcid3938 3 года назад +1

    Большое спасибо за материал, подача очень четкая и последовательная. Лайк!

  • @ledockol
    @ledockol 3 года назад +1

    Опять улетел комментарий …. Переписывать не буду. Автору благодарность и лайк

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад

      Не представляю, в чём проблема. Как говорил в прошлом видео, проблема известная и я тоже её зарепортил уже (тк это уже третий раз как минимум), но не вполне ясно, когда они это починят. Увы, понимаю, что это раздражает. support.google.com/youtube/thread/116351041/recent-reports-of-missing-comments?hl=en

  • @7urkm3n
    @7urkm3n 3 года назад +1

    clear!

  • @halforhalf-fo4fe
    @halforhalf-fo4fe Год назад +1

    отличная подача, спасибо

  • @denvanrain8793
    @denvanrain8793 2 года назад +1

    Спасибо за видео! Хотелось бы узнать, как хранить мультимедийные файлы в базе, и как их потом проигрывать. Например, музыкальные файлы. На примере какого-то простого приложения хранения и воспроизведения музыки.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      Как и любые другие, на самом деле. Просто сделать обычный загрузчик (решений для Rails полно: хотя бы Shrine тот же), сохранять эти файлы, а потом просто сделать плеер на странице. Когда-то я писал похожую статью, только там посложнее (мы делали радио), но идею понять можно, я думаю www.digitalocean.com/community/tutorials/creating-online-streaming-radio-with-rails-and-icecast

    • @denvanrain8793
      @denvanrain8793 2 года назад +1

      @@IlyaBodrovKrukowski Спасибо за ответ! Интересная статья, попробую повторить все изложенное.

  • @grandlagging0zero175
    @grandlagging0zero175 2 года назад +1

    Божественно. Спасибо огромное! Хоть и python'ист, но все очень просто и понятно. С помощью какой программы вы рисуете на экране?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      На здоровье! Кстати, для любителей Python у меня есть отдельное видео про SOLID, возможно, будет более актуальным :) ruclips.net/video/C8fhcHqnqyI/видео.html Для записи и рисования использую Camtasia Studio - это, фактически, единственный адекватный вариант для Windows

    • @grandlagging0zero175
      @grandlagging0zero175 2 года назад +1

      @@IlyaBodrovKrukowski Спасибо за ответ. Видео про SOLID в Python уже посмотрел :)

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      @@grandlagging0zero175 Отлично :DD Ну, по Python кое-что ещё есть на канале (программка для создания скриншотов), но пока в основном Ruby/JS. Возможно, в будущем больше про питон будет, посмотрим

    • @grandlagging0zero175
      @grandlagging0zero175 2 года назад +1

      @@IlyaBodrovKrukowskiТакой вопрос возник. В описании не нашел кода(ссылки на репозиторий git) из принципов SOLID видео по python или ruby. У Вас он есть?

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад

      @@grandlagging0zero175 Да, правильное замечание! Создал два репозитария, ссылки тоже добавил. Ruby: github.com/bodrovis-learning/Ruby-SOLID-video/tree/master Python: github.com/bodrovis-learning/Python-SOLID-video/tree/master

  • @goludg
    @goludg 3 года назад +3

    Спасибо огромное!

  • @ВикторИвлиев-н2ч
    @ВикторИвлиев-н2ч 2 года назад +1

    Спасибо, все супер и понятно, единственно я бы в последнем принципе расширял метод не log, а initialize (как это сделано в оригинале), так как в этом случае мы можем организовать совой поток, а не отдельно для каждого вызова log передавать необходимые атрибуты. К примеру нам нужно вывести 30 логов в 2 патока для каждого места отдельно и вызов несколько раз. В этом случае нам нужно в каждый вызов метода log передать ptinter 2+n раз не айс, а так мы организовали 2 экземпляра и просто вызвали log передав в него только message.
    А по поводу строгим следованиям правил, тут я с вами на все 100% согласен! Жаль что некоторые ребята им пытаются следовать до потери пульса. Был случай, что пришлось порезать более расширяемую архитектуру в пользу SOLID, но спустя время, при сопровождении, парню занимающему более высокую позицию и зарубившему мое предложение вернуться к нему. (маленькое ликование)

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  2 года назад +1

      Да, как вариант. Просто я хотел показать разные подходы и варианты решений. Но в целом, конечно, это не безусловная истина :) Спасибо!