Что такое говнокод? Тот, что не работает?

Поделиться
HTML-код
  • Опубликовано: 19 дек 2024

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

  • @Velo-Bomzh
    @Velo-Bomzh 5 лет назад +298

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

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад +22

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

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

      @Олег Сухетский меньше бы таких как вы)) простое делаете сложным

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

      А третий всё время повторял WTF

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

      @@TheGloriousRussian *А третий с тех пор непрерывно повторяет WTF.

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

      Вполне тянет на статью "доведение до самоубийства", аккуратнее 😁

  • @eugenedukatta9355
    @eugenedukatta9355 5 лет назад +423

    Почему в очень многих резюме есть ГОВНОтребование: "Умение понимать чужой код" ??? Но я ни разу!!! не встречал требование "Уметь писать код так, чтобы его понимали другие" ?

    • @АндронныйКоллайдер-ф5щ
      @АндронныйКоллайдер-ф5щ 5 лет назад +15

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

    • @damirgarifullin6877
      @damirgarifullin6877 5 лет назад +11

      У JetBrains есть в вакансии такое: "Умеешь проектировать и писать код, который легко читать и поддерживать."

    • @ivansidorov5
      @ivansidorov5 5 лет назад +10

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

    • @damirgarifullin6877
      @damirgarifullin6877 5 лет назад

      @@ivansidorov5 в jetbrains?

    • @ivansidorov5
      @ivansidorov5 5 лет назад +8

      @@damirgarifullin6877 Да в любое место , где пишут что нужно умение читать чужой код. Любйо человек умеет читать чужой код, но этим собщением они готовят к говнокоду, потому что какой-то умный начальник до тебя нанимал чухана за 10 000 рублей и он там наговнокодил, если бы изначально наняли норм программиста за 250 000 рублей то говна бы и не было в проекте

  • @purplep3466
    @purplep3466 5 лет назад +192

    Согласен с автором, но все же, иногда нужно насрать, чтобы вырос цветок

    • @Сергей-к3у7е
      @Сергей-к3у7е 5 лет назад +23

      Ты сделал мой день ))

    • @СергейКолобаев-л4ь
      @СергейКолобаев-л4ь 4 года назад +1

      Это ты про удобрение?))))

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад +19

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

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

      По этому в Пайтоне срать нужно очень акуратно, а в СосиДваПлюса или Джузи можно одной длинной

  • @vasilymaestrovs9546
    @vasilymaestrovs9546 5 лет назад +278

    Вчера я делал ревизию своего первого андроид-проекта. Который писал еще в 15-16м году. И я понял, что такое говнокод ))

    • @inbuckswetrust7357
      @inbuckswetrust7357 5 лет назад +47

      теперешний лет через 5 посмотришь ;)

    • @MrSumkinFedor
      @MrSumkinFedor 5 лет назад +26

      Радуйтесь - ведь это значит, что вы выросли в профессиональном плане.

    • @artyomb7424
      @artyomb7424 5 лет назад +28

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

    • @liamsmith7052
      @liamsmith7052 4 года назад

      Я свой первый андроид-проект переписывал 3 или 4 раза. Там просторов для косяков уйма, это да.

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад +9

      Я могу сделать ревизию своего кода, который писал для себя 20 лет назад, и сделать вывод, что это не говнокод, хотя его можно было бы спроектировать лучше (сейчас я это понимаю чуть лучше), и я этот код всё еще понимаю. Но также понимаю, что его больше никто не поймёт, так как он содержит алгоритмы, чьё описание в книге я перечитывал несколько раз, чтобы начать понимать их. А понять эти же алгоритмы глядя в код просто невозможно - тяжёлая математика. И то что этот код никто не поймёт при любом способе написания и стиля - гарантированно. Но всё равно это не говнокод, а некоторое отсутствие документации, квалификации читающего, и т.п.
      Если бы я читал чьи-то алгоритмы из области генетики, то я бы также вряд ли что-то понял, но не потому что передо мной говнокод. Так что понятие говнокода относительно, и не определяется количеством WTF, а скорее временем и усилиями, которые читатель хочет потратить на изучение кода. Не хочет - говорит постоянно WTF, и объявляет всё говнокодом. Совершенно не корректный критерий.

  • @dimapetrashchuk3036
    @dimapetrashchuk3036 5 лет назад +150

    Говнокод это не только плохой кодСтайл или нечитаемый код, а и вполне красивые и читаемые костыли)

    • @webget1596
      @webget1596 5 лет назад +19

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

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +19

      да, безусловно. Но это по правилу Паретто

    • @andrewvsk2368
      @andrewvsk2368 5 лет назад +3

      То есть почти все паттерны проектирования xD. Модели событий, делегаты и прочие модные фишки). События в Сишном стиле более прямолинейны, зато любой поймёт код. В C# в достаточно сложной программе запрос идёт через дохрена интерфейсов и эвентов, но это называется разумным кодом. Любой open source проект на C читается вообще без проблем.

    • @maxlich9139
      @maxlich9139 5 лет назад +2

      @@webget1596 не мы такие, жизнь такая)))

    • @KoCMoHaBT61
      @KoCMoHaBT61 5 лет назад +7

      @@andrewvsk2368 Вот прямо 146% попадание. Наплодила банда четырёх "жабапрограммистов со знанием паттернов", теперь для того, чтобы два числа сложить они пишут фактори, делегаты, эвенты... А ещё где-то есть тайная книжка, которое плодит программистов однострочных функций: Read->ReadNumber->ReadNumberFromFile->ReadNumberFromTextFile->ReadNumberFromUTFEncodedTextFile.

  • @man-jj7rc
    @man-jj7rc 5 лет назад +172

    После просмотра 20 роликов Немчинского стал senior Java developer, Очень годно.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +27

      серьезно? :)

    • @ni55an
      @ni55an 5 лет назад +43

      А коллеги и руководство в курсе? 😃

    • @cupon8869
      @cupon8869 5 лет назад +7

      лох, я президентом стал уже после 8го ролика

    • @Dmittry
      @Dmittry 5 лет назад +17

      Я после 5-го ролика познал дзен и ушёл в тибетский монастырь.

    • @Max-kr4ie
      @Max-kr4ie 5 лет назад +35

      Я после первого ролика посмотрел второй. А чего добился ты ?

  • @tsoier
    @tsoier 5 лет назад +122

    x -= -1

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +38

      вот именно :) Даже я завис секунд на 5. Не надо так :)

    • @ЮрийКарпов-э3ч
      @ЮрийКарпов-э3ч 5 лет назад +23

      Ништяк. Буду теперь так инкрементить)

    • @VIlyaM108
      @VIlyaM108 5 лет назад +2

      Это, типа, лайк поставил?

    • @SlavikUkraine
      @SlavikUkraine 5 лет назад +6

      @User 1 это операция прибавления единицы к переменной х, только замысловатым и нецелесообразным способом( иначе говоря, через задницу) .

    • @SlavikUkraine
      @SlavikUkraine 5 лет назад +11

      @User 1 Ты , походу , не понял мой предыдущий комментарий , как и то , что должен был делать тот код. "Х -= -1" это равносильно тому, если бы ты написал x = x - (-1) т.е. по правилам математики х+1. Оператор -= это аналог X=X -... . Ты же написал про какую-то ерунду , к тому же в левой части у тебя должна стоять переменная. Т.е. Х . Никаких -Х , 2Х и т.д. + ко всему этому , ты пишешь почему не -х= -1. Да потому что в первом случае мы отнимаем минус единицу( прибавляем единицу), а твоя запись ( по крайней мере, так подразумевалось) делает Х постоянно равной 1

  • @1981leks
    @1981leks 5 лет назад +111

    Любой чужой код говнокод.
    И даже свой код годичной давности и дальше тоже говнокод.

    • @mmospanenko
      @mmospanenko 5 лет назад

      Годичной?) Возможно на джавах, но вот в чем-то более живом это в неделях и днях может измеряться) я часто ловлю себя на мысли что перед тем как ругаться лучше сразу посмотреть в гит блейм - там часто я, и не всегда несколько лет давности))

    • @andrewvsk2368
      @andrewvsk2368 5 лет назад +8

      Не всегда и сильно зависит от языка. Например, на чистом C если не выделываться и работать с умом получается код на века. При этом любой проект на Java (который согласно пиар-компании должен упрощать код) превращается в дерьмо очень-очень быстро. Причём ООПшники порой полные неадекваты, задачи, которые решаются в 500 строк кода в одном файле они решают создавая дохрена классов и интерфейсов, реализуют паттерны (смысл которых чаще НЕ понимают, чем наоборот) и получается тормознутый монстр с массой потенциальных семантических ошибок). Это "добро пожаловать в реальный мир", на словах все идеально, на практике сами языки чаще способствуют порождению ПО из натурального дерьма.

    • @eduardczuwak8394
      @eduardczuwak8394 5 лет назад

      Seregi? ja seregi kod ludshe dazhe ne verstaju...zabyl, napisal na novo..poreshaesh srazu kuchu zadacz.

    • @KlinovAS
      @KlinovAS 4 года назад +1

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

  • @alexsandrosipenko2182
    @alexsandrosipenko2182 5 лет назад +17

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

  • @СвятойМармеладник
    @СвятойМармеладник 5 лет назад +14

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

  • @lynx6511
    @lynx6511 5 лет назад +23

    Помнится, надо мне было внести изменения в код дипломной работы на C++/Qt, которую писал весной прошлого года. Первые часа два я не мог понять, что там происходит и под чем я был, когда писал этот код.
    Изучение джавы дало неплохой толчок по ООП и вообще, как всё должно быть. Теперь я пишу говнокод, но уже не настолько дурно пахнущий. :)

  • @serggio88888
    @serggio88888 5 лет назад +9

    ну как же приятно Серея слушать)

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

    Я сейчас читаю книгу Элеонор Остром "Управление общим". Там описана интересная проблема, при которой все вроде и понимают, что нужно "делать правильно" и так будет "лучше для всех" в конечном итоге. Но никто не делает, поскольку "будет лучше" только в том случае если так будут делать все. А если не все, то больше всех пострадает тот, кто все же делает правильно.
    И мне кажется, что в вопросе "говнокода", который все осуждают и все равно пишут, эта идея тоже много объясняет. Чтобы написать код "понятный для других" зачастую нужно банально больше времени уделить его архитектуре, доводке, даже названия переменных возможно подберешь не с первого раза. Это лишняя работа и лишнее время. Которое сохранит время того программиста, который будет саппортить код после тебя. А оно ТЕБЕ надо? Особенно если учесть, что времени всегда не хватает и все такое, ведь начальную версию продукта нужно выпустить как можно быстрее. Это уже потом, когда продукт начал приносить прибыль, можно на эту прибыль жить и не спеша вылизывать код.
    Вот и получается, что ВСЕГДА проект пишется на говнокоде. А уже потом, возможно, будет поставлена задача привести код в порядок. Когда уже "все работает" и есть время перевести дух. Задачу эту возможно будешь ты и решать (хотя ты от своего говнокода страдаешь меньше и понимаешь его лучше), а возможно, ее будет решать уже кто-то другой.

  • @RUS4HELP
    @RUS4HELP 5 лет назад +17

    Вы самый топовый ментор! И умный и с чувством юмора!

  • @WolfzPain
    @WolfzPain 5 лет назад +3

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

  • @МойПК-и6э
    @МойПК-и6э 5 лет назад +10

    Когда вы смотрите на свой старый говнокод, вы понимаете, что растете. Да, согласен. НО понятие "говнокод" работает также в режиме реверса: когда вы (например новичок) смотрите на чужой более продвинутый код - он также кажется вам говнокодом. Или, иными словами, если вы могли бы посмотреть на свой код В БУДУЩЕМ - он также показался бы вам говнокодом. Философия. Всё течет, всё меняется, а на самом деле все изменения - лишь иллюзия, всё неизменно от говна к говну...

  • @Mike-hp3fh
    @Mike-hp3fh 5 лет назад +1

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

  • @Konstantin_Terletskiy
    @Konstantin_Terletskiy 5 лет назад +4

    Во-во. Очень знакомое ощущение. Смотришь свой же код двух-трёхмесячной давности и думаешь иной раз, что да, сейчас я уже так не написал бы. И да, в программировании развиваться надо непрерывно. А то как получается, первые свои программы я писал, помню, для персоналки Hewlett-Packard 85 ещё в 1982 году. Там ещё операционки не было даже, просто Бейсик-монитор встроенный. И всё. А потом МИФИ, студент факультета Кибернетики. А там у нас вообще к старшим курсам было так - ну чего? Новый язык изучить? Паскаль у нас там не читали, Си не читали, сами брали книжку и изучали. Потом C++, потом уже в Штатах фирма послала всех своих программистов на недельные курсы основ Явы. Основы дали, дальше опять сами. И сейчас всё сами. А так что, на уровне 1982 года застрять, что ли? Нет, программирование и хорошо именно тем, что постоянно требуется развитие. Застрял - всё. Специфика профессии.

  • @Mr43046721
    @Mr43046721 5 лет назад +6

    Большое спасибо за видео. Мотивируете писать код вместо просмотра котиков на работе)))

  • @АлексейМеньшиков-э5ж

    Серега - ты отличный ментор)))

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      скорее все-таки блогер :) Ментор я так себе

  • @akiloci2198
    @akiloci2198 5 лет назад +6

    08:50 а если Вы видеоблогер, и не развиваетесь, меняйте профессию)) Это я к тому, что поначалу критиковал ваши видео, но теперь они мне нравятся всё больше и больше))

  • @zena2405
    @zena2405 4 года назад

    Помню еще в школе, в мохнатых 80-90 гг, я заметил, что бейсик на корветах нормально запускает программы без пробелов.. Пишешь чтото типа: fori=2toa

  • @bubendancer7210
    @bubendancer7210 5 лет назад +2

    Зависит ли ЗП программиста и возможность его трудоустройства от возраста. Есть мнение, что возраст за 40 для программиста в странах СНГ уменьшает шансы рассмотрения его кандидатуры на вакансию и уменьшает уровень ЗП даже при наличии у него большего опыта. Так ли это?

  • @AyzekUorren
    @AyzekUorren 4 года назад

    Попробуйте один метод, никогда не говорить про себя что код плохой ( даже когда это не так ), никогда не говорить что задача сложная и всегда искать замены слову сложная на немного трудная, смотрите потом на результаты, часто за многими замечаю, как преувеличивают проблемы и слишком долго их обсуждают, вместо того что бы решить.
    Если вернуться к коду, все очень просто, читаете TDD,
    1. Пишите тесты
    2. Пишите код
    3. Запускаете тесты
    4. Удачно поздравляю конец, нет, повторить 2 - 3 пункт до успеха.
    Тоже самое при рефакторинге. Любой такой код не будет страшен, когда он протестирован, а без тестов, вы можете сделать даже хуже.

  • @xrollup
    @xrollup 5 лет назад +22

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

    • @soversus5374
      @soversus5374 5 лет назад +4

      а что делать... языки совершенствуются и чаще в лучшую сторону.
      Так что это скорее плюс...

    • @МайкЛжец-ь6ж
      @МайкЛжец-ь6ж 5 лет назад +1

      в основном в вебе и геймдеве, в остальных сферах все более-менее спокойно.

    • @vargvarg7922
      @vargvarg7922 4 года назад

      @@МайкЛжец-ь6ж как жсер скажу, что нифига подобного, хрен бы сним что либы и фреймы совершенствуются постоянно, сам жс в 2015 году выкатил ес6, который неплохо так поменял подход

  • @Dmittry
    @Dmittry 5 лет назад +19

    У меня не говнокод! У меня обфускация!
    (Главное - правильный маркетинг.)

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +3

      ахахаха

    • @andrewvsk2368
      @andrewvsk2368 5 лет назад +2

      Любой проект на C# или Java - это обфускация). Никто даже о декомпиляции не парится никогда, т.к. читать этот говнокод - неблагодарное дело. Это по определению write-only. Это одна из причин, почему чистый C до сих пор жив и жив будет и почему даже современные либы пишут именно на C. В защиту C# (на Java не пишу, но та же фигня) - быстрота и удобство на первых порах. То есть очень круто прототипировать приложения, которые почти сразу будут работать, т.к. дофига инструментов доступны из коробки и чаще работают, чем нет), но поддерживать код на C# - это ХУЖЕ, чем поддержка бородатого сишного кода стандарта с89 c *бнутыми структурами данных и стилем.

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад

      Dijkstra программирование - это программирование с использованием имён переменных d, i, j, k, s, t, r, a.

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

    Недели 2 назад начал изучать пайтон, писал простые коды по заданиям по курсам.. прошёл пару теорий, заданий.. решил закрепить материал и вернулся назад и заметил свои старые коды написанные в 5-10 строк и просто переписал их на более понятный лад и в 2-3 строки.

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

      как успехи в обучении?

  • @iSonsaku
    @iSonsaku 5 лет назад +1

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

  • @DK-fg8sl
    @DK-fg8sl 5 лет назад +1

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

  • @lichlichi
    @lichlichi 5 лет назад

    Спасибо вам, Сергей)

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

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

  • @ИгорьГорбунов-ю9ж
    @ИгорьГорбунов-ю9ж 5 лет назад

    Благодарю за видео.

  • @ni55an
    @ni55an 5 лет назад +3

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

    • @SecretYouTubeAgent
      @SecretYouTubeAgent 5 лет назад

      Согласен. Код он словно книга или небольшой рассказ. Иногда читаешь, и хочется воскликнуть "ай, как славно написано!"

    • @natty55555
      @natty55555 5 лет назад

      Абсолютно согласен. Только некоторые критические участки приходится оптимизировать (по скорости) и тогда ясность страдает, но обычно стараешся комперсировать комментариями

  • @Лучшеникакогознаниячемникакое

    К сожалению, существует способ сделать очень понятный код, но тем не менее WTF будет раздаваться при его чтении постоянно.
    Сделать код слишком длинным. То есть никакой универсальности, минимум абстракций - все вопросы решать тупо лоб и делать очень много копипасты.
    Такой код поймет даже школьник. Но почти любой программист оказавшись где-нибудь на 4056-й его строке, будет материться сильнее, чем от любой сложности говнокода.
    У меня сейчас как раз такая задача. Через неделю уже сдавать проект, а его явно писали дети. Сижу и часами читаю сочинения "как я провел лето". Это ужасно.

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

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

    • @Лучшеникакогознаниячемникакое
      @Лучшеникакогознаниячемникакое 2 года назад

      @@alexperemey6046
      Когда он занимает тысячи строк? А бывает и больше - я видел 16К только на форме. Оченама сложный там у этой формы интерфейс, видимо. Что в этом прекрасного-то? Я не нанимался днями и неделями читать детские каракули. )))
      Сложная задача требует сложной структуры абстракций. А когда кодеры в такое не могут - они и начинают гнать строку. Решая задачу в лоб - то есть по принципу, "что вижу, то пою". Куча тупорылых циклов и условий в общем. Скопипасченных много раз с небольшими изменениями для разных вводных. Огромная, почти бесконечная куча - уснешь на первой трети уже. И иногда у них это, к сожалению, даже работает.

  • @TedRed
    @TedRed 5 лет назад +1

    Здравствуйте! Есть вопрос к вам
    Как лучше писать код:
    1) максимально подробно и понятно каждому (но код будет длинным)
    2) максимально кратко и эффективно (код будет коротким, но порой непонятным с первого взгляда)
    Или все же какой-то баланс держать лучше? Я только начинающий)

  • @Mike-hp3fh
    @Mike-hp3fh 5 лет назад

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

  • @vahivsky
    @vahivsky 4 года назад

    Говнокод - это код который сложно поддерживать, он не обязательно сложночитаемый.
    Например, если в коде полно копипейста - в нём можно легко разобраться, но при поддержке придётся менять одну вещь в 10 местах. И наоборот, если в общий метод выносится то, что общим быть не должно - любые правки этого метода будут вызывать баги в неожиданных местах. Вот пара примеров говнокода в копилочку :)

  • @_Mikekkk
    @_Mikekkk 4 года назад

    Меня научил писать хорошо форматированный код мой приятель лет так 25 назад. Когда я гордо ему показал работающую программу на паскале или бейсике но она была написана в одну строчку здоровым слипшимся куском текста. :)) Он посмотрел и сказал - что это за херня, ничего не понятно. И я призадумался. С тех пор пишу с четким форматированием, осмысленными именами переменных и комментированием всего. Потому что на задворках всегда мысль - а ведь это кто-то может потом читать и будет ли ему понятно.

  • @meteysh
    @meteysh 5 лет назад

    Все верно коротко и понятно рассказал

  • @karelalex
    @karelalex 5 лет назад +1

    Я тут на одном проекте пытался делать инъекцию говнокода , но старшие товарищи мешали, зато уже опытным проггерам не мешал никто, и они этим не часто, но регулярно пользовались.
    Ещё там же забавно появлялось то, что компания всем подряд не оплачивала идею ультимейт (я за свои кровные купил), в ультимейт есть анализатор кода, который периодически выдавал варнинги типа: твоя переменная будет всегда false, можешь не проверять. Или друг, ты же тремя строчками назад проверял на null, зачем ещё раз?

    • @karelalex
      @karelalex 5 лет назад

      @Ambulate In Somnis IDEA за денежку.

  • @maxlich9139
    @maxlich9139 5 лет назад +1

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

  • @MsSergey1313
    @MsSergey1313 5 лет назад

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

    • @БарометрАтмосферный
      @БарометрАтмосферный 5 лет назад +3

      Некрасивый и дорогой финансовый код на Яве. В таких организациях это не воспринимается как говнокод - это кодстайл.

    • @JoeDoe-wr9bu
      @JoeDoe-wr9bu 5 лет назад

      Это не экономия, это - говно. Я бы еще мог понять если бы у тебя проект был на СПП, который имел местами вставки из ассемблера (что сейчас уже не критично). Но то что ты описал - это говно. Давай угадаю: у тебя еще и работа есть где ты числишься перспективным разработчиком?:)))))))))))))

    • @MsSergey1313
      @MsSergey1313 5 лет назад

      Joe Doe то что я описал является весьма полезной вещью при программировании микроконтроллеров. Иногда без этого тупо нельзя обойтись. Например при передаче данных через радиомодули которые могут передать байтов очень мало (за некоторый промежуток времени). У меня кстати есть видос на канале про ардуино и радиомодули.

    • @JoeDoe-wr9bu
      @JoeDoe-wr9bu 5 лет назад

      @@MsSergey1313 Для этой цели есть ассемблер , на худой конец с++. а то что делаешь ты - это говнокод.

    • @MsSergey1313
      @MsSergey1313 5 лет назад

      @@JoeDoe-wr9bu В критичных местах среда позволяет это вставить а в остальных просто нет смысла заморачиваться. И обычно я свой код понимаю спустя много времени без WTF благодаря высокоуровневости большей части написанного. Как вы думаете что будет если всё писать на ассемблере? Насколько будет лучше и понятнее?

  • @YKovalenko
    @YKovalenko 5 лет назад +10

    Сколько же боли сейчас было про кнопочку :'( Когда люди собирают простой лендинг на ангуляре, это вызывает адовое количество боли в саппорте :(

    • @AkkayHT228
      @AkkayHT228 5 лет назад

      Yaroslav Kovalenko потому что на начальном этапе была плохо проработана архитектура лэндинга, либо не уделили этому достаточно времени

    • @YKovalenko
      @YKovalenko 5 лет назад +3

      @@AkkayHT228 я боюсь, что тут немного проще =) Тот лендинг не нуждался ни в Laravel, ни в Angular, но если продать такой стек, выйдет дороже =) Вот и всё, а то что потом почти невозможно саппортить такие проекты, это уже совершенно другой вопрос

    • @ni55an
      @ni55an 5 лет назад

      Мы им дали компоненту архитектуру, а они копипастят шаблоны (фс) многие фронтенд фреймворки

    • @drovoseg
      @drovoseg 5 лет назад +6

      @@YKovalenko лендинг на Laravel это конечно зря, надо было делать на Java EE

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

      Потому что саппорт не знает ангулар. Другой причины я придумать не могу, почему фреймворк может вызывать боль на простом лендинге. Я понимаю, почему он может вызывать боль на сложном проекте, где вылезают его недостатки и недоработки. Но боль на лендинге?

  • @ottercoder
    @ottercoder 5 лет назад

    Хорошо настроенные линтеры и код-ревью отлично помогают от говнокода

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +1

      Это видео не о том, а объяснение новичкам - что же это такое

    • @ottercoder
      @ottercoder 5 лет назад

      @@SergeyNemchinskiy как его избегать будет отдельным видео?)

  • @alexbozhko72
    @alexbozhko72 5 лет назад

    Кроме читабельности есть ещё несколько критериев качества кода. Масштабируемость, производительность, требовательность к ресурсам. Это вещи, казалось бы очевидные (на первом курсе учат), но частенько приходится подумать как все это увязать.

    • @AkkayHT228
      @AkkayHT228 5 лет назад

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

    • @alexbozhko72
      @alexbozhko72 5 лет назад

      @@AkkayHT228 Это следует из того, что разработчики матеряться громче юзеров? ;)

  • @Глупыйдурачок
    @Глупыйдурачок 5 лет назад +1

    Здравствуйте, Сергей. Можно тупой вопрос? Что вы думаете насчёт будущего php?

    • @homo-ergaster
      @homo-ergaster 5 лет назад +1

      Ничего хорошего он не думает. Он уже говорил в другом видео, что PHP - это язык для написания плагинов к WP.

    • @YKovalenko
      @YKovalenko 5 лет назад +1

      Да нормальное будущее. Все известные фреймворки будут жить ещё максимально долго. Например laravel и symfony или же YII2, всё так же востребованы весьма на рынке.

    • @Глупыйдурачок
      @Глупыйдурачок 5 лет назад

      @@YKovalenko интересно его мнение

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      Запишу видео :)

    • @Глупыйдурачок
      @Глупыйдурачок 5 лет назад

      @@SergeyNemchinskiy буду очень ждать)

  • @РоманК-в5т
    @РоманК-в5т 3 года назад

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

  • @kirillsushilnikov9614
    @kirillsushilnikov9614 5 лет назад +2

    Сергей очень крут.

  • @агатакристи-г3ы
    @агатакристи-г3ы 5 лет назад

    Сергей, а есть у вас курсы по чистому коду ?

  • @LyubomirZalizkiy
    @LyubomirZalizkiy 5 лет назад +1

    Привет! Есть вопрос - Хорошо ли использовать автоаптейт БД из гибернейта. Или лучше писать SQL миграции ?
    Спасибо за видео! Очень интересно!

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      на этапе прототипирования - самое оно. дальше - отключайте нафиг

  • @ТёмаВечный-б4ш
    @ТёмаВечный-б4ш 5 лет назад

    Исходя из опыта, любой код = говнокод в той или иной степени.
    Причем один и тот же код в один момент времени для одного говнокод, для другого - совершенство. Тут очень много субъективщины.
    Как минимум в команде нужны правила, т.к. общепринятые правила имеют кучу допущений, и даже меняются. Пример - приватные поля класса в С#.

  • @JoeDoe-wr9bu
    @JoeDoe-wr9bu 5 лет назад +2

    индусский код - лучший пример говнокода! индус - лучший производитель говнокода!

  • @roomdiTof
    @roomdiTof 5 лет назад +1

    Говновнокода как и кода который поймет сопожник не существует.
    Если человек жалуется на запутаность или неправильность отступов, названий переменных это и есть говнокодер.
    Как правило проект не может состоять из 10 строчек. Неважно как ситема создана. Если система работает. Значит она првильная. Бери и дорабатывай ее но нефиг гнать что она плохая.
    Посути эра когда все програмисты были матиматиками прошла.
    Сейчас прогоамист без ВО в 26 может быть лучьшим в своем роде за быстроту принятия решений и эфективность. Чем человек который полдня ноет и месяц тратит на правильные пробелы.
    Время + эфиктивность равно деньги.

    • @Денис-р5о3з
      @Денис-р5о3з 5 лет назад

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

    • @roomdiTof
      @roomdiTof 5 лет назад

      @@Денис-р5о3з У меня все проекты это трешь, но я не ною, самый сложный это был и есть проект который делали до меня куча фриленсоров. Они просто создавали папочку и туда пихали свои фичи. Но я не называю его говнокодом. Он работает. Да пришлось потратить полтора месяца на изучение закономерностей. Но это не бида. Вот где было сложно это highload бэкенд на node. В день общее это милион ка трафика. Код был идеален но это не спасло от круглосуточной работы. Без выходных. Партнеров много и не все лили то что было предусмотрено стандартом.
      И тут и деньги уже не милы, хотелось просто забыть обовсем.

  • @Roman_Ogorodnikov
    @Roman_Ogorodnikov 5 лет назад +7

    Захожу на канал, чтобы с удовольствием послушать рассказчика! 8)
    По теме. Еще немаловажный эффект оказывает владение темой, на которую пишется код. Даже гений не сможет понять смысл кода, если он не в теме и код для него будет Г.

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

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

  • @НиколайСушков-е5ж
    @НиколайСушков-е5ж 2 года назад

    *10 (говнокод) ruclips.net/video/vxXiyPgpT1Y/видео.html #конспСНП 2- трудно прочитать и понять (по именам переменных и методов и классов - что они делают и для чего). 5- при обучении языку после изучения его конструкции найти методичку по правилам пользования языком (какими буквами называть элемены кода, их расположение, отступы и т.п.) по запросу "язык кодстайл".

  • @jurybounackoff3025
    @jurybounackoff3025 5 лет назад +1

    "И Ваш код никогда не заслужит название говнокода". .Ну Фоооокс))) Ситуация простая, каждый раз когда ты срочно в угоду заказчику делаешь костыли нужно просто ставить тэг: "Guanocode" .. и раз в неделю рефакториться. Совсем не писать говнокод заказчик скорее всего не позволит. Ну или недостаточно квалифицированные РП, работающие с заказчиками.

  • @sashaprokipchuk4185
    @sashaprokipchuk4185 5 лет назад

    Сергей, здравствуйте. Я начинающий программист. На данный момент учу С++. Пока что пишу небольшие консольные приложения, где весь "проект" состоит из одного файла. И я не понимаю, как организованы настоящие проекты, как они работают...
    Не могли бы вы разъяснить разницу между консольными приложениями, и большими проектами?

    • @МихаилКрамер-н7ш
      @МихаилКрамер-н7ш 5 лет назад

      Для начала доучите С++ :) Большой проект - много разных файлов и классов, сложные задачи и т.п.

    • @sashaprokipchuk4185
      @sashaprokipchuk4185 5 лет назад

      @@МихаилКрамер-н7ш ну вот, я понимаю, что много файлов ,но как они между собой связаны?..

    • @МихаилКрамер-н7ш
      @МихаилКрамер-н7ш 5 лет назад +1

      @@sashaprokipchuk4185 Большую задачу невозможно решить без декомпозиции. Будь то на процедуры, на классы, на модули, на что угодно. Декомпозиция - разбиение большой задачи на более мелкие. Ну к примеру, вам нужно написать программу, в которую вводится много данных, потому по ним просчитывается какая-нибудь статистика, и выводится в виде графика. И, грубо говоря, в файле input.cpp у вас функции для ввода данных, в файле statistics.cpp - просчёт, в файле diagram.cpp рисуются диаграммы. И какой-нибудь файл main.cpp дёргает в нужное время функции из других файлов. Это очень грубо и упрощённо. Если возникают такие вопросы, значит вы ещё не дошли до таких разделов, как заголовочные файлы, компоновка и т.п., и видео эти вам пока смотреть рано. Эти видео Сергея для программистов, которые уже готовы устроиться на работу, хотя бы джуниором.

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

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

    • @sashaprokipchuk4185
      @sashaprokipchuk4185 5 лет назад

      @@МихаилКрамер-н7ш Спасибо, будем изучать!

  • @агатакристи-г3ы
    @агатакристи-г3ы 5 лет назад +3

    Говнокод - это когда "WTF-метр" зашкаливает у ревьювера.

  • @happywater7353
    @happywater7353 5 лет назад +3

    Коэффициент WTF.., надо будет запомнить..

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      не я придумал :)

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад

      Когда я смотрю впервые на чужой код, я вспоминаю фильм Путь Карлито с горкой порошка на столе... Этот код надо не курить, его надо нюхать.

  • @Konstantin_Terletskiy
    @Konstantin_Terletskiy 5 лет назад +1

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

    • @KlinovAS
      @KlinovAS 4 года назад

      ))))) Видал)))) Одна строчка кода и два абзаца комментария)))))))))))) Вышла такая поэма на 9 этажей)))))

  • @nickvirus9463
    @nickvirus9463 5 лет назад +9

    Это из за того что Вы не часто начинали проэкты - ушли в преподавательство?

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +3

      :) Это особенность джава энтерпрайз

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

    А мы ввели ещё термин - школокод)

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

    Как вы чуваки любите все усложнять...

  • @sergZh78
    @sergZh78 5 лет назад

    Я просто не обращаю внимания. Есть задача - исправить это, добавить то, вот тут. Делаю. Не получается иначе как костылём? Пишу костыль. Одним больше, одним меньше.. При этом понятия не имею как программа работает в целом. Т.к. это ведомо только тем, кто все это писал. А их судя по коммитам было с десяток.

  • @fermidist
    @fermidist 5 лет назад +1

    Было бы очень круто, если бы на каждое предложение "у нас на канале есть видео..", в углу видоса была бы на него ссылка

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +1

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

  • @legomonsters6888
    @legomonsters6888 5 лет назад +4

    Могу прислать много примеров 😉

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      вот уж нет :)

    • @legomonsters6888
      @legomonsters6888 5 лет назад

      Сережа, пока ты здесь, в одном из видео ты рассказывал что у тебя на курсах первое тестовое задание непростое, можно пример какую прожку надо написать? Просто подумываю пойти учиться но не хочется приходить совсем лошарой😁так сказать сам оценю свои нынешние способности😉заранее спасибо

    • @legomonsters6888
      @legomonsters6888 5 лет назад

      @@SergeyNemchinskiy обещаю без говнокода😁

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +1

      @@legomonsters6888 развернуть слова, оставив на месте все не буквенные символы

    • @JoeDoe-wr9bu
      @JoeDoe-wr9bu 5 лет назад +1

      @@SergeyNemchinskiy regex

  • @Rosko6nii90
    @Rosko6nii90 5 лет назад +21

    Очевидно. Автор этот может рассказывать любую фигню и я буду это смотреть...

  • @nochnoy_kot
    @nochnoy_kot 4 года назад

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

  • @_Ivan_B_
    @_Ivan_B_ 4 года назад +1

    8:24 Когда читаешь старые сообщения в фейсбуке или еще где то.

  • @АртемБогуш-е3л
    @АртемБогуш-е3л 5 лет назад

    Сергей, расскажите, пожалуйста, о salesforce разработке. Что это и с чем его едят. На сколько перспективно с этим связываться, ваше мнение. Это ж вроде к java относится. Спасибо заранее!

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +1

      Я уже рассказывал, вот тут: ruclips.net/video/KzRseRw6Y_U/видео.html , но пожалуй еще раз расскажу

  • @den_8451
    @den_8451 4 года назад

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

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

      Время программиста стоит дороже времени компьютера. Железки сейчас достаточно мощные. Если это не какая-то особо требовательная задача или особенно слабое железо, то читаемость в приоритете.

  • @AlexAlex-jk2tn
    @AlexAlex-jk2tn 4 года назад

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

  • @kobalt-tv-777
    @kobalt-tv-777 4 года назад

    А можно ли считать говнокодом, много лишнего кода, где можно было бы обойтись более коротким вариантом кода? Например банальное применение if/else, где вполне подходит switch ().
    Ну или я вот читал книгу по этой теме. Где рекомендуется чтобы в одном модуле было не более 25 строк (Идиально). Ну максимум до 50 строк в один модуль.
    Говорят, что это не только оптимизация, но и увеличение степень обслуживаемости кода. Читабельность.

    • @alekseyshibayev5243
      @alekseyshibayev5243 4 года назад

      Я свичи прошу переделать. Пиши так, чтобы читать было понятно. Пишешь 1 раз, читаешь 10.

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

    Жиза) Все верно сказано. Возвращаюсь к своему коду и WTFакаю .... who did this щет)))) А потом, ой этой был я со своей супер-пупер неразширяемой архитектурой.

  • @Алексей-щ6ю3у
    @Алексей-щ6ю3у 4 года назад +3

    Здравствуйте. А комментарии превращают говно код в норм код?

  • @LayronPK
    @LayronPK 5 лет назад

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

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      да,в основном на плюсах, если говорить о 3д играх. А если казуалки, то на чем только не пишут. Вот на юнити (си-шарп) например

    • @razorprod4097
      @razorprod4097 5 лет назад

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

  • @user-ux7yu2kb4k
    @user-ux7yu2kb4k 5 лет назад +2

    вижу говнокод ставлю лайк не смотря

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

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

  • @robot_0121
    @robot_0121 5 лет назад +8

    Гвлнокод хорошо понимает только твой IDE и больше никто.
    Буду жениться на IDE.

  • @mamky_ebal2003
    @mamky_ebal2003 5 лет назад

    Методики обучения на шарпах плиз

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      в смысле? Нашу учебную программу? Она на сайте

  • @ismeretlenukendt7883
    @ismeretlenukendt7883 5 лет назад

    О бож это так мимимишно!!!

  • @WolfzPain
    @WolfzPain 5 лет назад +1

    немного решает проблему codacy (и прочие сервисы проверки залитого кода) и так же прекоммит стайлеры.

    • @alexanderbelov6892
      @alexanderbelov6892 4 года назад

      Это не тот, что ругается на
      delete p; printf("%P
      ", p);
      ?
      Какое им дело до invalid pointer p? Такие тулы глубоко копать не станут. Часто ругают что-то очевидно не по делу.

  • @ЕвлампийИшаков
    @ЕвлампийИшаков 5 лет назад +1

    А если прога регулярно лагает ?

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +1

      Это не говнокод, это код лагает. Он может лагать не только из-за говнокода, но и из-за неучтенных ограничений и еще по сотне причин.

  • @soul-snatcher225
    @soul-snatcher225 Год назад

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

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

    Интересно, но Теорию Относительности Эйнштейна понимали немногие, говорит ли это, что он плохой ученый :-)

  • @mr.sievert
    @mr.sievert 3 года назад

    А если код намеренно запутан?

  • @a.inozemtsev
    @a.inozemtsev 5 лет назад

    Иногда ведь бывает непонятно, но совсем по другим причинам. Например неопытность

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

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

  • @Павел-г6ъ
    @Павел-г6ъ 5 лет назад +3

    То что у вас в компании писали все по разному значит не было договоренности т е ревью не было Тим лид не о чем был

  • @НиколайПетров-п5т
    @НиколайПетров-п5т 3 года назад

    Непрограммист читал код программиста и понял "это г... код"

  • @AsanSultanovNet
    @AsanSultanovNet 5 лет назад +1

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

  • @alexshtams
    @alexshtams 4 года назад

    не существует говнокода... это субъективное понятие. но существуют юзеры, которые будут говорить , что это говнокод.

  • @stanislavkuzmin2611
    @stanislavkuzmin2611 5 лет назад

    Расcкажи про Spring)

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад

      спринг - это куча разных фреймворков. Что про них рассказать?

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

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

  • @IPWchild
    @IPWchild 5 лет назад +11

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

    • @pro_cap
      @pro_cap 5 лет назад

      Не первый десяток лет в профессии, и не смог оценить паттерн? Вы вообще паттерны видели? Они как бы полностью состоят из базовых концепций ООП, если программист работал 10 лет и не смог понять паттерн, то он работал с Excel. Другой вопрос - а уместно было вообще его использовать? Если молодой программист перегрузил код, напихав туда бездумно паттерны с фреймворками, то это и будет говнокодом. Применение любого кода должно быть прежде всего УМЕСТНО, а иначе стрельба себе по ногам.

    • @andrewvsk2368
      @andrewvsk2368 5 лет назад +2

      Попробуйте чистый C. Не C++, а именно C. Если втянитесь, внезапно окажется, что 90% "современных" приёмов - бесполезное дерьмо, только усложняющее код и тормозящее его работу сотнями дебильных переадресаций, и где брутально-тупой конечный автомат решил бы проблему в разы проще и быстрее. Сам сейчас присматриваюсь к Rust, хотя он медленно взлетает.

    • @kardashevr
      @kardashevr 5 лет назад

      @@andrewvsk2368 за растом будущее. только пока не очень понятно, как далеко это будущее находится

    • @andrewvsk2368
      @andrewvsk2368 5 лет назад

      ​@@kardashevr далеко, + не факт что за Растом будущее. Rust хороший язык, но он не очень хорошо интегрируется с C. C живёт вовсе не потому что это самый быстрый язык (не считая нативного ASM), а потому что это самый простой язык и эффективный язык. + Когда человек пишет на C достаточно сложную программу, он автоматически реализует многие устоявшиеся паттерны проектирования из ООП. В C нет наследования, все абстракции реализуются композициями из структур и функций. Сокрытие создаётся средствами языка: правилами области видимости. Фабрика - это неотъемлемая часть даже маленькой программы на C, т.к. нам нужно всегда правильно создавать и удалять структуры данных. В результате человек, пишущий на C вообще никогда не допустит тех ошибок, с которыми могут столкнуться программисты на Java, при этом Java декларирует высокую скорость разработки! Высокая скорость только там, где ПО можно собрать из встроенного говна. В противном случае C эффективнее. И кстати ещё об ООП - C++, Java, C# - это НЕ ООП. Ни в одном языке не реализуется парадигма "всё объект", а отправка сообщений реализуется не средствами языка, а средствами костылей. Сами языки, если убрать всё лишнее просто надстройка над обычным императивным методом программирования, некоторые из которых скорее даже вредны! Например, в любой книге по паттернам очень критикуется Наследование, а ведь это один из столпов ООП (в отличие от инкапсуляции и полиморфизма, которые ООП просто присвоило себе, полиморфизм есть в любой большой программе! его можно реализовать на С, причём даже несколькими способами! (определение типов или указателями на функцию). В C# наследование используется ради перегрузки методов, ради последующего полиморфизма (и даже это не всегда хорошая идея) (это могут быть интерфейсы или абстрактные классы). Другое применение наследования уже вообще гарантировано создаёт говнокод. То есть как всегда: придумали, пропиарили, написали эксабайты говнокода, а теперь думаем что с этим делать.

    • @Денис-р5о3з
      @Денис-р5о3з 5 лет назад

      Есть куча книг как не писать говнокод, например Code Complete.

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

    Первая работа джуном - и я пишу микросервисы с нуля)

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

    Красивые самолеты хорошо летают))

  • @KoRoBoCHkA_2
    @KoRoBoCHkA_2 5 лет назад +1

    Говнокод заканчивается там, где ты узнаешь что такое говнокод

  • @GenaSLASH
    @GenaSLASH 5 лет назад

    С клин кодом согласен!
    Но!
    Любой код _ это интеллектуальная собственность!
    И это важно, если тебе платят по контракту , не оценивая твой труд!
    Так почему я кому то должен отдавать свой труд???
    Если мой последователь так крут- пусть разбирается!
    Я за клин код, если платят за клин код и мою интеллектуальную собственность!!!

    • @SergeyNemchinskiy
      @SergeyNemchinskiy  5 лет назад +4

      эм.... что?

    • @GenaSLASH
      @GenaSLASH 5 лет назад

      Эм- это за или против? 🤗
      Если код выкладывается в паблик комьюнити - конечно же
      Это должен быть клин_код!!!

    • @vladimirgorlin7510
      @vladimirgorlin7510 5 лет назад

      Ахаха , клинический случай

    • @drovoseg
      @drovoseg 5 лет назад +1

      Другими словами клин кодом вышибают или на мире код клином не сошелся.

    • @GenaSLASH
      @GenaSLASH 5 лет назад +1

      Думаю- если на продажу=то код должен быть клином!
      А для конкурентов по работе = чтоб мышь не разобралась 🤗

  • @sergeyfamiliy2781
    @sergeyfamiliy2781 5 лет назад

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

  • @СинийКардинал-б5о
    @СинийКардинал-б5о 5 лет назад

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