Вся суть чистого кода

Поделиться
HTML-код
  • Опубликовано: 11 окт 2024
  • Курс по созданию простой игры: с нуля - HyperCasual от XYZ: bit.ly/3FZhBjF
    Промокод для получения скидки на курс: YOUEXTREME
    Почитал я значит, что вы считаете, что я запрещаю чистый код. Но как я могу запретить несуществующее? И после этого ещё меня просят выпить таблетки... Такое ощущение, что меня окружают какие-то безумцы.
    _____________________________________________________________
    💰 Бонусы за спонсорство
    www.youtube.co...
    🖤 Telegram: t.me/extremeco...
    💙 VK: extreme...
    🧡 Insta: / _extremecode
    💜 Discord: dscrd.in/extre...
    🤎 GitHub: github.com/ext...
    Лицензия Creative Commons Attribution 4.0 на использование трека Hyperfun (исполнитель: Kevin MacLeod): creativecommon...
    Источник: incompetech.com...
    Исполнитель: incompetech.com/

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

  • @ExtremeCode
    @ExtremeCode  2 года назад +12

    Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим
    🖤 t.me/extremecode

    • @ОООПетроСофт
      @ОООПетроСофт Год назад

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

    • @VeronikaBodnar
      @VeronikaBodnar Год назад

      В чем разница между чистым и нечистым кодом?.

    • @ОООПетроСофт
      @ОООПетроСофт Год назад

      @@VeronikaBodnar Оптимальный: самый короткий или самый быстрый

  • @svyatocheckjoe9820
    @svyatocheckjoe9820 3 года назад +554

    Здравствуйте, пишите код хорошо, а плохо не пишите.
    До свидания!

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

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

  • @pycz
    @pycz 3 года назад +714

    Ах, люблю чашечку "из крайности в крайность" по утру.

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

      а я люблю коленную чашечку

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

      @@artem1430 а вы ценитель высокого искусства

    • @ястреб-ц7ц
      @ястреб-ц7ц 3 года назад +8

      люблю ложную золотую середину и псевдокрайности на закусь

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

      @@ястреб-ц7ц точнее любишь теорию о "ложной золотой середины".

  • @jija5780
    @jija5780 3 года назад +944

    Чистый код - пустой файл
    Конфуций (2025-2029 )

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

      Вот да. Когда писал чистый код, всегда получал пустые файлы

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

      а если в метаданные говно попало?

    • @jija5780
      @jija5780 3 года назад +24

      @@YngvinLion вилкой до блеска отчистить

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

      нет, к нему тесты не написаны!

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

      @@oljjol тесты загрязняют код, поэтому их нетк

  • @lev.becker
    @lev.becker 3 года назад +999

    Все помнят статусы ошибок наизусть и замечательно понимают их из контекста!

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

      А почему у этого комента так много лайков?

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

      Когда над одним проектам работают 1+ команд или даже так, когда работают 1+ человек. То примерно через месяц не кто не помнит, ни коды ошибок, а из контекст может только больше запутать)

    • @lev.becker
      @lev.becker 3 года назад +10

      @@FreakyKot 1:36

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

      Ну конкретно сишники их реально помнят.
      Да и в C# есть методы сравнения, которые возвращают int отрицательный, положительный или 0. Почему не int'овый enum? А хуй знает, работаем с тем что есть.

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

      Ctrl + F

  • @rage3225
    @rage3225 3 года назад +587

    "А тем, кто считает, что гвозди можно забивать только молотками, желаю самого наилучшего" - и пошел забивать гвозди своей увесистой мясной битой

    • @НикитаБелоусов-о1з
      @НикитаБелоусов-о1з 3 года назад +27

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

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

      Я от орехи разбиваю рукой. Гораздо удобнее, чем бежать за молотком

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

      Интересно если написать ии для дебага то 1 что он сделает это удалит код?

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

      Rage32 решил блоху подковать?

    • @uglerod1337
      @uglerod1337 4 месяца назад

      ​@@shvetsov777в зависимости от его интеллекта. Если он будет достаточно умным то он в первую очередь удалит ту ошибку, что сидит перед монитором.

  • @stow1x
    @stow1x 3 года назад +415

    Гвозди можно забивать книгой по чистому коду.

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

      у меня в мягкой обложке((

    • @hedgehogsch.7270
      @hedgehogsch.7270 3 года назад +32

      @@TopToro так даже интереснее

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

      Каждый может забить молотком гвоздь, но не каждый может забить забить молоток гвоздём

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

      на гвозди можно забить и не забивать

  • @vladislav5693
    @vladislav5693 3 года назад +329

    Молоток создан для того, чтобы им забивать гвозди.
    Но это не значит, что гвозди можно забить только молотком.
    -- ExtremeCode, 2121 г. н. э. ...

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

      Напоминает название книги Адма Сэведжа ,,Любой инструмент это молоток,,

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

      @@anatemamorf2030 по фактам, я гвоздь телефоном забил

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

      Погоди, как это я отрубился на 100 лет, и почему за это время ничего не изменилось?

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

      и что не так с этим утвержденим?
      молотком можно еще стекла и головы вонокодерам бить. а гвозди при хорошей снаровке можно и голой рукой заколачивать. так что там все логично и верно.

    • @vataRF
      @vataRF Год назад +2

      да и молотком можно не только гвоздь забить.....

  • @НикитаРовнин
    @НикитаРовнин 3 года назад +82

    Что говорит автор:
    Что слышу я: тесты больше писать не нужно.

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

      Скорее: ИДИ БЫСТРО СТИРАТЬ ТЕСТЫ!!! И БОЛЬШЕ ТАК НЕ ДЕЛАЙ!!!

    • @СтаниславСидоров-ы6м
      @СтаниславСидоров-ы6м 19 дней назад

      Да не он скорее о том что многие тесты примитивны и избыточны и проверяют что 0 равен 0 а не о том что их не надо писать

  • @vitiok78
    @vitiok78 3 года назад +56

    Ведущий забыл упомянуть, что в Raid Shadow Legends очень чистый код

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

    фух, слава богу, а то я думал, что придётся все эти паттерны учить

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

      Паттерны сложная, но довольно познавательная штука, да не все пригодятся, но лишним будет

    • @hiryu70
      @hiryu70 3 года назад +24

      @@nomugop8017 "не пригодятся", "лишним не будет" 🤔🤔🤔

    • @360-sreet-view
      @360-sreet-view 3 года назад +17

      Учить придëтся, надо же ещё технические собеседования проходить

    • @ШуРик-д9ж
      @ШуРик-д9ж 3 года назад +3

      @@hiryu70 там "лишним будет"

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

      @@ШуРик-д9ж действительно 🤨

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

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

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

      А твой "пользователь", который использует твой сервис:
      если поведение кода начнёт расходиться с требуемым поведением, зафиксированным в тестах, то тесты упадут.
      Даст тебе такой же результат 1 в 1, что поведение не совпадает. Только ты не тратишь времени на создание тестов в данный момент.

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

      @@vladyslavhrehul2185 отличный подход, особенно если сбой в системе может привести к многомилионным потерям или человеческим смертям.

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

      @@vladyslavhrehul2185 ну и плюс ваш контраргумент вообще никак не опровергает мой аргумент о том, что юнит-тесты являются инструментом документирования. Вы о том, как ваша система должна работать, спрашиваете у её пользователей? Наверное, нет.

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

      @Михаил Чумаков Смысл юнит тестов понятен, он в том, что вы изложили, это да, логично, но должны ли они писаться наперёд, как гласит ТДД? И должны ли покрывать вообще весь код или только критические секции? Потому что на практике требуют количество тестов, а на их качество внимания практически не обращают

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

      ​@@chumakov_mikhail Насчет 1 - тесты не дают тебе 100% работоспособности системы, так как ты пишешь тесты, чтобы покрыть код, а не для того чтобы выявить уязвимость. Тк - ты не можешь предвидеть всего в силу человеческого мышления.
      2 - По Вашим словам вы не сможете\ не умеете разобраться в системе, где нету тестов?
      Также документация - это документ не только для программиста, но и для обычного человека, тот же самый клиент.
      Вы клиенту тесты вместо документации показываете?
      Btw, последнее место, куда бы я смотрел чтобы понять как работает система - это тесты.

  • @uneedeMain
    @uneedeMain 3 года назад +33

    Так так так видос однозначно запилин только для рекламы курсов по гемдеву 100% а мы на название повелись))

  • @Тати-х1й
    @Тати-х1й 3 года назад +100

    Чел проведи сначала интернет, а потом будешь нас учить, мы уже год смотрим на 17% загруженый npm

  • @zelenchuk.serhii
    @zelenchuk.serhii 3 года назад +256

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

    • @N5O1
      @N5O1 3 года назад +24

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

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

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

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

      @@stappa7 ты видимо либо плохо смотрел видео либо ты из тех упорртых, которые считают, что действительно нужно 100 покрытия. Зачем нужны тест? Для того, что видеть где у тебя неправильно написан код, если он у тебя неправильно написан, то он у тебя не будет работать в любом случае. А 100% покрытие кода тестами тебе не даёт никаких гарантий того, что в тебя все будет работать стабильно.

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

      @@stappa7 ЗЫ. Большая часть тестов нужна для тог, чтобы проверить правильные ли тебе приходят данные и какие данные ты передаешь дальше. Для того,что бы этим не гемороится ты можешь использовать статическую типизацию и писать свои интерфейсы и типы, а не заморачиваться с тестами

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

      %USER_NAME% Я из тех упоротых, которые в ответе на комментарий отвечают на комментарий, а не на видео. И да, ты не понимаешь, зачем нужны тесты, из-за этого и рассуждения такие. Когда начнешь понимать, тогда и полезность начнешь ценить.

  • @lookibed7704
    @lookibed7704 3 года назад +75

    Все понял, юнит тесты не нужны( ͡° ͜ʖ ͡°)

    • @АнтонЛогинов-ю7й
      @АнтонЛогинов-ю7й 3 года назад

      Хорошо потроллил)

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

      Они нужны ты что не хочешь развести заказчика на лишний код?
      Открываешь тест, и пишешь ассерты
      true==true, false==false, 8 это int и так далее
      А если работаешь с с/с++, то пишем
      #define true false

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

      @@Gameplayer55055 стоп а так можно чтоли было

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

    • @rarebrearer
      @rarebrearer 3 года назад +10

      аргументированное видео, как обычно лайк

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

      Как ты смеешь обижать мои любимые паттерны, мой PIDOR плачет в сторонке из-за тебя, как не стыдно?

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

      ВАУ, бобастикер

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

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

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

      🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬🔬

  • @pascal91_live
    @pascal91_live 2 года назад +9

    ""Месяц работы обойдётся в 7000 американских гривень" - спасибо. Поплакал.

    • @ДанилГончаренко-б6ш
      @ДанилГончаренко-б6ш 2 года назад

      галера отожмёт половину, всё ок

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

      @@ДанилГончаренко-б6ш "половину". Ха-ха-ха. Судя по историям (компании называть не буду) там далеко не половина.

    • @ДанилГончаренко-б6ш
      @ДанилГончаренко-б6ш 2 года назад +3

      @@pascal91_live ну это я приуменьшил, чтобы самому не заплакать

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

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

  • @takiekakmi7532
    @takiekakmi7532 3 года назад +37

    Как всегда - топчек👌 Пожалуй стоит начать обзывать экземпляры классов одинарными букавками в js))) ну, или просто кататься хлебалом по клаве при нейминге, ну а чё - Линукс же как-то написали🤷‍♂️

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

      Обфускатор помоему так и делает -____-

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

      @@anagr_ стань обфускатором

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

      Он потому и такое говно, что как то. Не хватает железной руки стандартизации. Кто-то сделал прогу, которая как то работает. О, давайте выложим её на репозиторий! А че пусть скачивают это недоделанное говно, оно же как то работает. Зачем заставлять человека доделывать программу до ума? Пусть все страдают, но не он. А нормальную программу сделаем когда нибудь потом (никогда)

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

      @@LLlblKAPHO я тебе секрет открою - почти весь софт так написан - из говна и палок... Даже банковские системы (российские) работают через жопу

    • @sm_sl57
      @sm_sl57 Год назад

      @@LLlblKAPHO Так линукс - один из самых быстроразвивающихся проектов, с высоченным коэффициентом багфиксинга. То есть несмотря на то, что разработка линукс нарушает вообще все стандарты разработки(там челы друг другу код буквально по почте кидают), они при этом каким-то образом по "бизнес-метрикам" он еб*т любую коммерческую дрисню, в которой мы все работаем

  • @I-PixALbI4-I
    @I-PixALbI4-I 3 года назад +7

    Бабки залутал, срач развёл, работу сделал.

  • @SensoHakai
    @SensoHakai 3 года назад +134

    Когда у тебя овердохера задач на работе, не до чистого кода. Работает, и то хорошо

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

      Главное потом заполировать видосиком про то что чистый код говно)

    • @anmaner4822
      @anmaner4822 3 года назад +24

      Удачи потом вносить новые фичи, в ваш зоопарк

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

      @@anmaner4822 А в чем проблема?

    • @anmaner4822
      @anmaner4822 3 года назад +18

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

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

      @@anmaner4822 ну так-то рефакторинг провести не проблема, я считаю. И потом уже фичи клепать

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

    Я согласен что мы должны договариваться среди комманды как писать код. То что внешний мир не понимает наш код - это не проблема, ты прав. Но скажем что средная продолжительность моего контракта в компании это 2 года. После меня сюда может прийти другой человек, который понятия не имеет как мы работали до этого. Ему скорее всего будет сложнее разобраться, если переменная называется "p" а не "configString".
    Я думаю что чистый код нужен для людей которые продолжат твою работу после тебя.

    • @Павел-ж8н1ь
      @Павел-ж8н1ь Год назад +1

      Некий единый стандарт, да.

    • @imyasuka
      @imyasuka Год назад +2

      Есть стандарт, но нет идеала, в этом вся идея

    • @UmbertoFellinni
      @UmbertoFellinni Год назад +2

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

    • @АндрейАнлавович
      @АндрейАнлавович 8 месяцев назад

      @@UmbertoFellinni +, к тому же если код часто повторяется, проще ошибиться, мало того если нужно будет что то изменить, придется изменять в нескольких местах

    • @whatyoumean1498
      @whatyoumean1498 4 месяца назад

      Да и даже буквально пару месяцев работы над параллельным проектом, ты станешь тем же новым Васей в своём старом проекте и на 10000% забудешь многое и тебе самому будет в разы быстрее вспомнить всё

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

    Для демонстрации чистого кода откроем репозиторий линуха.. Закрыть видео х)

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

      Так можно вызвать сотону.

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

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

    • @TishSerg
      @TishSerg 10 месяцев назад

      Но без гантели Марк уже не мог...

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

    Когда берёшь в руки молоток, все проблемы становятся похожи на гвоздь ;)

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

      С микроскопами та же фигня.

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

    все всегда пишут чистый код и понимают друг друга, а ты единственный в мире нет
    Живи с этим :3

  • @МаксимПазюк-э5в
    @МаксимПазюк-э5в 3 года назад +2

    Работал на одном продукте, в какой-то момент уж очень часто начали вылазить баги в стиле пнул по ноге, отпала жопа. В теории можно было бы получше изолировать модули друг от друга переписав часть кодовой базы, но уж больно накладно выходило по времени и трудозатратам. В этом случае интеграционные тесты + юнит тесты сработали на отлично.
    А про TDD, лично мне в начале карьеры этот подход помог разобраться с проектированием. Когда думаешь о том как ты хочешь реально использовать то что пишешь, а лишь потом пилишь имплементацию, это помогает писать гораздо более «чистый», понятный и приятный в пользовании код. Впрочем это и так приходит с опытом, просто TDD может ускорить этот процесс для новичков.
    В общем покрытие тестами для больших долгосрочных проектов скорее экономит силы и время всех участников процесса. Но как и всегда, это не догма, и может быть совсем не вашим случаем

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

    Сначало ему ДОРОГО писать код с тестами, а потом НЕ ДОРОГО забивать гвозди микроскопами.

    • @ДаниилЧикиш-о4н
      @ДаниилЧикиш-о4н 3 года назад

      Суть то в том что микроскоп у тебя уже есть, а молотка нет.

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

      @@ДаниилЧикиш-о4н суть в том, что когда забъешь гвозди микроскопом, то у тебя не будет микроскопа и такой себе молоток.

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

      @@ДаниилЧикиш-о4н у меня нет микроскопа.

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

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

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

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

  • @АртурЛюбимов-й1о
    @АртурЛюбимов-й1о 4 месяца назад +1

    Открыв книгу по середине ты не поймёшь кто это за персонажи и что за события тут происходят.
    Точно также открыв код проекта по середине, ты не поймёшь название переменных (считай что имена героев романа). И также не поймёшь многие функции (считай что события романа)

  • @maxym2414
    @maxym2414 3 года назад +47

    когда он уже создаст свой лучший проджект?

    • @zy2bas
      @zy2bas 3 года назад +24

      Сначала сделать npm install

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

    тесты - отличная документация для кода.
    тем более экономят время на проверку мердж реквеста, особенно если он от джуна.
    бывают и требования к 100% покрытию тестами, но это уже совсем другая история с поиском непокрытых строчек и истанбул игнорами тут и там.

  • @Nick-hq8of
    @Nick-hq8of 3 года назад +18

    Гвозди можно забивать ревьюэром

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

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

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

      Не волнуйся, это пройдет

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

      @@LotmineRu эх, знаю

    • @UmbertoFellinni
      @UmbertoFellinni Год назад

      да, спасибо быдлокодерам (говнокодерам) за их индусский код.

  • @СергейМизин-л3ъ
    @СергейМизин-л3ъ 3 года назад +7

    Про экспоненциальный рост стоимости исправления багов автор со своим примером слышал? Если слышал, то почему обойден вниманием данный момент?

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

      @@АлексейВикторович-б5ж далеко прошли на таком подходе? Реально интересно.

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

      @@TopToro самое смешное, что это работает)

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

      @@LotmineRu вот мне интересно на сколько это работает. Сколько это в ЗП, хотя бы приблизительно? У меня на прошлом месте работы, были такие программисты, которые писали настоящие, отборные спагетти=) При этом били себя в грудь со словами: "я 20 лет программист!". Про себя я думал: "емае, ты 20 лет, программист". Понимаете, не тимлид какой-нибудь, а моего же грейда программист. Как по мне не похоже на историю успеха=)

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

      @@АлексейВикторович-б5ж ну тоже резонно впринципи. Но все же в плане горизонтального роста, если сидеть и пописывать говнокод и не отсвечивать, чего реально удалось добиться?

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

    Классный троллинг всех и вся, хотя последние видео сводятся к одной фразе: серебряной пули не существует)

  • @anonsd5521
    @anonsd5521 Месяц назад +1

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

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

    Нет смысла писать хороший код. Все равно заказчик завтра передумает и пришлет таск переписать все по другому) Лучшее что можно сделать - держать код максимально простым, чтоб любой недоразраб, или ты сам в 2.00 ночи, мог понять что в нем происходит. Чем меньше в коде всяких абстракций и паттернов, тем лучше.

    • @ШивеГеоргий
      @ШивеГеоргий 3 года назад +1

      Чем быстрей ты освоишь слепую печать 10 пальцами - тем больше у тебя будут комментарии которые ты напишешь по ведению сердечка а не разума.

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

      @@ШивеГеоргий Нет потребности печатать с такой скоростью. Когда пишешь код, бОльшая часть времени уходит не на печать, а чтоб придумать, что именно печатать.

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

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

  • @evgenasd8892
    @evgenasd8892 7 месяцев назад

    Я нашел твое видео по запросу в ютубе, поэтому целенаправленно его просмотрев, хочу согласиться с наболевшим использованием tdd bdd and atdd, и еще в домешку паттерны и принципы, так вот понял что сроки разробтки улетают в космос, а поиск ошибки в коде доставил массу нервов. Так как задача была декомпозирована на кучк классов каждый со своими обязанностями, отдельно запросы отдельно команды, и дебаг превратился в мельтешение от метода к методу картина ваще

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

    Рот шатал этих патернов. За 8+ лет много раз перечитывал. так и не понадобелись до сих пор. Уже забыл их, не буду перечитывать

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

    Касательно микроскопа и гвоздя. Даже если микроскоп не задумывался в качестве молотка это не означает что его нельзя использовать для забивания гвоздя. Но нужно понимать в первую очередь время и место необходимости использования того или иного инструмента. Необходимость в обучении является одним из важных составляющих частей программирования. К примеру, завтра станет модно забивать гвозди, и как вы кому не доказывайти но вас будут не так охотно брать на новую работу если вы забываете гвозди микроскопом. А с другой стороны нужно понимать что если в вашем случае необходимо забить один определененый гвозд и не терять время то почему бы и не использовать микроскоп. Главное не выходить в крайности и понимать что опыт в новых инструментах вам всегда приготодится и также понимать что не нужно получать опыт ради опыта

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

    Сейчас бы рекламировать XYZ...Которые ещё летом раскрылись как разводилы

    • @Torbjorn-ph7rt
      @Torbjorn-ph7rt 3 года назад

      Ради справедливости отмечу что прокатились не по всем курсам а только по конкретному и он кстати был про программирование (для игр)

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

      А что там за история? Есть какое-то видео?

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

      @@neitralov739 я так понял там была такая схема:
      Ты платишь мне 100$ за каждый курс;
      А если заплатишь 600$, то получишь все курсы со скидкой, но поэтапно.
      В итоге люди платили 600$, получили один курс. Затем второй курс им пришлось уже ждать некоторое время. Затем третий курс опять ждать. Люди ждали и ждали... Люди уже писать начали: ну где там ваш курс?! А им отвечали: ща ща он ещё не готов полностью.
      В итоге людям так и не предоставили все курсы полностью. В итоге им продали несуществующие курсы.
      Вроде так всё получилось, если я правильно всё понял

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

      @@paztwelне звезди, если не знаешь. Они платили за один курс, и им по итогу дали только 2 лекции из 8, они ждали год и так остальные 6 лекции не получили

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

    Окей, я первый раз забайчен на комментарий, потому что подавать такое на серьёзных щах - это перебор.
    1) Код, который взят из репозитория Linux, нечитабельный, и не важно, кто его написал, хоть Линус, хоть дядя Вася из соседнего подъезда. EINVAL написана большими буквами, значит это глобальная переменная, остальные функции возвращают нули - в C это означает, что ошибок нет. Итог: код не читабельный, но не из-за возвращаемых значений, а из-за nameing'а переменных.
    2) Паттерны нужны, чтобы не придумывать велосипед, и их всего 21. SOLID и остальные принципы помогают мне в четких формулировках держать в голове набор правил, следуя которым я буду уверен, что мой код расширяем и я слежу за осями изменений. А значит через месяц мне не придется перелопачивать половину программы, чтобы добавить один маленький класс, который красит кнопочку.
    3) "Тест, полезен только когда он заваливается". При этом 10 секунд назад говорил, что TDD позволяет следить, чтобы ранее написанный код работал, то есть тесты завалятся в случае ошибки. Это такой бред, что мне кажется я на этот комментарий потратил больше времени, чем автор на написание всего сценария. 5:17 - 5:40 это просто бред сумасшедшего.
    4) Смотрите, TDD приучает ставить задачу, выполнять только поставленную задачу, и коммитить только выполненную задачу (и не больше). При таком подходе у вас будет 100% покрытие тестами, и это нужно, чтобы заметить ошибку при добавлении будущих фич, если они затронули старый код и случайно сломали его. Написание тестов после разработки фичи не так эффективно (об этом рассказывается в одной из лекций Боба, они есть в открытом доступе). Если у вас на проекте не достаточно времени на написание тестов, то используйте хотя бы подход с постановкой-выполнением-коммитом без написание теста и готовьтесь через пару месяцев ловить баги, которые вызвали новые модули программы, затрагивающие старый код. А SOLID и остальные принципы помогут вам меньше косячить.

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

      молодец

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

      Садись, пятерку получил

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

      Чел с плейлистом ЕГЭ по информатике обучает анскильных нубов как нужно программировать, ага, понятно

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

      @@lazydevelopment Ой, извини, человек, переходящий на личности, что я готовлю 11 классы к ЕГЭ и собираю хорошие материалы в плейлист на ЛИЧНОМ канале ¯\_(ツ)_/¯

  • @alenache1
    @alenache1 3 года назад +37

    краткое содержание последних роликов: тесты - говно, солид, драй, вообще все паттерны и парадигмы - говно, переходим на джс и натягиваем сову на прототипы

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

      На js перейдем только когда npm пакеты доинсталятся

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

    Extreme, когда будет сходка с фанатами? Мы тоже любители голандского штурвала в голубых плащах.

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

    >Тесты полезны только если они падают
    Ну ты выдал конечно, тесты полезны при разработке любого нового функционала, потому что они позволяют экономить огромное количество времени не заморачиваясь с проверкой своего кода. Написал фичу и запустил тесты, тесты прошли значит всё готово, тесты упали значи есть проблема. Без тестов после изменения какого-то нибудь глубокого класса внутри твоего многомодульного проекта ты должен будешь пойти руками тестить все модули чтобы убедиться, что всё работает, и даже потестив и потратив кучу времени на это всё равно шанс того, что ты сломал что-то, что не проверил гораздо больше чем шанс того, что это не покрыто тестами. Можно конечно жидко сказать что для этого достаточно интеграционных тестов, но желаю удачи в проекте на 500к строк после изменения файлика в kernel модуле идти дебажить какую-нибудь гуишку, которая зависит на этот kernel модуль через ещё 3 репозитория, потому что в ней кнопка стала рисоваться по-другому

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

      Как снять ролик такой же, как у ExtremeCode:
      1) Заходим в комменты
      2) Ищем те самые 3% людей, которые с тобой не согласны
      3) Преподносим их как даунов
      4) Говорим какой-то бред, обсирая всё подряд умным голосом
      5) В ролик 8 минут вставляем полторы минуты рекламы
      6) Делаем запись экрана консоли
      7) Хапаем просмотры на том, что "переиграл" тех, кого нет

    • @Torbjorn-ph7rt
      @Torbjorn-ph7rt 3 года назад

      Потому что наличие kernel модуля нарушает SOLID. Или я не прав?

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

      @@Torbjorn-ph7rt Во-первых причём тут solid если речь шла про полезность юнит тестов
      Во-вторых solid'y невозможно соответствовать или не соответствовать, это не инструкция и не набор чётких правил, это набор субъективных рекомендаций

    • @Torbjorn-ph7rt
      @Torbjorn-ph7rt 3 года назад

      @@tramfromgames3595 никто не сомневается в полезности юнит тестов, просто когда говорят что из-за изменения в одном модуле рушится всякая мелочёвка в другом модуле это означает что архитектура сильно связанная а наличие кернела настолько сильно влияющего на систему говорит о том что нарушен принцип открытости/закрытости, то есть теоретически вы НЕ должны модифицировать ядро если вам так необходимо его было сделать а только расширять с помощью дочерних модулей. То есть правильным решением в вашем случае сделать ядро вообще пустым и не модифицируемым. Но это разумеется теория, на практике всё это никогда до конца не соблюдается. А юнит тесты да не помешают даже при идеальной архитектуре. (ИМХО. Не настаиваю.)

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

    После этого видео я стал понимать, почему на фронтенде так много экскременто-кода: людям надо просто кнопочку поправить.

  • @ИльяИванов-ъ1л
    @ИльяИванов-ъ1л 3 года назад +30

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

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

      Это ты чего-то не понял, бомбежка была в адрес программистов, у которых в голове видение свое Чистого кода™, которое почти никогда не совпадает с видением Чистого кода™ других. И когда эти лбы сначала гыгыкают над "говнокодом" как в видосе, в процессе культурной беседы они уже кидают говном друг в друга, потому что легендарный Чистый код™ сука довольно абстрактный и как такового его нет.

    • @ИльяИванов-ъ1л
      @ИльяИванов-ъ1л 3 года назад +2

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

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

      ​@@ИльяИванов-ъ1л я не очень понял за что ты топишь. Типа если оформлять типовые документы не по стандартнам - они будут бесполезны, т.к. они нужны для уже существующего документооборота. Ок, но вы создаете один и тот же продукт много раз, а в программировании как бы совсем другая задача - продукт выпускается готовый к изменениям и разный под каждый заказ.
      Один и тот же результат может быть получен миллионом способов, а на стэкофервлоу решают как правило чисто технические вопросы, и выбирают максимально лаконичное решение. И не факт что оно соответствует вашим внутренним гайдлайнам.

    • @ИльяИванов-ъ1л
      @ИльяИванов-ъ1л 3 года назад

      @@fumanchez нет-нет, это только одна сторона монеты, сама концепция получения какого-либо результата подразумевает наличие только одного самого лучшего решения, как и пути к нему. Миллионы способов -, это подлог для недостаточно компетентного спеца, чем больше опыта, тем уже выбор вариантов(отсюда и проблема отсутсвия свежего взгляда у старичков, но не суть).
      Собственно говоря это и есть причина по которой все бомбят. Что сами прогеры, что их работодатели. Первые в этом варятся, а вторые не могут нормально оценить трудозатраты и з.п.
      Будь в вашей отрасли четкое понятие чистоты кода для каждой из степеней проработки проектов, это бы оздоровило индустрию в целом.
      Я писал о техкарте, если кратко, то это последовательность операций с различной степенью проработки в зааисимости от требований к проекту. Она может быть по госту, написаной на коленке, устная. А все таки неизменной будет ее структура и информативность.
      Например самолет членят по агрегатам: крыло, фюзеляж, киль и т.д. Всему присваивается аббревиатура и номер (как и вашим переменным), ты никогда не перепутаешь последовательность сборки, сами детали и к какой группе их отнести(сразу стыдно за тех, кто ноет на ловину ошибок из-за изменений в многоуровневом коде не так ли?).
      Да и сами ошибки в том же самолетостроении весьма забавное явление, ведь все вдоль и поперек ограничено предельными характеристиками(а кто-то ноет за десяток лишних тестов). Конечно, если ты кодер, тебе не надо лепить тесты ко всему что видишь, но тебе достаточно слепить самодостаточный блок кода который нахер не развалится от одного чиха, а будет информативным и легко расширяемым за счет хотя бы правильного наименования функций и переменных, наследования параметров(меняйте сраное название одной и той же переменной, если используете ее в разных блоках, придумайте переменные костыли для определенных задач). Да это хоть что-то. Кто-нибудь сделайте пост на форуме и научите программистов писать. Меня рвет от смеха, ведь сейчас большинство из них похожи на австралопитеков, которые рисуют по камню.
      Я когда взялся этому учиться, то у меня тупо руки опустились. Сама суть простая, но вариться во всем этом даже за хорошие деньги я не смогу.

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

      @@ИльяИванов-ъ1л есть функциональное программирование, где ты можешь пропустить объект через цепочку функций, которые (если они чистые) работают без вообще побочек. Но практика показывает, что на одних лишь чистых функциях ничего серьезного не напишешь, как минимум потому что есть еще и состояние, которое постоянно меняется и зависит от внешних факторов.
      Честно, претензии тупейшие - почему тогда разные компании делают разные самолеты? Почему они просто не могут взять и начать выпускать один самолет, как у всех?

  • @СергейК-б6н
    @СергейК-б6н Год назад

    Короче я как кандидат в маслята понял что автор хочет сказать что тесты не могут окончательно доказывать что программа сделана правильно

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

    Плохой код - хорошо
    Чистфй код - говно
    Реакция новичка: Шо за нахер?

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

    Самое смешное случается, когда встречаются TDD и Agile. Требования и юскейсы появляются частями и за частую противоречат тому, что уже сделано. Тесты переписываются на каждый модуль по 10 раз и за спринт команда успевает сделать объём, который в нормальных условиях делается за 2 дня. А ещё большая наркомания происходит, когда хотят юнит тесты на фронте, и не смоук тесты, а с покрытием в 60 или ещё веселее 80 процентов.

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

    Чистый код -это когда ты пишешь чистый код

  • @Korrmet
    @Korrmet 2 года назад +8

    Я не познал дзен ТДД, но хотя-бы с ним ознакомился. Самое первое, что нужно сделать по этой методологии - написать тест, который будет зафейлен из-за того, что ты не напейсал ещё толком никакого кода и тест должен отображать в принципе задание. В идеале тест пишешь не ты, а твой начальник или архитектор. И таким образом при помощи тдд от тебя получают банально то, чего хотят. Не спорю, что идеального кода нет, но солид, драй, паттерны - это не про чистый код. Во всяком случае не в моем понимании. Это про то, как команде не толкаться жопами на пятачке метр на метр и не допустить поведения из серии: я вчера ударил молотком по пальцу, но отвалился почему-то правый глаз, а нога сместилась на затылок.

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

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

  • @unknownuser5514
    @unknownuser5514 Год назад

    Чистый код у каждого свой. Для меня чистый код это:
    1. Модульность => возможность масштабирования.
    2. Реализация того, что надо, так, как хочу я, а не так, как хочет дядя Вася или мировое сообщество.
    3. Документация отдельно от кода, а не вместе. Терпеть не могу, когда документация расписана через комментарии в коде!

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

    существует ли хелловорлд, разработанный с использованием всех необходимых шаблонов проектирования, принципов и полностью покрытый тестами?

  • @Mr.Borowski
    @Mr.Borowski 3 года назад +1

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

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

    Почему у тебя в кадре все время создается приложение react через npx?

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

    90% гвоздей забиваю не молотком))) Вы ещё не знаете чем я саморезы кручу)

  • @exception05
    @exception05 Год назад

    Проблема в людях, но у нас есть молоток. Вот, что я понял из видео. Проблема только в том, что маньяк Пичушкин ещё сидит, а его рука хорошо помнит молоток.

  • @aliaksandr5145
    @aliaksandr5145 3 года назад +10

    Сразу видно опытного разработчика. Бальзам на душу.

  • @SEOdude-h5l
    @SEOdude-h5l 2 года назад

    Братан, хорош, давай еще записывай такие крутые видяшки.

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

    4:41 Объясните, пожалуйста, про Шевчука) Речь же про Александра из ITVDN?

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

      кажись тут отсылка к старой рок групе ДДТ с вокалистом Шевчуком - хотя хз хз может я слишком стар и теперь модные новые Шевчуки :)

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

      Нет, про Юрия Шевчука и его группу DDT.

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

      Понял, у меня, судя по всему, Шарп головного мозга.

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

    1. аутосорс
    2. обмазать монетизацией
    Добавил в свой масленковский словарик.

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

    У Uncle Bob есть на тему TDD заметка в его блоге с рекомендацией посмотреть Simple Made Easy.
    Если резюмировать, то тесты не должны заменять вам мышление.
    А на тему наброса на паттерны и все такое есть ответ там же в его блоге.
    P.S.
    Simple Hickey называется. Solid Relevance по второму.

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

      Анкл Боб уже много лет консультированием занимается, конечно у него будут ответы на любые набросы в адрес предлагаемых им подходов

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

    Ого, я думал у меня г..код, а тут по сравнению с линуксом у меня ванильное мороженко

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

    я не совсем согласен, что паттерны не нужны так же как и солид. Согласен, что это больше зависит от команды, где сильная команда, где слабая команда. Слабой команды может это и не чего и не нужно и проталкивать туда это тоже не нужно. Команда малу по малу развивается и сама до этого дойдет. Сильная команда будет это все использовать, потому, что они знают как. Но и перебарщивать не нужно, так как в долгой перспективе это только вредит, загоняем в узкие рамки. Но большинство ботовых задач они решают на ура. Паттерны это больше язык между програмистами. Что бы можно было понять друг друга, без труда, что он там написал и для чего. Упрощает жизнь.

  • @ВитекНелогов
    @ВитекНелогов 2 года назад

    Как будто если ты откроешь книгу посреди сюжета ты дохрена поймёшь

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

    7:51 вот это каминг-аут! 👍

  • @Неизвестныйкрокодил

    Какой договор, если один старый мужик просто сказал:"ну вот смотрите, так надо делать, мы договорились"?

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

    Все эти классные паттерны и подходы являются формой общественного договора среди бескрайнего сообщества программистов.

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

    Extreme code: говорит про floppy bird
    Видео на фоне: 4к 120фпс террабайтные модельки

  • @ВладимирВоробьев-е6о
    @ВладимирВоробьев-е6о 3 года назад +2

    "А там (в репозитории) монолитные микросервисы" (с)

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

    Есть же ещё его величество - маркетинг, и если клиент заплатил за 10 микроскопов, то ты с такими рацпредложениями про молотки будешь либо уволен, либо будешь юзать микроскопы, как миленький =)

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

    Линус выучил русский в Питере на хокее

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

    Если честно, то для человека который написал на C хотя бы свой баш, всё это выглядит действительно очень читаемо.

    • @KMiNT21
      @KMiNT21 Год назад

      Конечно. Все очень хорошо читается, хотя суть не улавливается. Но это и понятно в конексте исходников Linux. Видно все проверки начала строки, но что делает memparse - хз. Да еще и указатель 'p' она каждый раз изменяет хз куда. Так что, нужно ковыряться дальше внутри по этому спагетти, чтобы что-то понять по сути, а не по синтаксису. :)

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

    Запомните, чем больше тестов тем больше тестов ☝️

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

    Это шедевр! Когда реклама обрамляется видео, якобы несущие смысл...
    Это же гениально!!! Так победим этих чертовых инфоциган! Каждый ютубер пилит видосы по 5 минут где 4.59 минут рекламы.
    Пусть бюджеты горят как сентябрь в 2007!

    • @МаксимБетехтин-х6у
      @МаксимБетехтин-х6у 3 года назад

      Простите но не 4.59 минут, а 4.99 минут. А то это издевательство над пользователями JS и Питухона.

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

    в какой-то момент показалось, что это говорит не автор, а мой собственный внутренний голос

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

    Я видел человека, который дабы "защитить" свой всем "нужный" код решил кодировать переменные в двоичную систему исчисления. И это он называл самым защищённым в мире кодом, и глубоко не понимал, почему сотрудники Microsoft не используют его методы (・o・)

    • @RomanShevtsov-pr6go
      @RomanShevtsov-pr6go 3 года назад

      Кодировал названия, что ли?)

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

      @@RomanShevtsov-pr6go да)

    • @bookuha
      @bookuha 9 месяцев назад

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

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

    Гвозди кстати можно забивать разными способами) многие из которых даже не понять

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

    Усвоил (нет) для себя одно правило, если видишь что надо сделать нормально - делай нормально сразу, никаких ТУДУ, "потом отрефакторю" и "мне тут все понятно и так".

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

    Под каждую задачу придуман свой максимально приспособленный под неё инструмент.

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

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

  • @vladampleev3440
    @vladampleev3440 3 года назад +11

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

    • @АнтонДудкевич
      @АнтонДудкевич 3 года назад +1

      Дада. Причем правят миллион багов они за такими скоростными мудаками без тестов и коментов )

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

      @@АнтонДудкевич ну кто-то по итогу свои проекты заканчивает за 3 года, а кто-то за 5 не может закончить.

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

    Курсы гиперказуалок.. Пацаны, Сакутин будет недоволен :)

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

    Судя по всему автор живет в мире ненадежных, но быстрых в разработке мвп, а не серьёзного продакшена

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

      Чат ботики его стек

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

    Некоторые правила чистого когда нарушаются в методичках, которые утверждены стандартом (пример - Керниган, си). Там функция делает ретёрн больше одного раза. И что делать?

    • @princessmary5556
      @princessmary5556 Год назад

      Вы точно понимаете, что означает термин "стандарт" применительно к ЯП ?

    • @kasergus2446
      @kasergus2446 Год назад

      @@princessmary5556 Ну, ты меня, если честно, разуверил :3

  • @zezapan
    @zezapan 6 месяцев назад

    Если число пользователей API достаточно велико, то неважно, что вы обещаете в контракте : любое наблюдаемое поведение системы будет зависить от чьих-то действий -- Закон Хайрамаа

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

    я почуствовал спокойствие

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

    Основная проблема при забивании гвоздей микроскопом заключается в том, что при этом микроскоп необратимо меняет свою функцию на молоток

    • @Torbjorn-ph7rt
      @Torbjorn-ph7rt 3 года назад

      Но факт остаётся фактом - можно, утверждение верное.

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

    А node_modules уже скачался?

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

    ну да, леликс наговнакоден, с открытием тебя

  • @АртурБоровой-е9с

    Посмотрел и чувствуешь себя хорошо ))

  • @9ikopb
    @9ikopb 3 года назад +2

    В TDD заваливается тест для любого изменяемого кода, это часть флоу

    • @Torbjorn-ph7rt
      @Torbjorn-ph7rt 3 года назад

      Это крайность, "для любого добавляемого кода" это разумный компромисс

    • @9ikopb
      @9ikopb 3 года назад

      @@Torbjorn-ph7rt тдд не работает, если ты запускаешь тест после внесения изменений в тест, а он проходит.

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

    Чистый код бывает, но пишут его ювелиры из мира программирования

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

      То есть адекватные люди

  • @ТимурМуратов-ж7ж
    @ТимурМуратов-ж7ж 2 года назад

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

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

    Так-то я согласен. Но есть одно но.Вот допустим я пришел с похмелья, задача - срочная, сроки горят. Я ее сделал. Так вот. Без тестов я уже через 3 месяца не буду помнить что я вообще делал, как оно работает и вообще.
    Ну, допустим, из ИРЛ стори.Не с похмелья, но суть. Нужно было быстро написать компилятор модулей для одной системы сбора данных. Так вот, в тот момент я забил на тесты. По диагонали глянул спки и пошел фигачить. В итоге, все работает, офигенно норм. Через полгода нужно расширить. И я в душе не чаю, как оно блин работает, что произойдет если что-то изменить и т.д. Проще было прийти и переписать, благо там всего 5к строк кода, которые писались под 5 банками энергетика, чтобы успеть пойти с друганами в каточку покатать. И это, к сожалению - не такая из редкая ситуация лично по моему опыту кодинга. Конвенции это хорошо, но когда коммуникация происходит раз в полгода - все там давно либо забили на эти конвенции, либо оказывается что их как-то иначе воспринимают.
    Ну и, да, 0 как норм - это как-бы совсем уж стандарт-стандарт, который ну совсем уж не шарящий не поймет. Странно было к нему цепляться.