Важнейший шаблон программирования из 23-х

Sdílet
Vložit
  • čas přidán 21. 08. 2024
  • В этом выпуске разберемся с шаблоном проектирования стратегия (strategy)
    Проект
    github.com/ext...
    ссылки:
    ● VK: bit.ly/vk_extre...
    ● Telegram Chat: bit.ly/telegram...
    ● Patreon: / extremecode

Komentáře • 389

  • @PetruCHIOrus
    @PetruCHIOrus Před 4 lety +228

    1:25 откинулся на спинку табуретки и только потом вспомнил, что у табуреток нету спинки

    • @GeorgyBabukhadia
      @GeorgyBabukhadia Před 3 lety +18

      не та стратегия табуретки попалась

    • @damascake
      @damascake Před 3 lety +15

      Откинулся на спинку, сидя на табуретке, но не упал, потому что благодаря паттерну стратегия смог прямо в рантайме на лету заменить логику табуретки на логику кресла.

    • @dxrpz1669
      @dxrpz1669 Před 3 lety +4

      не упал, потому что это была не табуретка, а абстрактная фабрика

  • @shans-on
    @shans-on Před 5 lety +409

    Тоесть, стратегия это просто использовать интерфейс по назначению?

    • @a.o.yaroslavov
      @a.o.yaroslavov Před 4 lety +16

      Да!!!!!

    • @EshkinKot1980
      @EshkinKot1980 Před 4 lety +23

      Нет, конечно. Использование интерфейсов по назначению это описание типа и абстрагирование от конкретных объектов.
      Для примера можно взять видос на каком-то сервисе. Предположим, что у его можно посмотреть, можно прослушать аудио(в наушниках во время пробежки), можно оставить комментарий. Этот функционал находится в разных модулях системы. Тогда интерфейсы будут следующее:
      interface IVideo { public void show();}
      interface IAudio { public void sound();}
      interface IHasComments { public void comment(string comment);}
      Тогда подсистема отвечающая за проигрывания звука принимает на вход объект, имплеменирующий интерфейс (реализующий тип) IAudio. Примерно так:
      void play (IAudio someObject) { someObject.sound();}
      И ей, по большому счету, все все равно видео это или аудио или что-то еще, главное чтобы это что-то имело методы описанные в интерфейсе. В данном случае метод sound.
      Другими словами аудиоплеер принимает на вход метода play некий объект типа аудио, что еще там есть кроме возможности проиграть аудио, и как конректно он проигрывает аудио аудиоплееру пофиг.
      То же самое с комментариями.
      Чуть более сложный пример, у нас есть аудиозапись и мы ходим её прослушать через вебморду для роликов. Тогда мы реализуем поведение типа видео таким образом, чтобы метод show показывал статичную картинку и проигрывал аудио. Примерно так:
      class AudiobookVideoWrapper : IVideo
      {
      IAudio audio;
      ...
      public void show() {
      this.showStaticPicture();
      this.audio.sound();
      }
      ...
      }

    • @TKSherlock
      @TKSherlock Před 4 lety +2

      @@EshkinKot1980 Я всё равно не понял, по моему Madgel _
      всё правильно сказал(а). Если мы внедряем зависимость по интерфейсу и юзаем эту зависимость только через методы интерфейса, то это стратегия?

    • @EshkinKot1980
      @EshkinKot1980 Před 4 lety +5

      @@TKSherlock Не все паттерны это стратегия, а интерфейсы используются почти во всех паттернах. Более того интерфейсы можно и нужно использовать даже без паттернов и без внедрения зависимостей.

    • @user-xn2xb2yh3l
      @user-xn2xb2yh3l Před 4 lety +11

      какое-то инкапсулированное определение:D не проще ли сказать:
      "стратегия это просто реализация полиморфного поведения. "

  • @user-ou3jn8lt3d
    @user-ou3jn8lt3d Před 4 lety +145

    Самое гавняное видео про хенджоб и футджоб что мне приходилось видеть...

  • @chuvak_2553
    @chuvak_2553 Před 5 lety +79

    Артем Витальевич ЛУЧШИЙ в мире

  • @SHILY-PROJECT
    @SHILY-PROJECT Před 5 lety +46

    Когда пришло уведомление, что вышло видео, я подумал, это глюки... А неееее))) Наконец-то, дождались)))

  • @DrDser
    @DrDser Před 4 lety +30

    Орнул с воркера и его работы)))
    PS: Помните, когда приходите на собеседование и Вас спрашивают о том какие паттерны вы знаете и используете.
    Лучше начните со стратегии "HandJob, FootJob", а не с синглтона, когда вы примените стратегию, интервьюеру будет похуй на какие-то паттерны=)

  • @Popugaj4ik
    @Popugaj4ik Před 5 lety +71

    - Стратегия (шаблон программирования)
    - Мотивация программировать
    - Порно видео онлайн бесплатно
    - Winderton
    - Что делать когда всё заебало
    - My Little Pony в кино(2017)
    Хорошие рофлы, я оценил.

  • @poopanda9939
    @poopanda9939 Před 4 lety +213

    инкапсуляция это сокрытие, понятно же тут всё

    • @ladykamykadze3112
      @ladykamykadze3112 Před 4 lety +64

      После этого ответа, его никто не видел. Поговаривают, что Артем сам пришел к нему в ночи. Задал ему тот проклятый вопрос и схватив, взлетел на стратосферу. Тем самым убив его.

    • @user-xn2xb2yh3l
      @user-xn2xb2yh3l Před 4 lety +5

      @@ladykamykadze3112 не... Ну серьезно сокрытие же... Только реализации а не данных...

    • @lautalanmoto
      @lautalanmoto Před 4 lety

      Накинул на вентилятор. =))

    • @KDevJS
      @KDevJS Před 4 lety +1

      Троль)

    • @user-kg9qk8rt1e
      @user-kg9qk8rt1e Před 3 lety

      инкапсуляция - это в первую очередь АБСТРАГИРОВАНИЕ ... какое же количество тупорылых отбитых на всю тупую свою бошку кодеров и учителей и преподов я повидал на своём веку.. СОВЕРШЕННО НИХЕРА НЕ ПОНИМАЮЩИХ что из их рта вылетает.. и соответственно после них такие же ученики-инвалиды умственные выходят.. и уже 20 лет эта цепочка никак не прервётся ))))))))))))))))))))))
      почему не начать учить ООП с ПРОЕКТИРОВАНИЯ!!! чтобы люди понимали - НАХЕРА ВООБЩЕ НУЖЕН ООП.. ООП надо учить уже ПОСЛЕ того как вы поймёте ЗАДАЧИ ПРОЕКТИРОВАНИЯ ))))
      вот вам самый яркий пример: для чего нужно колесо автомобилю.. ответ: чтобы крутиться... и вот отсюда далее не зная практики представте что вы отлично понимаете что надо поворот проходить дрифтом, подгазовывая на задней передаче )))) --- так же и в ООП.. учат что колесо нужно чтобы крутиться - ДА НЕТ ЖЕ БЛЯДЬ ДЕБИЛЫ-УЧИТЕЛЯ... колесо нужно не для того чтобы крутиться ... Сколько же тупорылых просто наглухо отбитых людей лезет туда, куда им просто нельзя ни при каких условиях лезть.. особенно в процесс обучения.. сколько судеб загубленных, сколько светлых голов сошло с дистанции из-за этих выродков-преподов )))
      з.ы.: может сложиться впечатление что я автора гноблю... не, это я о своём о наболевшем )) автор молодец редкостный, что не бухает, не колется - а пытается познавать прекрасное ))

  • @mirko_lon
    @mirko_lon Před 5 lety +18

    Вы прекрасны, только что дочитал книгу по паттернам и ваше видео более проще и доступнее описывает Стратегию. Спасибо парни)

  • @nephritemontague2872
    @nephritemontague2872 Před rokem +5

    Господи, это лучший канал по программированию. Спасибо за ваши труды)

  • @user-sy7gz3ip8t
    @user-sy7gz3ip8t Před 3 lety +62

    Пожалуйста, снимите новые ролики про паттерны. У вас самая классная подача а главное все понятно и без нудятины.

  • @ExtremeCode
    @ExtremeCode  Před 5 lety +58

    Яы юмщыс даоюяоы, чыпрм озесш ъыозц охрыюхч
    |\ /|
    (.•ы•.)

    • @ExtremeCode
      @ExtremeCode  Před 5 lety +2

      Даю подсказку: ROT13

    • @whyitisme2410
      @whyitisme2410 Před 5 lety

      20

    • @fortunchik
      @fortunchik Před 5 lety

      ROT20 :)

    • @mikedastro2930
      @mikedastro2930 Před 5 lety +4

      @@ExtremeCode вот нахера? - теперь сижу цезаря алгоритмы изучаю ,вместо сна )))

    • @NEFROMAL
      @NEFROMAL Před 5 lety

      Начал изучать C# по вашему курсу, видео закончились, где инфу дальше брать?(

  • @programisli
    @programisli Před 5 lety +154

    Ну все понятно:
    Класс Worker - девушка, выполняющая определенные услуги за деньги
    Класс Handjob - это понятно - ананизм
    Класс Footjob - происходит таким же образом, как и handjob, только ногами
    Стратегия - взаимозаменять Handjob с помощью Footjob в записимости от сексуальных предпочтений.

    • @deniskorolev1748
      @deniskorolev1748 Před 5 lety +40

      Ну так понятнее стало

    • @deniskorolev1748
      @deniskorolev1748 Před 5 lety +11

      Бл...ть, я сегодня увидел видео с Паниным и слово Footjob теперь вызывает рвотные порывы. Можете переснять видео с другими примерами?

    • @madnomad6528
      @madnomad6528 Před 4 lety

      ФЛЕНОВ ты что его канал смотриш? Зачем тебе?!

    • @valerchsayonara8607
      @valerchsayonara8607 Před 4 lety

      хахахах, рил очень понятно))

    • @user-hm8iz1ji9d
      @user-hm8iz1ji9d Před 4 lety +8

      а BlowJob?

  • @Wi1dLife
    @Wi1dLife Před 5 lety +26

    Ставь лукас если тоже любишь хэнд джоб!

  • @andreytarasenko1914
    @andreytarasenko1914 Před 3 lety +6

    Кстати автор, по мимо изложения кучи гов... кхм... сатиры))) очень хорошо и просто объяснил паттерн. Кому нужно:
    4:12 - начало
    5:08 - конец

  • @nikitakuznetcov8933
    @nikitakuznetcov8933 Před měsícem

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

  • @zaubereizeit4805
    @zaubereizeit4805 Před 5 lety +2

    Чувак, я тебя люблю! Не мог бы ты снимать ну хоть немножечко почаще, пожалуйста. Ещё у тебя голос классный и такая ехидная интонация, будто ты ржешь, это странно, но кайфово. Давай видосики, про что хочешь (:

  • @NUB2010
    @NUB2010 Před 4 lety +6

    судя по вкладкам, автор передал в worker только HandJob

  • @vyachislove2502
    @vyachislove2502 Před 4 lety +7

    0:25 гоша дударь и его братья близнецы

  • @michaelskidan9719
    @michaelskidan9719 Před 4 lety +5

    Т.к. все классические "шаблоны проектирования" - это про имитацию функционального программированиения с помощью ООП, то стратегия, как идеологический предок понятия интерфейса в VB, Java и C#, тут должна быть на первом месте.

  • @infimy-home4315
    @infimy-home4315 Před 5 lety +20

    Качественный контент(но это не точно)
    Артем Витальевич "лучший в мире"

  • @User-kk9tl
    @User-kk9tl Před 5 lety +18

    Будет ли видос по виндертону?

  • @user-buter
    @user-buter Před 4 lety +5

    Отличный видос. Если кто-то считает, что недостаточно разобрался, то могу посоветовать первую главу книги Head First: "Паттерны проектирования". Отличный пример с практикой.

  • @lefrutit228
    @lefrutit228 Před 6 měsíci

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

  • @codemaniacchannel6422
    @codemaniacchannel6422 Před 3 lety +1

    Спасибо за разъяснение темы. Оч. круто =)

  • @Lazarforce
    @Lazarforce Před 3 lety +1

    Артём Витальевич лучший в мире!))

  • @GGOwl
    @GGOwl Před 5 lety +6

    хахах, закладки топ, особенно с Winderton'ом, кстати а как вы к нему относитесь?

  • @midaef6630
    @midaef6630 Před 5 lety +1

    Вернулся

  • @user-nd8pt4pz5w
    @user-nd8pt4pz5w Před 5 lety +1

    Вы просто лучшие, продолжайте

  • @GameDev55
    @GameDev55 Před 3 lety +1

    Артём Витальевич лучший в мире)

  • @semen083
    @semen083 Před 5 lety +1

    Я думал Вас уже забрал Garbage Collector жизни

  • @dimendroider7550
    @dimendroider7550 Před 3 lety +1

    Если к авторов канала появиться хотя бы одно видео без матов, ребята сообщите мне!

  • @HerrHoldem
    @HerrHoldem Před 4 lety +2

    "Вики не любит землю"
    Справедливо 👌

  • @HK-sd3du
    @HK-sd3du Před 3 lety +1

    Артём Витальевич лучший в мире, ждём видос всей семьёй

  • @chuvak_2553
    @chuvak_2553 Před 5 lety +1

    Только вчера смотрел, а тут Экстрим Код, отлично

  • @alex-rr5mt
    @alex-rr5mt Před 5 lety +4

    Мужики, давайте побольше паттернов o!o

  • @user-by5cq7yl1h
    @user-by5cq7yl1h Před 3 lety +1

    Артём Витальевич, ну ты понял...

  • @JTCF
    @JTCF Před 4 lety +3

    Артём Витальевич ЛУЧШИЙ в мире

  • @nikitaivanov880
    @nikitaivanov880 Před 5 lety +2

    Артем Витальевич лучший в мире!

  • @johnconstantine6331
    @johnconstantine6331 Před 10 měsíci

    0:35 - у нас так каждый митап
    - Лучшая работа в мире.
    - Лучшая работа в мире!

  • @volkovmisha
    @volkovmisha Před 3 lety

    всё понятно, спасибо за контент!

  • @Lord_Tea
    @Lord_Tea Před 3 lety

    Артем Витальевич ЛУЧШИЙ в мире. ( И это я пишу не потому что совсем не представляю что такое инкапсуляция, а потому что меня зовут так же) )))

  • @jlik2002
    @jlik2002 Před 5 lety +8

    Аж, шишка встала

  • @aslanator
    @aslanator Před 5 lety +3

    А в чем отличие стратегии от dependency injection?

  • @montykay6003
    @montykay6003 Před 5 lety +1

    *Почему так годно?*

  • @mediaoverdosenanisystem7590

    Артём Витальевич ЛУЧШИЙ В МИРЕ

  • @jarre941
    @jarre941 Před 5 lety +2

    Артем Витальевич лучший в мире

  • @virtual_life8017
    @virtual_life8017 Před 2 lety

    Спасибо за то что ты есть ❤

  • @kaz_breaker
    @kaz_breaker Před rokem

    Мало кто заметил, что "Вики не любит Землю"

  • @smartboy6357
    @smartboy6357 Před 2 lety +1

    Наконец из этого видоса узнал, что пишут видосы на этот канал 2 чела, даже имена их узнал. Коля и Артём 3>. А то думал то ли у меня шиза, то ли микрофон меняет этот чел постоянно.

  • @CHRNBRY
    @CHRNBRY Před 2 měsíci

    Только сейчас понял, что Артём и Коля живут вместе, если вы понимаете, о чём я

  • @AndreySHAP
    @AndreySHAP Před 5 lety +4

    Ну и что, я теперь состарюсь когда выйдет следующий видос?

  • @fox26601
    @fox26601 Před 3 lety +1

    Антон Валерьевич лучший в мире

  • @qwe-rty-
    @qwe-rty- Před rokem +1

    Добрый день, а разжуйте пж разницу Стратегии и Стейт

  • @MsShnitz
    @MsShnitz Před 4 lety +1

    Подбор вкладок сладок!😁👍

  • @sorry4206
    @sorry4206 Před rokem

    Понял, стратегия - сокрытие данных, спасибо!

  • @nechelovek4053
    @nechelovek4053 Před 5 lety +2

    Не прошло и месяца!

  • @shushard
    @shushard Před 2 lety +1

    Артём Витальевич лучший в мире

  • @imploringwhisper1619
    @imploringwhisper1619 Před 5 lety +1

    10 из 10ти просто огонь!!)))

  • @maxblanq8982
    @maxblanq8982 Před 3 lety

    Прикольная отсылка на School 13 - игрооргии в начале

  • @evgeniyzabozhan7211
    @evgeniyzabozhan7211 Před 4 lety +3

    Спасибо! Откинулся на табуретке!

  • @almasabdrazak5089
    @almasabdrazak5089 Před 3 lety +1

    Что делать когда все заебало?
    Снимать видос по стратегии

  • @M1rk0n
    @M1rk0n Před 4 lety +2

    Твое видео записано с использованием шаблона "Презентация".

  • @dmitry6687
    @dmitry6687 Před 3 lety

    Безмерная благодарочка

  • @user-fv9xy8bi5d
    @user-fv9xy8bi5d Před 2 lety

    лучшая работа в мире, ой Артем Витальевич лучший в мире

  • @pavelvorontsov7020
    @pavelvorontsov7020 Před 4 lety +1

    можешь поставить видео на паузу и сделать вид, что изучаешь схемку)).... меня порвало, я таки поставил сначала на паузу, потом запустил видео дальше и услышал это.

  • @p9osi
    @p9osi Před 5 lety +2

    Николай Николаевич ЛУЧШИЙ в мире

  • @viktornovikov9266
    @viktornovikov9266 Před 2 lety

    Тёма - молодец!)

  • @user-pu4cp3kf2s
    @user-pu4cp3kf2s Před 5 lety

    Я уже школу закончил, когда вы видос запилили. Жесть. Не надо так

  • @aliakseyshliakhtsionak9006

    Артём Витальевич, спасибо!!! Я немного охуYELL, но это 7-минутное видео для меня было понятнее, чем часовой урок!!! Аж даслёз!!!

  • @by.dim0n
    @by.dim0n Před 3 lety

    Ожидал вначале услышать: откиньтесь на спинку сиденья, кресла, табуретки, или бутылки, но в те годы съёмки бутылка ещё не была мейнстримом

  • @nezajac
    @nezajac Před 4 lety

    Все что находится в фигурных скобках это и есть инкапсуляция, {капсула} - оболочка. Из книжки Шилдта можно узнать что фигурные скобки инкапсулируют все что в них есть. А все что не помечено пабликом скрывается от "вне скобок". Хош скрыть кусок кода? Возьми его в фигурные скобки.

  • @paradoxina
    @paradoxina Před 4 lety

    5 сек видео и я под столом xDDD ты лучший

  • @toliadutov3483
    @toliadutov3483 Před 5 lety

    © спинка табуретки

  • @mr.implex6115
    @mr.implex6115 Před 2 lety

    Хорошее видео, только инкапсуляция это сокрытие.

  • @reiahead
    @reiahead Před 4 lety

    Артем Витальевич, Инкапсуляция - это слово

  • @ApolloJet86
    @ApolloJet86 Před 3 lety +1

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

  • @ForYouNegative
    @ForYouNegative Před 2 lety

    чууууувааааааааааакккккк ты лучший бро

  • @user-gl7gg8gz2g
    @user-gl7gg8gz2g Před 4 lety

    Ты лучший

  • @canisminor6128
    @canisminor6128 Před 4 lety

    Не могу уловить паттерн поведения чувака, который матерится фоном и устроил драку вначале видосика )))

  • @ilyaslezkin4035
    @ilyaslezkin4035 Před 3 lety

    у кого времени в обрез и кому не до "юмора", смотреть с 1 минуты 30 секунды

  • @ApolloJet86
    @ApolloJet86 Před 3 lety

    Thanks!

  • @DenVeR-PRO
    @DenVeR-PRO Před 5 lety

    Расскажите пожалуйста про ваш опыт работы в геймдеве

  • @slimbdeful
    @slimbdeful Před 5 lety +3

    забыл закладку с порно закрыть :)

  • @vladyan01
    @vladyan01 Před 2 lety

    Я ничего не понял, это что получается если использовать интерфейсы то это уже есть паттерн стратегия?

  • @demnyan
    @demnyan Před 3 lety +1

    Валерий Артемьевич.бля я забыл...

  • @grizzly805
    @grizzly805 Před rokem +1

    с хэнд джоб и футджоб поугарал чето

  • @PavelCehov
    @PavelCehov Před 4 lety

    Витальевич лучший в мире Артём.

  • @thepantelemon
    @thepantelemon Před 4 lety

    Хорошие видео.

  • @user-mg8yq4xp1v
    @user-mg8yq4xp1v Před 11 měsíci

    Это не Конфуций, это Морихэи Уэсиба.

  • @user-xn2xb2yh3l
    @user-xn2xb2yh3l Před 4 lety

    Кстати по поводу инкапсуляции...я ее представлял всегда как прием создания каких-то библиотек на которые опираются другие прогеры, не особо парясь как она реализована(через што с точностью до символа '
    '). Так вот не кажется ли вам что термин "сокрытие" встречаемый в описании данного подпункта объектной парадигмы в различных источниках связан непосредственно с идеей выделения 2х вещей: бизнес логики и ее реализации, (с явным подчеркиванием того что именно бизнес-логика должна переходить от прогера к прогеру, а никак не реализация ) а не к непосредственному сокрытию данных, как вы упоминали в видосе про ООП? Да и "объединение данных и методов в классе" как то слишком очевидно для такого важного принципа который в случае моего понимания решает проблему написания велосипедов...

  • @kaksisve4012
    @kaksisve4012 Před 4 lety

    Функции высшего порядка - лучшая реализация стратегии в мире!
    - (с) Штрохайм

  • @xice111
    @xice111 Před 5 lety

    Артём Витальевич ЛУЧШИИИИЙ в мире - забайтил
    запели видос про коллекции плес

  • @romanbush5164
    @romanbush5164 Před 2 lety +1

    Так и не врубился зачем это, и это нарушает DL принцип.

  • @gloomkol
    @gloomkol Před 5 lety +1

    Май литл пони в кино, су**а! Ты лучший!

  • @cinop0
    @cinop0 Před 10 měsíci

    расскажи еще про паттерны

  • @onekoff8480
    @onekoff8480 Před 3 lety

    Да все ведь понятно ведь! Инкапсуляция - это сокрытие!
    P.S. Давай только без бана, плиз.

  • @user-pu4cp3kf2s
    @user-pu4cp3kf2s Před 5 lety

    Я соскучился

  • @notyourpie8913
    @notyourpie8913 Před rokem

    Артём Витальевич Лучший в Мире

  • @user-hk4mj9px5f
    @user-hk4mj9px5f Před 2 lety

    Почему в начале не было шутки про гачимучи?