Двойные стандарты АйТи

Поделиться
HTML-код
  • Опубликовано: 14 мар 2021
  • Курс PostgreSQL от учебного центра Слёрм: slurm.club/3uZlpwT
    Ох уж эти двуличные программистики, сейчас мы выведем их на чистую воду, и покажем где, когда и как стрелочка не поворачивается, и вообще вы не понимаете - это другое
    Музыка
    Earmake - The Summer Mood
    _____________________________________________________________
    💰 Бонусы за спонсорство
    ruclips.net/user/ExtremeCodejoin
    🖤 Telegram: t.me/extremecode_chat
    💙 VK: extremecodetv
    💜 Discord: dscrd.in/extremecode_from_you...
    🤎 GitHub: github.com/extremecodetv
  • НаукаНаука

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

  • @ExtremeCode
    @ExtremeCode  3 года назад +552

    Подпищек поставит лайк, отпищек комментарий
    P.S.
    А могло бы выйти 19 роликов по 30 секунд

    • @user-bt9sh4pg1y
      @user-bt9sh4pg1y 3 года назад +11

      А давай теперь 19 роликов по 30 секунд.

    • @Icmana
      @Icmana 3 года назад +16

      Ля, ты ни чего не понимаешь, мог бы ролики записать по слову, а затем смонтировать видео нормально, а то за 9+ мин очень часто повторяешься, не соблюдаешь принцип единственной ответственности

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

      @@Icmana как боженька смолвил. Развелось ютуберов-самоучек :D

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

      Как же жизненно (работаю с монструозным легаси документооборота). Во имя диалектики оставил и лайк, и комментарий.

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

      @@Icmana сразу видно неопытного масленка, записываешь 32 буквы и нарезаешь из них какой угодно видос.

  • @yamuru22
    @yamuru22 3 года назад +1067

    «Собрались злодеи, обмазавшиеся своим большим опытом в ИТ. Набрали паттернов, лекций, и книг, чтобы оберегать их оргию. И пируют»

    • @neaf1sss
      @neaf1sss 3 года назад +45

      Ахахахахах. Лев Толстой о программировании)

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

      XD

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

      @@neaf1sss нет, блин, волк худой

    • @neaf1sss
      @neaf1sss 3 года назад +6

      @@NerZul121_plus нет, блин, Сернатурал Зименен

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

      Это их хлеб как и хлеб афтора пороть горячку ;)

  • @notthugnotthug364
    @notthugnotthug364 3 года назад +825

    19 роликов по 30 сек будем считать так

    • @baurerzhan6968
      @baurerzhan6968 3 года назад +27

      17, вычтем 2 ролика, там реклама каждые по 30 секунд

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

      Ну смотря с чего начать считать их вполне 20 может оказатся

    • @subscriberswithoutvideos-tv3lg
      @subscriberswithoutvideos-tv3lg 3 года назад

      может 38 по 15 секунд?

  • @vladislavb5471
    @vladislavb5471 3 года назад +748

    У сферы ИТ 2 врага: фронтендеры и бэкендеры

    • @NoldoWalker
      @NoldoWalker 3 года назад +64

      еще фулстаки

    • @artursword3288
      @artursword3288 3 года назад +154

      да и вообще все эти "кодеры" ЗЛО, я ЩИТАЮ что в команде должны быть ТОЛЬКО бизнес аналитики и МАНАГЕРЫ, код писать в 2021 ЧОООО??? МОВЕТОН.. главное же ЯЗЫКОМ уметь чесать (так сказать софтскилзы развивать) ;))))))))))))

    • @witetigre1
      @witetigre1 3 года назад +23

      @@artursword3288 Не так. "Код писать в 2 ка 21 ЧТООО???"

    • @lacrimamoza
      @lacrimamoza 3 года назад +21

      как автотестИр целиком и полностью согласен - наговнокодят, а мне потом свой говнокод писать

    • @antonchehov5536
      @antonchehov5536 3 года назад +6

      Ещё и хрюши.

  • @chumakov_mikhail
    @chumakov_mikhail 3 года назад +371

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

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

      top

    • @user-cr7fd9pr4e
      @user-cr7fd9pr4e 2 года назад +7

      Как сказал Барбосса, кодекс - это свод указаний, а не жестких законов xD

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

      Золотые слова

  • @magnum_fennec
    @magnum_fennec 3 года назад +265

    АйТи - это когда принтера всякие чинят

    • @andscape1440
      @andscape1440 3 года назад +28

      Не чинят, а чернила меняют

    • @lord_romzess_v
      @lord_romzess_v 3 года назад +17

      @@andscape1440 это лишь наиболее частая причина поломки.

    • @andscape1440
      @andscape1440 3 года назад +28

      @@lord_romzess_v наиболее частая причина поломки это красная кнопка на сетевом фильтре.

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

      @@andscape1440 не меняют а разгружают на склад

  • @KravchenkoIgor
    @KravchenkoIgor 3 года назад +202

    То, что тесты прошли успешно, означает одно - тесты прошли успешно.

    • @Time2paw
      @Time2paw 3 года назад +19

      и тесты выглядят как if (true)...

    • @QmanKUCHER
      @QmanKUCHER 3 года назад +4

      А как же тесты хуево написаны?

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

      Ахахах

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

      А твой комментарий означает, что на русском языке можно формировать предложения.

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

      (function() {
      let module = import(...) ;
      if (! (module instanceof Promise)) {
      // ti cho, s*Ka?
      return { result: -1 }
      }
      module
      .then(() => // Тут плохой код)
      .catch(() => // АЙ, БЛ***) ;
      return { result: 0 }
      }) () ;

  • @DieOffenbarung
    @DieOffenbarung 3 года назад +159

    Мемасы, реклама и скроллинг кода - 3 вещи, зачем я сюда прихожу. На сегодня я получил всё, что хотел, продолжай в том же духе.

  • @esper_lvl4900
    @esper_lvl4900 3 года назад +235

    "Пакеты с нпм догрузим в следующих видосах" (с)
    Вы сделали мой день) So true.

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

      Кто то в курсе почему на винде с нпм все так долго грузится, на линуксе бы секунд 10 заняло?

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

      @@flatl1ne а что ты сравниваешь? Свой ПК на винде и Линукс на сервере? Мне кажется, в таком случае банально интернет побыстрее на сервере будет

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

      Там от проца, интернета и оперативы зависит. Ну и от кол-ва пакетов, наличия кэша и package-lock.json

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

      @@andor1904 я сравниваю винду на своем пк и линукс на своем пк , про сервер речи не было

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

      Во первых, если HDD - страдай...

  • @SergMirny_yt
    @SergMirny_yt 3 года назад +74

    Про банан и обезьяну с джунглями - орнул вслух

  • @atla5_
    @atla5_ 3 года назад +98

    Автор, не слушай дурачков-хейтеров, видос получился действительно зашкварным 👍

  • @scarlatum
    @scarlatum 3 года назад +82

    Блять, этот бесконечный фетч нод-модулей для реакта на фоне - Просто высшая стадия комедии!

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

      @Antares nn возвожу в степень

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

      @@ruslanundefined2242 Задаю показательную функцию!

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

      @@user-ey5xw2nx9s факториальную!

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

      @@mishalisovyi Кажется, растёт медленнее

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

      @@user-ey5xw2nx9s зато не кончает дольше!

  • @StrifeTheHorseman
    @StrifeTheHorseman 3 года назад +102

    1:15 настолько залип на задний фон что пришлось три раза отматывать назад чтобы вслушаться в то о чём ты говоришь)

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

      Вот я тоже. В первый раз даже забыл, что слушать надо.

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

      на этом фоне тот еще говно-код, многострочными стрингами компоненты строятся, превратили js в php первого уровня начала 2000-х годов

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

      Блин я тоже на паузу поставил посмотреть что за дерьмо то такое, да в целом код прям такой треш что я глазам своим не верил, хотя они уже столько повидали

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

      @@testchannel3265 Хех

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

      @@testchannel3265 Не думаю, что будет лучше:
      const header = document.createElement('header');
      const Name = document.createElement('h1');
      Name.id = "header__Name";
      header.appendChild(Name);
      document.querySelector("#wrapper").appendChild(header)

  • @maxwellcoding
    @maxwellcoding 3 года назад +70

    Легенды говорят, что сборка от create-react-app до сих пор скачивается...

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

    3:04 этот ls сделал мой день))

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

      Причем больше всего там рассмешило про рельсу ))

  • @olegmak4541
    @olegmak4541 Год назад +3

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

  • @maratiakupov4730
    @maratiakupov4730 3 года назад +4

    Брат, не пропадай так надолго... Ты сохраняешь во мне любовь и ненависть к кодингу. Дай бог те здоровья

  • @backoff6776
    @backoff6776 3 года назад +46

    1. DRY. Мимо. Это означает, что у тебя один функционал будет реализован в двух местах. А потом твой напарник(Вася), будет в этом функционале фиксить багу. В классе А с помощью костыля Б. А потом Другой твой напарник(Петя) будет фиксать ее же, но в классе Ц с помощью котыля Д. А еще через пол года потребуется расширить этот функционал. И в этот момент вам обоим можно будет вполне заслуженно прописать строгий выговор. С занесением в грудную клетку. От того "воина легаси кода", который будет это дерьмо разгребать.
    Касательно валидации пример убогий. Ибо DRY не относиться к макроархитектуре.
    2. Ух ты... я аж расстерялся, за что тебя хаить. Ну... разделим пункт на подпункты.
    2.1 Ну можно было например использовать декомпозицию, придерживаться пунктов S и I из солид, по возможности не злоупотреблять абстракциями, заменяя их композицией и тогда у тебя бы небыло лапшеподобного год-объекта, от которого все зависят.
    2.2. Не кладем на DRY. Признаемся ПМу, что налапшали дерьма и архитектура поплыла. Далее уже действуем по ситуации в зависимости от ресурсов и времени. В идеальном мире- вооружаемся книгой "Рефакторинг", внимательно читаем и действуем согласно рекомендациям. В реальном - скорее всего костыляем и совокупляемся со своими же костылями,слезно прося прощения коллег, т.к. это наша вина.
    2.3. Да, разница есть. Она вытикает из определения юнит-тестирования да и вовсе из здравого смысла.
    2.4. А вот как раз принцип Лисков твоего примера не касаеться никак. А это, между прочим азы, воин ты наш... легаси кода)
    3. Ну так ты вынужден разбираться с говно-кодом, состряпанным другим воином легаси-кода, который относился к своей работе так же, как и ты. Разве это не повод задуматься?
    4. KISS противоречит любым принципам, если упарываться в крайности и искать, к чему бы докопаться. Ну или как бы оправдаться. Тут дело в том, что "Simple" - понятие растяжимое и однозначного ответа, где же заканчиваеться "Simple" и начинаеться "нихера не Simple", тебе никто никогда дать не сможет. Ты же сейчас банально манипулируешь терминологией.
    5. Оо... добрались даже до "Что такое хорошо? Что такое плохо?". Глобальный объект - один из возможных способов решения ряда задачь, связанный с рядом недостатков и рисков, однако в некоторых случаях может оказаться более оптимальным, чем его альтернативы. Только и всего)
    Те принципы и практики, о которых ты так снисходительно говоришь, придуманы гораздо более умными дядями(и тетями) и как раз для того, чтобы выполнять свою работу с минимальным уровнем последующего гемороя и спать по ночам. Залезть в жопу по-глубже, чтобы позже героически из нее выгребать, конечно романтично. Но затратно по времени. А время - деньги. А бабки, как известно - лучший best practice.

    • @user-bk5fz8wd9g
      @user-bk5fz8wd9g 2 года назад +8

      чувак, ты рили воспринимаешь в серьез этот троллинг?)

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

      @@user-bk5fz8wd9g , ну как тебе сказать... Я понимаю, что мамин Линукс Торвальс похайпиться хочет и раздувает холи-вар. И скорее всего прошел бы мимо, если бы не засилие таких вот горе-гениев, за которыми приходиться все переделывать.
      По моим наблюдениям, хорошо если 9 из 10 "специалистов", с которыми приходиться работать(ну или за которыми приходиться разгребать), как то так и относятся к своей работе.
      Надавил на больное короче)

  • @user-ph7ij1gh6k
    @user-ph7ij1gh6k 3 года назад +30

    00:47 - найс коммент перед кодом))

  • @YegresAL
    @YegresAL 3 года назад +79

    Подожди... Т.е. в программировании нет Самого Лучшего Паттрена? Это что... нам думать надо когда мы код пишем? А ну на вилы его!!!!11111ОдинОдинодин

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

      Лучший паттерн это синглтон XD

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

      @@Gameplayer55055 хиханьки хаханьками, но синглтон реально крутой паттерн...
      За все годы что я в этих ваших софтваредевелоперах я видел только одну откровенно ужасную реализацию синглтона - когда синглтоном была UIView которая встраивалась в соответствующий UIViewController. Синглтоном, God-обжектом и глобальной переменной с доступом через макрос. Забавно что все работало ))))

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

      @@YegresAL По идее синглтон полностью нивелирует необходимость глобальных переменных. Да это чуть длиннее в реализации, но нет вопросов - куда запихнуть синхронизацию, и проверки чтоб лучше дебажилось.

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

      @@Gameplayer55055...который тоже "внезапно" стали считать антипаттерном 😁

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

      @@dimdimich2356 смотря где

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

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

  • @user-vg5zk5vx2n
    @user-vg5zk5vx2n 3 года назад +57

    В смысле видео более 30 секунд?

  • @user-nx8wh3kg1t
    @user-nx8wh3kg1t 3 года назад +12

    Так ну, применение того или иного принципа программирования зависит от контекста !) Любой код можно писать в определенном контексте и при определенной задаче:)

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

    Ладно, пересмотрю старый шедевр

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

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

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

    Спасибо за видео. Прям мои мысли озвучил по поводу всех этих нестыковок

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

    Видос вышел к началу рабочего дня, отлично, пожалуй начну с видоса, а потом работа) определенно после просмотра будет баф +10 к качеству написания кода:)

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

    Чувааааал! Ты просто нереален! В этом видео все прекрасно! *яплакаль*

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

    не, ну ты ваще красавчик) и слушать оревно, и солидарен со всем)

  • @user-vp5rt3dq7k
    @user-vp5rt3dq7k Год назад

    Как же я люблю твои видосы! Какой же кайф. Я ценитель такого юмора.

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

    Самый прекрасный видовс за последнее время. ржали всем офисом

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

    Очень хорошее видео, тема раскрыта нормально, спасибо, подписался :)

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

    Топ! Твори дальше! Уникальный контент!

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

    Все правильно автор говорит, особенно насчёт Dry. Выносить надо в основном те части кода, которые почти наверняка не будут меняться. Ну а в целом не надо делать карго-культ и надо понимать область применимости подходов.

  • @Psyh-su3et
    @Psyh-su3et 3 года назад +10

    Я не "отпищек", лайк тобі, та всілякого успіху. Дуже люблю твій канал. Як казав Е=мс^2нштейн, людина тоді розуміє питання, коли може пояснити його дитині простими словами. А твоїми словами, це не просто якесь там галіме розуміння - це вже мистецтво. Я, до речи, теж тепер знаю пітухон. Дякую!

  • @mrLukas-du4xd
    @mrLukas-du4xd 3 года назад +19

    Наконец-то Колян на сцене канала!

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

    Забавно узнать, что принцип драй это про недопустимость копипаста из одного проекта в другой(общие библиотеки от лукавого), и ни чуть не преследует цели менять бизнеслогику в 1 месте, а не по всему приложению искать возможные наведённые баги. И что домейн дривен дизайн с тест дривен дизайном это зло. Походу никакой я не программист. Пойду устроюсь на автомойку. Спасибо автор, что открыл глаза)

  • @georgeimedashvili5178
    @georgeimedashvili5178 3 года назад +12

    Мне кажется, DRY существует не для того, чтобы писать меньше кода, а чтобы потом можно было вносить правки в одном месте, вместо того чтобы сначала ИСКАТЬ все места, где нужно внести правки, а потом в каждое из них вносить эти правки.
    У меня у самого сейчас есть проект, в котором есть определенные типы объектов и модели, которые копируют друг друг во всех трёх компонентах, + в типах кое-где есть функционал, которого нету в других компонентах... И в общем-то, я вполне мог бы объяснить, почему так, а не иначе (ну или нет), но суть в том, что когда вносил недавно правки, добавляя дополнительные поля в таблицу в бд, мне пришлось поменять 6 классов вместо двух. Ну так это мой код, так что было просто, а если бы кто-то другой с ним работал, то он мог бы и не сразу понять, почему же алхимия выкидывает ошибку об отсутствии полей в бд, к примеру, ведь он же все поменял, что нужно 😅

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

      ты прав, а автор или тупит и ему стоило бы НЕРЕЧИТАТЬ профильные книжки, или специально ХАЙПИТ, и несёт околесицу.. там если по пунктам разобрать что он нагородил, то вопросов к его ТЭЗИСАМ тьма.. жаль что это смотрят неокрепшие умы.. и могут поверить ему.. ну если автор абстрактный уровень не различает и сравнивает KISS(вынос абстракции в атомарную единицу не ломает его уж точно) не пойми с чем.. мне страшно за будущее.. тут скорее подходит слово ПЕРЕУМНИЧАЛ...

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

      @@artursword3288 нууу, чё так резко, его видосы же процентов на 70 рофлы 🌚

  • @ivangordeev6356
    @ivangordeev6356 3 года назад +36

    Осталось решить, можно ли считать синглтон глобальной переменной или мирно разайдемся, плюнув друг другу на спину?)

    • @Rameronos
      @Rameronos 3 года назад +16

      Слово public там есть? Есть. Static есть? Есть. Ну вот и всё.

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

      @@Rameronos :D

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

      Дык вроде как синглтоны юзать не комильфо как раз из-за того, что по сути это глобальные переменные, не?

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

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

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

      @@ivangordeev6356 , а почему глобальная переменная должна быть обязательно примитивного типа? Это также может быть какой-нибудь сложный класс с нетривиальной реализацией

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

    Братан хорош! Давай контент! В кайф! Можно ещё?! Вообще красавчик!!!

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

    Люблю зайти на этот канал, черпнуть лопатой умных слов и пойти хвастаться в жизни.

  • @Skeleton597
    @Skeleton597 3 года назад +30

    Видос на 9,5 минут? Значит ли это, что следующий ролик будет совсем скоро, в августе?

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

    Отдуши посмеялся, но трек на фоне просто шикарный✨😄

  • @egos_ua
    @egos_ua 3 года назад +191

    люблю видосы, где у тебя бомбит. Как бы вдохновить на побольше таких? ко-ко-ко, ко-ко-ко, ты во всем не прав! (как смог)

    • @omaewamoushindeiru627
      @omaewamoushindeiru627 3 года назад +43

      Инкапсуляция это сокрытие

    • @nickmage123
      @nickmage123 3 года назад +13

      Ангуляр лучше реакта

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

      Пхахх))) Ты постарался от души))))

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

      Сахар не нужен и нужно все делать ручками и циклами. Алгоритмы же знать надо

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

      @@nickmage123 Джейквери лучше ангуляра, а html на самом деле язык программирования

  • @user-ed9dp3lo6g
    @user-ed9dp3lo6g 3 года назад +36

    Моргни, если тебя Слидан в заложниках держит

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

      их двоих дкржат в одном подвале

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

    Именно ваши ролики мне помогли понять ООП :)

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

    Наконец видео от того, который смешной. Спасибо!

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

    Мне понравилось конечно про сравнение глобальных переменных в js и flux
    но мазафака, сторы эти используются как правило в связке с нашими любимыми компонентыми фреймворками, а использование компонентного фреймворка автоматически избавляет тебя от необходимости плодить глобальные переменные специально или вообще задумываться о них, ну и кроме того flux как раз и позволяет избегать недостатков использования глобальных переменных.

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

    А мне нравится подача материала! Жду побольше обсуждения граблей, не хочу на твои наступать. Спасибо!

  • @MaChEtE-yn5cm
    @MaChEtE-yn5cm 3 года назад +45

    я программирую микроконтроллеры, что я здесь делаю ???? Много какой-то хуйни в этом вашем не МК программировании. Процедурное программирование - топ ! ко ко ко забыл сказать ;) Вроде ко ко ко- на языке программистов ПК это - абсолютно согласен ...

    • @gunnargunaxe
      @gunnargunaxe 3 года назад +6

      Я вообще в Quartus'e для Альтеры схемки рисую, но посидеть с попкорном посмотреть интересно на всю эту абстрактную возню)))

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

      Ахаххаахахахах

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

      @@gunnargunaxe, ранил, убил. Смехом!
      Ранил "MaChEtE 2015".

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

      А теперь обмажься MISRAC и попробуй тут вякнуть что глобальные переменные это хорошо))

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

    Наконец полноценный видос

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

    Ну в книге по паттернам, которую я читал, так и говорится, что паттерны увеличивают кол-во классов и могут усложнить код. Причем говорится это в книге много раз, чтобы думали прежде чем паттерны пихать куда непоподя

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

    Про Flux сначала были такие же мысли. Но с таким же успехом можно данные из базы назвать глобальными переменными

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

    1) Повторение код вредно, не тем что ты описал, а тем что при изменении в одном месте, придётся менять код во всех копиях, которые неизвестно где, не известно сколько их и вообще об их существовании не известно. Твой код с 3мя модулями, не понял в чём вообще проблема, есть 3 модуля и все они используют одинаковую зависимость, понадобилось что бы один из них использовал другую зависимость - пусть использует, каким образом это "укокошит" остальные модули?
    2) kiss вообще не имеет прямого отношения к практикам/подходам к программированию, этот принцип говорит, не создавать сложные системы, SOLID именно на это и нацелен. Дополнительный класс никак не делает систему сложной, не путай большую систему и сложную. Может быть здоровенный и простой проект, и может быть 100 строк обфусцированного кода.
    3) Можно пример, почему в ооп ты должен обезьяну с джунглями банану добавлять? Всё отличие от функционального программирования, что функции с одинаковыми конструкциями use можно объединить в одном классе, что позволяет прокинуть один класс с общим состоянием, а не кучу методов с неизвестно какими данными.
    4) глобальные переменные всегда зло - используй конфиг и не будет никаких проблем, легко можешь конфигурировать свой проект.
    5) "определенный паттерн для REST" вообще непонятно в чём суть проблемы, какой глобальный контекст? Передаётся http запрос.
    Если что, большинство фреймворков (по сути все) ничего общего с ООП не имеют.

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

    Вообще всегда понимил DRY как способ имплементации SRP. Когда одна фича описана в одном месте, её проще править, нет риска забыть, что поправил только 2 места из 3. Соотвтественно, идея про экономию времени выглядит странно. К тому же, DRY часто требует больше времени, чем копипаста, потому что надо же ещё подумать как его поабстрактнее сделать.

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

    Забеись. Чотко.
    Правда, половины я не понял, но мемасики сделали своё дело, и я ржал так, как будто в теме 🍄

  • @alexandermokryshev5397
    @alexandermokryshev5397 3 года назад +13

    Комрад, DRY нужен вовсе не для того чтобы "не делать двойную работу", писать отдельный код для каждой специфической ситуации гораздо проще и быстрее, чем заморачиваться с абстракциями и наследованием.
    DRY нужен для того, чтобы при внесении изменений, в больших проектах, не искать "вручную" все места, где ты применяешь логику, которая должна работать строго одинаково. Крайне неприятно, когда к тебе приходит бизнес и говорит, что ты сам не разбираешься в собственной системе.
    Точно так же и юнит-тесты, они нужны не для красоты, а для того, чтобы при изменении этих самых, общих абстрактных классов, моментально увидеть - какие конечные модули перестали работать так, как от них ожидают, чтобы не вычитывать это вручную в коде и не держать это в голове.
    Чтобы не возникало ощущение "двойных стандартов" и чтобы самому оставаться адекватным, надо перед применением любого устоявшегося подхода или паттерна думать - "какие конкретно риски заставляют меня это делать?". Если ты понимаешь свои риски, ты понимаешь - зачем тебе эта доп нагрузка, и в какой степени она тебе нужна.
    PS Я понимаю, что у тебя "стиль пАдонка" и ты отыгрываешь роль, но на самом деле правильная поставленная речь, манеры и позитивная коннотация звучат намного стильней, умнее и дороже:) Посмотри для примера канал - "Физика от Побединского", насколько этажей ниже он бы выглядел, если бы общался как ты?

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

      Об этом автор тактично умолчал :)))

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

      @@mykola_antal ну он не со зла:)

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

      Начал за здравие, кончил за упокой!

  • @trollol2563
    @trollol2563 3 года назад +20

    А интернет так и не скачался...

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

    Походу, я отстал от мемчиков, узнал только "Ярик, бачок потік"

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

    Есть огромная разница между глобальной переменной а-ля window.mystateobject и Flux. Например, в иммутабельности. А так в пример и базу данных можешь привести, она тоже доступна в любой момент. Проблема глобальных переменных не в том, что они доступны отовсюду, а в том, как они изменяются.

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

      Зачем эти недомолвки и полумеры! Проблема ЛЮБЫХ переменных в том, что они изменяются.

  • @stas_khavruk
    @stas_khavruk 3 года назад +7

    Наконец-то он нашёл рекламодателя для 10минутного видосика.

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

    Чёт я вспомнил хентыч "стрелочка не поворачивается"
    Да, за счёт того, что я часто ищу хент на рандом я получил абилку "знать хентыч на любой случай жизни"

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

    Я просматриваю этот видос ста тысячным))

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

    Это шедевр! Сам на поддержке сижу.

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

    АААААААААААА как всегда шикарный видос!

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

    Хотелось бы пример из видео, в котором нужно что-то поправить чтобы другом месте это работало немного по-другому, чем раньше. Не для себя, друг Тимур спрашивает :D

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

    Глобальные переменные это хорошо, удобно и главное быстро работает!
    Просто пишите на ассемблере и у вас не будет проблем.

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

    Красава. Не про видео, а вообще :)) Давай стартап мутить уже

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

    Половину слов не понял, но слушать прикольно)))

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

    кайфую от этих видосов ))

  • @edmm-11
    @edmm-11 3 года назад +1

    Ничего не понял, но очень интересно. Лайк за FlexAir )

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

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

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

      Да, натерпелся я однажды от таких ctrl+c, ctrl+v. Следующей задачей после данного действия прилетает задача где нужно внести изменения и в старый и в новый скопированный код. Ну да зато у нас сущности не появилось :D. И ладно если человек копипастер еще работает и случайно заглянул в ПР, что бы сказать где поправить. А то ведь бывает, что такие "ценные кадры" сваливают из компаний

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

    Проорал. Спасибо)

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

    Ряяя, годное видео! Жаль, что я ещё маслёнок, но что-то понял)

  • @TooStrongPlayerException
    @TooStrongPlayerException 3 года назад +15

    Лайк за профессора фортрана на 5:33 , олды помнят

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

      искал этот коммент

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

    Это Шедевр. Как всегда

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

    Дак в случае flux и middleware api есть одно явное отличие - эти "глобальные" переменные передаются аргументом функции, а не просто идет к ним обращение из кода. Ну и собственно и мутятся такие штуки спецом иммутабельными, чтобы фантомные баги не ловить.

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

    4:20 Знакомая ситуация, больно от таких правок становится, хотелось сделать как лучше, а получится: как всегда

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

    Про глобальный сторедж с языка сняли

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

    Шедевр, скидываю видео всем "архитекторам"

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

    Очень смешно, особенно заставка от реакт )

  • @belaz-666
    @belaz-666 3 года назад

    Мало что понял, но проорался знатно ))))

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

    Как хорошо, что на своей работе я весь код пишу сам без legacy)

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

    Чувак, если ты не пишешь тестов в своем коде, ты либо лупишь супер мега стартап, который возможно выкинешь через неделю и не собираешься поддерживать вообще, либо колупаешь сайты-визитки. По поводу того же Dry - копипаст разрешен, если он имеет другое семантическое значение в данном случае. Тогда нет смысла пытаться объединять разнородные, пусть и похожие операции в один метод, потому что смысл его совершенно другой в разных частях кода. И KISS ты тоже не понимаешь. Держать простым - это значит держать в соответствии с бизнес-логикой и бизнес-сущностями. Опять же, если у тебя есть похожие, но различные по своей семантике сущности, то их можно хоть миллион штук наплодить, и это не будет нарушением принципа KISS.

  • @smair518
    @smair518 3 года назад +6

    4:18 раньше лапшу на уши вешали а щас на костыли...

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

    Я сначала подумал что Добряк в кодинг подался.
    А это не Добряк :D

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

    4:48 А как насчёт сделать абстрактный класс в котором будет реализовано большее число методов а то что нужно изменить будет в другом классе который будет наследоваться от того абстрактного класса? Не знаю как в C# или Java, но на плюсах я именно так и делал и вроде было норм. Типа, и код не повторяется и все работает так как надо

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

    Ахахахаааа спасибо, проорал. Но, конечно, смотреть и воспринимать надо с осторожностью. Понимая кагбэ контекст.

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

    Это прямо браво👏

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

    Как всегда красиво, а чо флаттер моча? Собсно единственный вопрос

  • @user-mf3oc6mj5l
    @user-mf3oc6mj5l Год назад +1

    Про DRY и злополучную дупликацию кода принцип на самом деле простой. Разные сущности с точки зрения логики работы должны быть представлены разными элементами кода, даже если эти элементы кода совпадают на 99%. Если получится, можно совпадающие части вынести в отдельную утилитарную функцию/класс, но и за этим не стоит охотиться. А не наоборот, создавать одну сущность, параметризуемую разной логикой.
    Т.е. например, если тебе нужно работать с массивами строк (напр, список людей) и чисел (индексы или даты), и оба нужно сортировать, то у тебя должно быть 2 несвязанных класса со своим методом сортировки в каждом. А уже в этих методах можно какой-нибудь qsort вызывать. Как не надо: создавать один класс КСортируемыйСписок с подклассами для каждого вида списка.
    Мне самому эти идеологизированные кодеры уже изрядно поднадоели. Я обычно их советы просто игнорирую и делаю по-своему. Благо мне как сениору это позволяют.

  • @2009Spread
    @2009Spread 3 года назад

    годное описание рекламы!

  • @user-us6nr2xx9w
    @user-us6nr2xx9w 3 года назад +24

    БЛЯЯЯЯЯЯЯ. Какая подача! У меня очко порвалось уже от диаграммы спагетти-костыль))))) Просто, Бог!!! Ору)

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

    7:31 чуть сердце не остановилось, не пугай так, подумал кто в дверь стучит, снял наушники, проверил, вроде бы никого, опять смотрю видос, снова кто-то стучит. 🤣

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

    орнул со вступления без использования оператора опциональной последовательности)

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

    Ска, обеими руками за)) Чел жги дальше) Люто плюсую

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

    Сразу поставил лайк после речи до 50 секунды)

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

    Глобальные переменные, как по-моему, это не плохо. Главное их правильно использовать. Ну и не прикручивать их к какому-то сверхважному функционалу напрямую. Любой инструмент плох, если им не уметь пользоваться.

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

    4:09 DRY принцип скорее о КЛАССИЧЕСКОМ программировании а не о разделении клиент сервер, где особо грамотные маслята вместо выделения в функцию по сути ОДИНАКОВОГО КОДА его мажут толстым слоем по углам, потом такое саппортить невозможно, ибо нужно сперва весь код просмотреть, и в каждом углу сделать исправление.. так что Автор вводит в заблуждение .. уж лучше ЧИТАЙТЕ КНИГИ, а не по ютубчику учитесь)))) паттерны никогда не были прям БЭСТ ПРАКТИС, они скорее были набором наиболее распростроненных решений на наиболее часто возникающие задачи, и для УНИФИКАЦИИ решений решили их разъяснить, ведь когда ВСЕ кодеры в твоей ПАТИ говорят на одном языке и работать проще ...

  • @user-zp2nl5rb2g
    @user-zp2nl5rb2g 2 месяца назад

    07:05- недостатки глобальных переменных: ухудшают потокобезопасность, рискуют быть собранными в мусорку, становится причиной багов (потому что к ним есть доступ если любой части приложения).