SOLID принципы: SRP (Принцип единственной ответственности, Single Responsibility Principle)

Поделиться
HTML-код
  • Опубликовано: 26 июн 2024
  • 🔥 Новый поток моего авторского тренинга GRASP and GoF Design patterns стартует уже 01.02.2024
    Регистрация 👉 go.foxminded.ua/3Uep1dr
    1. На основе работы Роберта Мартина (дяди Боба). Акроним SOLID предложен Michael Feathers
    2. SOLID (сокр. от англ. single responsibility, open-closed, Liskov substitution, interface segregation и dependency inversion)
    1. SRP Принцип единственной ответственности (The Single Responsibility Principle) - Каждый класс должен иметь одну и только одну причину для изменений.
    2. OCP Принцип открытости/закрытости (The Open Closed Principle) - программные сущности … должны быть открыты для расширения, но закрыты для модификации
    3. LSP Принцип подстановки Барбары Лисков (The Liskov Substitution Principle) объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы
    4. ISP Принцип разделения интерфейса (The Interface Segregation Principle) много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения
    5. DIP Принцип инверсии зависимостей (The Dependency Inversion Principle) Зависимость на Абстракциях. Нет зависимости на что-то конкретное
    3. Для чего нужны принципы SOLID
    4. Запахи кода (Code smells) и антипаттерны
    5. Собственный тренинг по паттернам и антипаттернам
    6. Принцип единственной ответственности (SRP) каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкапсулирована в класс
    7. Следование принципу:
    1. Разделение больших классов, делающих многое
    2. Слияние мелких классов и объединение в одном классе однотипоной функциональности
    8. Упрощает поддержку и расширение классов
    9. Антипаттерны - типа GoD object
    10. Требует осмысленного отношения
    11. Active Record нарушает SRP
    Курсы для новичков:
    JAVA - bit.ly/3gti9lR
    JAVA Start - bit.ly/3fnwLSp
    Инструментарий JAVA - bit.ly/2PpjldW
    Automation QA (Java) - bit.ly/3fkMr92
    ANDROID - bit.ly/3k7ejRv
    C#/.NET - bit.ly/3glCdXg
    C# START - bit.ly/3i70As2
    PYTHON - bit.ly/33oYmAw
    FRONT-END - bit.ly/39SKQpL
    SALESFORCE Developer - bit.ly/2Xn2L2S
    UI/UX дизайн - bit.ly/3i13HBW
    Project management - bit.ly/30oGFyO
    Обучение на проекте - bit.ly/3i74yRs
    Продвинутые курсы для состоявшихся девелоперов:
    GRASP and GoF Design patterns -
    Enterprise patterns - bit.ly/3fmUnGZ
    Сайт Foxminded: bit.ly/2BTPPKk
    Foxminded в ФБ: / foxmindedco
    FoxmindEd в Instagram: / foxminded.ua
    Foxminded в VK: foxminded
    Мой Telegram: t.me/nemchinskiyOnBusiness
    Мой блог: www.nemchinsky.me
    0:00 - вступление Сергея Немчинского
    0:50 - все принципы SOLID вкратце
    4:02 - для чего нужны принципы SOLID
    5:42 - формулировка принципа SRP
    6:47 - SRP на картинке
    10:23 - как следовать SRP
    11:35 - антипаттерн GoD object
    12:15 - любые SOLID принципы требуют критического осмысления
    13:20 - Active Record нарушает SRP

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

  • @SergeyNemchinskiy
    @SergeyNemchinskiy  2 месяца назад

    👨‍💻 После Senior ВСЕ? Как программисту развиваться после Senior и куда двигаться в айти? 👉 ruclips.net/video/NnM1Od1TKdA/видео.html

  • @Mr43046721
    @Mr43046721 3 года назад +441

    Ждём видео про "запахи кода".

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

      Поддерживаю, ждём!

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

      Очень

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

      да!

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

      плюс стопицот! очень-очень интересно :)

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

      Smells like teen spirit. It stinks of beer and drugs.

  • @VITALIIBILYK
    @VITALIIBILYK 3 года назад +22

    Спасибо за видео. Да, интересно и про SOLID и про ошибки.

  • @user-sh4wz1zn4r
    @user-sh4wz1zn4r 3 года назад +19

    Видео топ. Обращу ваше внимание, товарищи, что мы с вами живём в тот день, когда стаж нашего слуги стал не большим, а ОЧЕНЬ большим!

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

    10/10. Для меня первый не нудный и не убитый жизнью автор, который так позитивно и интересно доносит тему. Всегда приятно освежить свои знания, и полезно услышать мнение человека с опытом. Лайк подпеска

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

    Спасибо! Очень интересно! Продолжайте про все принципы!

  • @user-bt9hx3ik6e
    @user-bt9hx3ik6e 3 года назад +1

    спасибо за разжевывание SOLID. очень нужная тема и простым языком.

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

    Спасибо за такое подробное объяснение принципов SOLID!

  • @OlegPetrow-dp1vp
    @OlegPetrow-dp1vp Год назад

    Сергей, огромное спасибо за видео! Очень подробно и понятно! Вы отлично умеете объяснять

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

    Определённо нужно больше таких видео!

  • @user-td1ny2mg8q
    @user-td1ny2mg8q 3 года назад

    Спасибо огромное за видео по SOLID, сейчас прохожу обучение и надо во всем этом разобраться.

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

    Спасибо! КОнечно ДА!
    п.с. спасибо что всё так подробно объясняете вплоть до "это ромбик", чтобы мы не додумывали и не тупили)

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

    Огромное спасибо, что записали это видео. Программирование - это великая наука. А интересная просто ЖУТЬ как)))))))))))))))))) Однажды создав маленькую программу данный процесс уже не остановить!!!

  • @UserUser-yk9bt
    @UserUser-yk9bt 4 месяца назад

    Спасибо большое за видео)

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

    Очень интересно про SOLID, продолжайте)

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

    Идеальный формат, быстро и доходчиво!

  • @user-qv4hn6qq4n
    @user-qv4hn6qq4n 3 года назад +1

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

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

    ооо, вот это действительно классная тема ))))) спасибо, за Ваши видео ))))))

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

    Отличное видео, продолжайте. И да, не стесняйтесь длинных видео.

  • @user-rr1mw2lz1u
    @user-rr1mw2lz1u 3 года назад +6

    Крутой формат, и видео как раз оптимальной длины

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

    Побольше таких видео. Здорово получается.

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

    Спасибо за видио! Интересное тема, жду продолжения

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

    Это любимая тематика видео

  • @user-hc5mg6zz7h
    @user-hc5mg6zz7h 3 года назад +2

    Очень круто! Спасибо за видео.

  • @zcbesaba
    @zcbesaba 3 года назад +14

    круто, продолжайте эту серию, и делайте про другие принципы, наконец-то качественный контент, а не жевание одного и того же много раз.

  • @user-dp6dh3cx5k
    @user-dp6dh3cx5k 3 года назад +2

    Однозначно один из лучших канонов по java и ООП в целом! Полезны любые видео по лучшим практикам написания кода, синтаксис выучить легко, а научиться правильно писать гораздо сложнее...

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

    Спасибо Сергей, еще не смотрел,но я думаю это будет отличное объяснение👍🏻👍🏻👍🏻👍🏻👍🏻

  • @z.389
    @z.389 3 года назад +1

    Спасибо за ваше время, если можно больше про принципов.

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

    Дякую шановний !
    Дуже цікавий приклад Ви розглянули.
    Геть по іншому сприймав цей принцип.
    Насправді, тут можна багато прикладів різних типів класів.
    Тонна корисної інфи, варто це обережно пробувати ручками 🤝

  • @user-em8ns3nw7n
    @user-em8ns3nw7n 3 года назад +1

    Спасибо. Очень познавательно и, главное, понятно.

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

    Спасибо, Сергей. Замечательное дополнение к книге дяди Боба.

  • @sicknature0717
    @sicknature0717 3 года назад +302

    Про code smell очень интересно было бы послушать. А так, спасибо за видео.

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

      +

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

      +

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

      +. хочется понять степень говенности моего кода)), так как самоучка

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

      @@alexlightweight Я просто недавно столкнулся с тем, что мой код разросся и стало сложно его модифицировать, а раз его сложно поддерживать, значит он -говно, я конечно сейчас перепаковываю всё в отдельные классы и функции, но интересно было бы знать, что ещё предпринимают для улучшения кода специалисты, такие как Сергей.

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

      @@alexlightweight ваши слова словно бальзам на душу. А то сидишь такой и думаешь "хоть бы мой код никто никогда не увидел, а то сразу скажут "что за дурак это проектировал"".

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

    Отличный формат видео!

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

    Огонь тема! Продолжайте!

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

    Сергей, разъясняете очень интересные и актуальные вопросы, продолжайте делиться знаниями по SOLID. Спасибо Вам за то, что делаете!

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

    Спасибо вам за ваше видео!

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

    Супер! Продолжайте

  • @user-nm8zk4hn4q
    @user-nm8zk4hn4q 3 года назад

    Тема отличная!! Побольше таких видео!!

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

    Большое спасибо за выпуск!!!

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

    Интересно, спасибо Сергей!

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

    Ждём продолжения. Молодец Серёга.

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

    Спасибо Вам большое) Очень интересно Вас слушать на эти темы. Примерно год назад слушал это видео, но был, как я сейчас понял, даже еще не новичком, а пересматривая сейчас, понимаю, что эти принципы очень даже логичны и даже не осознанно сам так делаю) еще раз спасибо Вам за такие видео, однозначно лайк )

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

    Ураааааааа))))Спасибо, дождались наконец-то)

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

    Супер. Ждем все принципы)..

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

    Спасибо за видео. Нужно продолжение!))

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

    Браво 👍❤ жду продолжения

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

    Сергей сказал в августе про SOLID, значит в августе про SOLID! )) Спасибо!

  • @user-ms5pc2vj8u
    @user-ms5pc2vj8u 2 года назад

    Крутой формат. Спасибо за инфу!

  • @a.d.4418
    @a.d.4418 3 года назад +1

    Ждал это видео от вас, еще не смотрел но уже знаю что все будет на уровне)))

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 года назад

    Сергей, благодарю!

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

    тема определенно интересна, хотелось бы побольше таких видео - коротенько, суть, так сказать. Ведь самое сложное - дойти до простого. Когда большой тутор новичок теряется. Важно сначала понять суть, а потом уже можно вникать в детали. А у Сергея очень хорошая подача, что тоже очень важно

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

    спасибо за примеры и видео!

  • @user-bp7zt9sn2w
    @user-bp7zt9sn2w 3 года назад +1

    Тема супер, решил посмотреть сразу не смотря на то что опаздываю на работу.
    code smell тоже очень интересно

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

    Спасибо, ждём продолжения

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

    Прекрасно, как всегда!

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

    Мне хоть уже и знакомы SOLID принципы, все равно с удовольствием прослушал. Повторение - мать учения.

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

    Супер! Как же дождаться последнего принципа теперь...

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

    Интересно прослушать все затронутые темы

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

    Всё интересно. И про запахи и про всё остальное! Ждём-с )

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

    Спасибо! Я тоже программист с большим опытом (вероятно, не меньшим, чем у автора), и не то, чтобы меня настигло откровение в этом видео, но ещё разок вспомнить основы, рассказанные с чуть нового угла - всегда полезно и приятно.

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

    Хотя это и самореклама, но. Очень приятный грамотный человек. Спасибо за труды. Не сомневаюсь что автор прекрасный преподаватель!

  • @JohnDoe-tm1rv
    @JohnDoe-tm1rv 3 года назад

    Хорошая серия. Интересно про Лисков послушать :)

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

    Хорошо, что перешли к техническим видео, не помешает.

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

    Да всё интересно, всё записывайте!

  • @user-zv4kq8ly2n
    @user-zv4kq8ly2n 3 года назад +2

    конечно интересно про code smells.Спасибо за видео

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

    Ну наконец-то. Хоть кто-то использует адекватные примеры. А то везде натыкаюсь на примеры, от которых возникает только один вопрос: "как про такую чушь бесполезную столько книг понаписали?"
    Теперь хоть понятно, что и так всегда его использовал)
    Спасибо

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

    Спасибо, очень интересно и очень нужно!

  • @user-fr5ty2ll2p
    @user-fr5ty2ll2p 3 года назад +1

    Круто, жду продолжения. И про запахи кода тоже жду.

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

    Отличное объяснение! Видео короткое, 15 минут. Но чтобы реально все из него осмыслить, нужно побольше времени))
    Интересно было, хорошие примеры.

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

    Пеннивайз реально годноту делает. Лайк подписка!)

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

    Очень интересно. Про анти-паттерны прям надо!!!

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

    Очень интересная тема!

  • @user-le1xf8ul9y
    @user-le1xf8ul9y 3 года назад

    Очень интересно. Жду продолжение

  • @Nikita04111991
    @Nikita04111991 3 года назад +118

    Спасибо за видео!)
    P.S. Возьмите черный маркер, нечего не видно

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

    Супер-пупер интересно, спасибо)))

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

    Сергей, ваше видео просмотрело и пролайкало больше людей, чем лекцию самого Дяди Боба. Это же нонсенс!!! Вайти-вайти...

  • @DenVeR-PRO
    @DenVeR-PRO 3 года назад

    Супер! Все по делу.

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

    Круто! Спасибо!

  • @user-rl1hs3jf7l
    @user-rl1hs3jf7l 3 года назад +2

    Конечно будет интересно послушать про Code Smells

  • @user-lc9wd8xu2r
    @user-lc9wd8xu2r 2 года назад

    интересно интересно. Снимайте ещё

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

    Спасибо, познавательно, продолжайте :)

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

    Всё интересно! Всё делайте!

  • @MERKYRIY-fn5rw
    @MERKYRIY-fn5rw Год назад

    Про котиків і соцмережі- це ваще крутяк. Сміюся)))

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

    Супер. Спасибо. Ждемс еще

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

    Ждем про code smells! Спасибо за видео

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

    Дичайше интересно, спасибо!

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

    спасибо за видео

  • @user-pn8vw8rr3m
    @user-pn8vw8rr3m 3 года назад +7

    Сергей, предлагаю новую рубрику: рефакторинг с Сергеем Немчинским. Чтобы на практике увидеть "code smells" и как с ними бороться. У вас охрененный опыт, мне кажется он максимально раскроется в таком формате.

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

    О! Класс! Большое спасибо!!!:)

  • @user-bu3uk5zw7o
    @user-bu3uk5zw7o 3 года назад +1

    Спасибо. Данная тематика интересна)

  • @user-ug5kc1dv2o
    @user-ug5kc1dv2o 3 года назад

    Спасибо, интересно и доступно.

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

    Супер, спасибо.

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

    Спасибо! Тема интересная :)

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

    Класс, очень полезное, спасибо!

  • @yersinbizak3592
    @yersinbizak3592 28 дней назад

    круто

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

    Зашло, продолжайте.

  • @user-nz7pv6ty6i
    @user-nz7pv6ty6i 3 года назад

    очень интересно, продолжайте)

  • @user-hf3uo2js2f
    @user-hf3uo2js2f 3 года назад +1

    Тема крутая, спасибо

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

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

  • @user-jp3hj3yi9z
    @user-jp3hj3yi9z 3 года назад +1

    супер, хороший разбор