Принципы SOLID. Часть 1

Поділитися
Вставка
  • Опубліковано 2 лют 2025

КОМЕНТАРІ • 19

  • @VladilenMinin
    @VladilenMinin 5 років тому +16

    Вот это крутой материал)

  • @Евгений-р3в1п
    @Евгений-р3в1п 5 років тому +17

    Вынужден не согласится с автором по поводу решения проблемы. Заменив echo на return, Вы никак не изменили класс и не сделали его изменяемым только по 1 причине.
    Для того, чтобы реализовать этот метод, нужно создать отдельный класс и перенести туда метод render. Тогда Основной класс будет изменен лишь по причине необходимости заменить лишь методы получения информации, а второй класс будет изменен лишь при необходимости внести изменения в метод render, например потому, что помимо getDoctor, getPatient и getData, нужно так же отобразить еще и например время создания карточки, getDateCreate, который в свою очередь, может храниться в другом классе.
    Заменив echo на return Вы всего лишь отложили вывод информации с "сейчас", на "потом", когда будет вызван оператор echo. Я должен менять класс Report только потому например, что мне нужно добавить тот самый метод getDateCreate, но никак не потому, что мне нужно этот самый getDateCreate вывести в render или изменить render, чтобы он возвращал только данные 2 методов, а не 3, или изменить на что либо еще, или возвращать их в массиве - это уже 2 причина для изменения 1 класса.
    Правильной реализацией метода единственной ответственности, будет разделение 1 большого класса, на несколько маленьких, но отвечающих строго за конкретную часть: получение данных, сохранение данных, изменение данных, вывод данных и так далее.

    • @alextopsite
      @alextopsite 5 років тому

      Методы getDoctor и addDoctor делаем в одном классе?

    • @VorobyevAlexander
      @VorobyevAlexander 4 роки тому

      Разделение на отдельные классы, получение, сохранение и изменение это уже слишком, на мой взгляд.
      1. Потенциальное место для ошибок. Сохранение "переключили" на БД, чтение осталось из базы....
      2. Так можно дойти до того, что все ООП будет сведено к процедурному стилю, где каждая "процедура" обернута в свой класс. и все это раскидано по фалам... т.е. на каждом хите читается куча файлов и порождается куча объектов... :)
      Про retrun согласен, по сути там реализован view. Логично было render работал с объектом...

    • @НиколайВоробьев-ъ3л
      @НиколайВоробьев-ъ3л 4 роки тому +3

      @@VorobyevAlexander Дальше будет изучаться инъекция зависимостей. Этот принцип решает эту проблему.

  • @oleksandrkondratovych5312
    @oleksandrkondratovych5312 5 років тому +2

    Внимание, была допущена фатальная ошибка в начале урока. И метод Render в указаном примере совсем не работает, так как не отобразилось H1 выделение и переходы . Ведь туда пришли 3 пустые строки. Документ формируется обычными echo внутри методов Get.... И конечно, Евгений Перервенко прав, класс по прежнему нарушает Single Responsive Principle, поскольку содержит шаблон дизайна отчета (View), а методы получения данных это (Model)

  • @ILMIRazmach
    @ILMIRazmach 5 років тому +3

    Спасибо, за контент. Ждем второй принцип.

  • @temcodes
    @temcodes 5 років тому +4

    Спасибо, очень актуально!!!

  • @php-b30
    @php-b30 3 роки тому

    Благодарю!👍🏻

  • @-it-kidys
    @-it-kidys 5 років тому

    Супер подача материала! Огромнейшее спасибо!

  • @НеИзвестныйпользователь-б3л

    Да как раз в нужное время )
    Покажите пожалуйста по детальнее 😊👏👍

  • @noname-nonaymich
    @noname-nonaymich 5 років тому +1

    Спасибо за урок! Вопрос не по уроку :) каким сочетанием кнопок вы вызвали доп.меню "Add method stubs" (20:17)?

  • @hellnoworld
    @hellnoworld 4 роки тому

    Выделите в плейлист все пять уроков.

  • @polvanovv
    @polvanovv 5 років тому

    Прин­цип един­ствен­ной обя­зан­но­сти / ответ­ствен­но­сти (single responsibility principle)
    обо­зна­ча­ет, что каж­дый объ­ект дол­жен иметь одну обя­зан­ность и эта обя­зан­ность должна быть пол­но­стью инкап­су­ли­ро­вана в класс. Все его сер­висы должны быть направ­лены исклю­чи­тельно на обес­пе­че­ние этой обя­зан­но­сти.

    • @SergeiCalabonga
      @SergeiCalabonga 4 роки тому

      Не "обязанность", а причину для изменения. Именно так, со слов автора принципа, был задуман этот принцип!