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

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ก.ค. 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 и куда двигаться в айти? 👉 th-cam.com/video/NnM1Od1TKdA/w-d-xo.html

  • @Mr43046721
    @Mr43046721 4 ปีที่แล้ว +442

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

    • @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 4 ปีที่แล้ว +22

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

  • @tonymax7503
    @tonymax7503 3 ปีที่แล้ว +5

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

  • @sicknature0717
    @sicknature0717 4 ปีที่แล้ว +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 ваши слова словно бальзам на душу. А то сидишь такой и думаешь "хоть бы мой код никто никогда не увидел, а то сразу скажут "что за дурак это проектировал"".

  • @user-qv4hn6qq4n
    @user-qv4hn6qq4n 3 ปีที่แล้ว +1

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

  • @user-sh4wz1zn4r
    @user-sh4wz1zn4r 4 ปีที่แล้ว +19

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

  • @andyvoice
    @andyvoice 4 ปีที่แล้ว +2

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

  • @OlegPetrow-dp1vp
    @OlegPetrow-dp1vp ปีที่แล้ว

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

  • @user-bt9hx3ik6e
    @user-bt9hx3ik6e 3 ปีที่แล้ว +1

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

  • @ivankobyuk8385
    @ivankobyuk8385 ปีที่แล้ว +1

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

  • @romanmotovilov129
    @romanmotovilov129 4 ปีที่แล้ว +1

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

  • @Brick87Game87
    @Brick87Game87 3 ปีที่แล้ว

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

  • @zcbesaba
    @zcbesaba 4 ปีที่แล้ว +14

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

  • @alexramov4165
    @alexramov4165 2 ปีที่แล้ว

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

  • @turalinov
    @turalinov 2 ปีที่แล้ว

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

  • @sancho2238
    @sancho2238 4 ปีที่แล้ว +2

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

  • @user-td1ny2mg8q
    @user-td1ny2mg8q 3 ปีที่แล้ว

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

  • @antondavinchi1533
    @antondavinchi1533 4 ปีที่แล้ว +2

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

  • @user-hc5mg6zz7h
    @user-hc5mg6zz7h 3 ปีที่แล้ว +2

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

  • @ya.mehail
    @ya.mehail 3 ปีที่แล้ว +2

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

  • @wandos777
    @wandos777 2 ปีที่แล้ว

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

  • @Nikita04111991
    @Nikita04111991 4 ปีที่แล้ว +118

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

  • @UserUser-yk9bt
    @UserUser-yk9bt 5 หลายเดือนก่อน

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

  • @Vlad_Gromov_1992
    @Vlad_Gromov_1992 3 ปีที่แล้ว +1

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

  • @user-rr1mw2lz1u
    @user-rr1mw2lz1u 3 ปีที่แล้ว +6

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

  • @dijee678
    @dijee678 3 ปีที่แล้ว +1

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

  • @xmafioza
    @xmafioza 3 ปีที่แล้ว

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

  • @user-em8ns3nw7n
    @user-em8ns3nw7n 3 ปีที่แล้ว +1

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

  • @shkippitor1895
    @shkippitor1895 4 ปีที่แล้ว +3

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

  • @a.d.4418
    @a.d.4418 4 ปีที่แล้ว +1

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

  • @MaceUA
    @MaceUA 3 ปีที่แล้ว +1

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

  • @demidovmaxim1008
    @demidovmaxim1008 3 ปีที่แล้ว +1

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

  • @andrey12277
    @andrey12277 4 ปีที่แล้ว +2

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

  • @coder3381
    @coder3381 3 ปีที่แล้ว +1

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

  • @denisovilya1888
    @denisovilya1888 3 ปีที่แล้ว +1

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

  • @alexanderraf5553
    @alexanderraf5553 4 ปีที่แล้ว +2

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

  • @alexbendler943
    @alexbendler943 2 ปีที่แล้ว

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

  • @z.389
    @z.389 4 ปีที่แล้ว +1

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

  • @EnjoykinPlay
    @EnjoykinPlay 4 ปีที่แล้ว +3

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

  • @user-nm8zk4hn4q
    @user-nm8zk4hn4q 3 ปีที่แล้ว

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

  • @artmos6148
    @artmos6148 3 ปีที่แล้ว +5

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

  • @DI-xs3kh
    @DI-xs3kh 2 ปีที่แล้ว

    Сергей, с Новым Годом! Желаю Вам и всей команде успеха и гармоничного развития. Сберегайте и приумножайте! Вас всегда полезно и интересно слушать.

  • @bitcampru
    @bitcampru 3 ปีที่แล้ว

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

  • @eugenstakhursky9604
    @eugenstakhursky9604 4 ปีที่แล้ว +2

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

  • @user-ms5pc2vj8u
    @user-ms5pc2vj8u 2 ปีที่แล้ว

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

  • @OlegIgonin
    @OlegIgonin 3 ปีที่แล้ว +1

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

  • @pavelsamsonenka3155
    @pavelsamsonenka3155 3 ปีที่แล้ว +1

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

  • @karabasbarabas2000
    @karabasbarabas2000 4 ปีที่แล้ว +2

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

  • @alexdec2109
    @alexdec2109 3 ปีที่แล้ว +1

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

  • @antonhen23
    @antonhen23 3 ปีที่แล้ว +1

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

  • @RusIvan2022
    @RusIvan2022 3 ปีที่แล้ว

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

  • @user-bp7zt9sn2w
    @user-bp7zt9sn2w 4 ปีที่แล้ว +1

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

  • @inglevir
    @inglevir 3 ปีที่แล้ว

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

  • @zzshek
    @zzshek 2 ปีที่แล้ว

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

  • @kseniyashamina9322
    @kseniyashamina9322 3 ปีที่แล้ว +3

    Тема очень важна и подача хороша.Ждем скорее продолжения)Спасибо) Еще ,если будет время,интересно послушать о ЛЯМБДА-ВЫРАЖЕНИЯХ и ФУНКЦИОНАЛЬНЫХ ИНТЕРФЕЙСАХ. Еще интересно послушать о классах String Builder и String Buffer. Про многомерные массивы и еще куча всего)))

  • @azizkudaikulov993
    @azizkudaikulov993 2 ปีที่แล้ว

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 2 ปีที่แล้ว

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

  • @nemanjasekulic711
    @nemanjasekulic711 3 ปีที่แล้ว

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

  • @nicolas267s
    @nicolas267s 4 ปีที่แล้ว +1

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

  • @serhiirubets6630
    @serhiirubets6630 3 ปีที่แล้ว

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

  • @vladkr7396
    @vladkr7396 3 ปีที่แล้ว

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

  • @iuripraporscic9285
    @iuripraporscic9285 3 ปีที่แล้ว +3

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

  • @iliapopkov4432
    @iliapopkov4432 3 ปีที่แล้ว +1

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

  • @DenVeR-PRO
    @DenVeR-PRO 3 ปีที่แล้ว

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

  • @joekerman1114
    @joekerman1114 3 ปีที่แล้ว +1

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

  • @antonvalintsev1384
    @antonvalintsev1384 3 ปีที่แล้ว +1

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

  • @user-ug5kc1dv2o
    @user-ug5kc1dv2o 3 ปีที่แล้ว

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

  • @AlanSmith2306
    @AlanSmith2306 3 ปีที่แล้ว +1

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

  • @roman3249
    @roman3249 3 ปีที่แล้ว

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

  • @user-zv4kq8ly2n
    @user-zv4kq8ly2n 3 ปีที่แล้ว +2

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

  • @user-le1xf8ul9y
    @user-le1xf8ul9y 3 ปีที่แล้ว

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

  • @Lammax2012
    @Lammax2012 3 ปีที่แล้ว

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

  • @marsianinm8349
    @marsianinm8349 4 ปีที่แล้ว +1

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

  • @JohnDoe-tm1rv
    @JohnDoe-tm1rv 3 ปีที่แล้ว

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

  • @Az1zdev
    @Az1zdev 3 ปีที่แล้ว +1

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

  • @phil4765
    @phil4765 3 ปีที่แล้ว

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

  • @alexandershchegretsov9615
    @alexandershchegretsov9615 3 ปีที่แล้ว +1

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

  • @Skykvi
    @Skykvi 2 ปีที่แล้ว

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

  • @user-pn8vw8rr3m
    @user-pn8vw8rr3m 4 ปีที่แล้ว +7

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

  • @user-fr5ty2ll2p
    @user-fr5ty2ll2p 4 ปีที่แล้ว +1

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

  • @bashconsole
    @bashconsole 2 ปีที่แล้ว

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

  • @channeldsr9983
    @channeldsr9983 4 ปีที่แล้ว +1

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

  • @MERKYRIY-fn5rw
    @MERKYRIY-fn5rw ปีที่แล้ว

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

  • @yuriyfedoryshyn5206
    @yuriyfedoryshyn5206 4 ปีที่แล้ว +2

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

  • @user-bu3uk5zw7o
    @user-bu3uk5zw7o 3 ปีที่แล้ว +1

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

  • @dmitry_shelemekh
    @dmitry_shelemekh 3 ปีที่แล้ว +1

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

  • @wodzimierzletov2990
    @wodzimierzletov2990 3 ปีที่แล้ว +1

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

  • @user-nz7pv6ty6i
    @user-nz7pv6ty6i 3 ปีที่แล้ว

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

  • @temu4870
    @temu4870 3 ปีที่แล้ว

    Ааа, ты лучший, огромное спасибо!!!

  • @Epenckorn
    @Epenckorn 3 ปีที่แล้ว

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

  • @ykrupitskiy
    @ykrupitskiy 2 ปีที่แล้ว

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

  • @kostyayarovyi3092
    @kostyayarovyi3092 3 ปีที่แล้ว

    Очень интересно, спасибо

  • @user-rl1hs3jf7l
    @user-rl1hs3jf7l 3 ปีที่แล้ว +2

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

  • @user-hf3uo2js2f
    @user-hf3uo2js2f 4 ปีที่แล้ว +1

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

  • @MichaelAltair
    @MichaelAltair 3 ปีที่แล้ว +1

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

  • @dmitrykoposov796
    @dmitrykoposov796 4 ปีที่แล้ว +1

    Спасибо. То, что надо.

  • @timurkleperson4033
    @timurkleperson4033 4 ปีที่แล้ว +2

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

  • @jonikismjam4076
    @jonikismjam4076 3 ปีที่แล้ว

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

  • @user-lc9wd8xu2r
    @user-lc9wd8xu2r 2 ปีที่แล้ว

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