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

  Переглядів 114,143

Sergey Nemchinskiy

Sergey Nemchinskiy

4 роки тому

Что такое говнокод? Данная тема часто поднимается, сегодня и мы ее обсудим.
Курсы для новичков:
🎓JAVA Start - bit.ly/3EkIiif
🎓Инструментарий JAVA - bit.ly/3Cp9PP1
🎓JAVA Spring - bit.ly/3pCtK9I
🎓C#/.NET - bit.ly/3Con5DI
🎓ANDROID С НУЛЯ - bit.ly/3vNhLY1
🎓Automation QA (Java) - bit.ly/3Guj5Ui
🎓FRONT-END (Angular) - bit.ly/3Grzysp
🎓FRONT-END (React) - bit.ly/3BkLUyP
🎓UI/UX дизайна - bit.ly/3CkNQcb
🎓PYTHON - bit.ly/3pPWNqa
🎓SalesForce - bit.ly/2ZohCxW
🎓PHP - bit.ly/3mj5PtT
🎓iOS - bit.ly/3nrOT3u
🎓GameDev - bit.ly/3bi73iy
🎓Обучение на проекте - bit.ly/3bfnITV
Продвинутые курсы для состоявшихся девелоперов:
🎓Enterprise patterns - bit.ly/3vMaQhG
🎓GRASP and GoF Design patterns - bit.ly/3BkOYej
Сайт Foxminded: bit.ly/3pI9eV9
Foxminded в ФБ: / foxmindedco
FoxmindEd в Instagram: / foxminded.ua
Мой Telegram: t.me/nemchinskiyOnBusiness
Мой блог: www.nemchinsky.me

КОМЕНТАРІ: 467
@Velo-Bomzh
@Velo-Bomzh 4 роки тому
*Однажды злодеи решили украсть мой код, но не смогли его прочитать. Один сразу выпрыгнул в окно, второй успел выколоть себе глаза.*
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Однажды в США автоугонщики хотели угнать автомобиль с ручной коробкой передач. Но не смогли понять, как работает ручная коробка передач. Пришлось ретироваться.
@Tyn4tyk
@Tyn4tyk 3 роки тому
@@olsuhvlad меньше бы таких как вы)) простое делаете сложным
@TheGloriousRussian
@TheGloriousRussian 3 роки тому
А третий всё время повторял WTF
@rammix1
@rammix1 Рік тому
@@TheGloriousRussian *А третий с тех пор непрерывно повторяет WTF.
@_WingCommander
@_WingCommander Рік тому
Вполне тянет на статью "доведение до самоубийства", аккуратнее 😁
@eugenedukatta9355
@eugenedukatta9355 4 роки тому
Почему в очень многих резюме есть ГОВНОтребование: "Умение понимать чужой код" ??? Но я ни разу!!! не встречал требование "Уметь писать код так, чтобы его понимали другие" ?
@user-vh9bi3ft8r
@user-vh9bi3ft8r 4 роки тому
Потому что приехав в Китай тебе придется понимать по китайски, а не переучивать всех говорить по русски. А если ты не способен прочесть код в котором скобочки пробельчики не так расставлены как ты привык, то пойди купи себе букварь и научись наконец читать.
@damirgarifullin6877
@damirgarifullin6877 4 роки тому
У JetBrains есть в вакансии такое: "Умеешь проектировать и писать код, который легко читать и поддерживать."
@ivansidorov5
@ivansidorov5 4 роки тому
советую не идти в такие конторы. история там была скорей всего такая: очередной умный оптимизитор менеджер-начальник решил экономить и нашел джуниора который сделал какашку за 20 000 рублей в месяц за 1 год, а теперь ищут тебя, который эту какашку будет поддерживать
@damirgarifullin6877
@damirgarifullin6877 4 роки тому
@@ivansidorov5 в jetbrains?
@ivansidorov5
@ivansidorov5 4 роки тому
@@damirgarifullin6877 Да в любое место , где пишут что нужно умение читать чужой код. Любйо человек умеет читать чужой код, но этим собщением они готовят к говнокоду, потому что какой-то умный начальник до тебя нанимал чухана за 10 000 рублей и он там наговнокодил, если бы изначально наняли норм программиста за 250 000 рублей то говна бы и не было в проекте
@purplep3466
@purplep3466 4 роки тому
Согласен с автором, но все же, иногда нужно насрать, чтобы вырос цветок
@user-pz1jx1fp2f
@user-pz1jx1fp2f 4 роки тому
Ты сделал мой день ))
@user-gs6qd9gd1d
@user-gs6qd9gd1d 4 роки тому
Это ты про удобрение?))))
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Скорее так: если у программиста есть столько времени, чтобы написать идеальный код, то вероятно его компания движется к банкротству, так как их конкуренты уже выходят на рынок с говнокодом.
@KlinovAS
@KlinovAS 4 роки тому
По этому в Пайтоне срать нужно очень акуратно, а в СосиДваПлюса или Джузи можно одной длинной
@dimapetrashchuk3036
@dimapetrashchuk3036 4 роки тому
Говнокод это не только плохой кодСтайл или нечитаемый код, а и вполне красивые и читаемые костыли)
@webget1596
@webget1596 4 роки тому
Кстати да, очень бесит когда можно решить саму проблему довольно немножко переписав код, но программист решает просто дописать к ней костыль, а в будущем из-за этого костыля приходиться переделывать пол проекта))
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
да, безусловно. Но это по правилу Паретто
@andrewvsk2368
@andrewvsk2368 4 роки тому
То есть почти все паттерны проектирования xD. Модели событий, делегаты и прочие модные фишки). События в Сишном стиле более прямолинейны, зато любой поймёт код. В C# в достаточно сложной программе запрос идёт через дохрена интерфейсов и эвентов, но это называется разумным кодом. Любой open source проект на C читается вообще без проблем.
@maxlich9139
@maxlich9139 4 роки тому
@@webget1596 не мы такие, жизнь такая)))
@KoCMoHaBT61
@KoCMoHaBT61 4 роки тому
@@andrewvsk2368 Вот прямо 146% попадание. Наплодила банда четырёх "жабапрограммистов со знанием паттернов", теперь для того, чтобы два числа сложить они пишут фактори, делегаты, эвенты... А ещё где-то есть тайная книжка, которое плодит программистов однострочных функций: Read->ReadNumber->ReadNumberFromFile->ReadNumberFromTextFile->ReadNumberFromUTFEncodedTextFile.
@vasilymaestrovs9546
@vasilymaestrovs9546 4 роки тому
Вчера я делал ревизию своего первого андроид-проекта. Который писал еще в 15-16м году. И я понял, что такое говнокод ))
@inbuckswetrust7357
@inbuckswetrust7357 4 роки тому
теперешний лет через 5 посмотришь ;)
@MrSumkinFedor
@MrSumkinFedor 4 роки тому
Радуйтесь - ведь это значит, что вы выросли в профессиональном плане.
@artyomb7424
@artyomb7424 4 роки тому
Порой смотришь в код месячной давности, а там такая жуть и ты не понимаешь зачем ты это написал)
@liamsmith7052
@liamsmith7052 4 роки тому
Я свой первый андроид-проект переписывал 3 или 4 раза. Там просторов для косяков уйма, это да.
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Я могу сделать ревизию своего кода, который писал для себя 20 лет назад, и сделать вывод, что это не говнокод, хотя его можно было бы спроектировать лучше (сейчас я это понимаю чуть лучше), и я этот код всё еще понимаю. Но также понимаю, что его больше никто не поймёт, так как он содержит алгоритмы, чьё описание в книге я перечитывал несколько раз, чтобы начать понимать их. А понять эти же алгоритмы глядя в код просто невозможно - тяжёлая математика. И то что этот код никто не поймёт при любом способе написания и стиля - гарантированно. Но всё равно это не говнокод, а некоторое отсутствие документации, квалификации читающего, и т.п. Если бы я читал чьи-то алгоритмы из области генетики, то я бы также вряд ли что-то понял, но не потому что передо мной говнокод. Так что понятие говнокода относительно, и не определяется количеством WTF, а скорее временем и усилиями, которые читатель хочет потратить на изучение кода. Не хочет - говорит постоянно WTF, и объявляет всё говнокодом. Совершенно не корректный критерий.
@man-jj7rc
@man-jj7rc 4 роки тому
После просмотра 20 роликов Немчинского стал senior Java developer, Очень годно.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
серьезно? :)
@ni55an
@ni55an 4 роки тому
А коллеги и руководство в курсе? 😃
@cupon8869
@cupon8869 4 роки тому
лох, я президентом стал уже после 8го ролика
@Dmittry
@Dmittry 4 роки тому
Я после 5-го ролика познал дзен и ушёл в тибетский монастырь.
@Max-kr4ie
@Max-kr4ie 4 роки тому
Я после первого ролика посмотрел второй. А чего добился ты ?
@1981leks
@1981leks 4 роки тому
Любой чужой код говнокод. И даже свой код годичной давности и дальше тоже говнокод.
@mmospanenko
@mmospanenko 4 роки тому
Годичной?) Возможно на джавах, но вот в чем-то более живом это в неделях и днях может измеряться) я часто ловлю себя на мысли что перед тем как ругаться лучше сразу посмотреть в гит блейм - там часто я, и не всегда несколько лет давности))
@andrewvsk2368
@andrewvsk2368 4 роки тому
Не всегда и сильно зависит от языка. Например, на чистом C если не выделываться и работать с умом получается код на века. При этом любой проект на Java (который согласно пиар-компании должен упрощать код) превращается в дерьмо очень-очень быстро. Причём ООПшники порой полные неадекваты, задачи, которые решаются в 500 строк кода в одном файле они решают создавая дохрена классов и интерфейсов, реализуют паттерны (смысл которых чаще НЕ понимают, чем наоборот) и получается тормознутый монстр с массой потенциальных семантических ошибок). Это "добро пожаловать в реальный мир", на словах все идеально, на практике сами языки чаще способствуют порождению ПО из натурального дерьма.
@eduardczuwak8394
@eduardczuwak8394 4 роки тому
Seregi? ja seregi kod ludshe dazhe ne verstaju...zabyl, napisal na novo..poreshaesh srazu kuchu zadacz.
@KlinovAS
@KlinovAS 4 роки тому
согласен. и английский язык тоже вонючее гавно. читается одно, а произносится другое
@alexsandrosipenko2182
@alexsandrosipenko2182 4 роки тому
Обожаю ваши видео. Очень мотивирующие и дающие не ИТ специалисту понять структуру в целом, а не только как быть гребцом на галере. Спасибо Вам огромное))
@user-bv2hl5rj5e
@user-bv2hl5rj5e 4 роки тому
когда я однажды делаю проект, я ликую над кодом за красоту и лаконичность спустя год почти у всех проектах код называю говнокодом, переделываю, снова ликую за касоту и лаконичность и так циклически
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
отлично, значит - растете
@tsoier
@tsoier 4 роки тому
x -= -1
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
вот именно :) Даже я завис секунд на 5. Не надо так :)
@user-yh4um1jm6b
@user-yh4um1jm6b 4 роки тому
Ништяк. Буду теперь так инкрементить)
@VIlyaM108
@VIlyaM108 4 роки тому
Это, типа, лайк поставил?
@SlavikUkraine
@SlavikUkraine 4 роки тому
@User 1 это операция прибавления единицы к переменной х, только замысловатым и нецелесообразным способом( иначе говоря, через задницу) .
@SlavikUkraine
@SlavikUkraine 4 роки тому
@User 1 Ты , походу , не понял мой предыдущий комментарий , как и то , что должен был делать тот код. "Х -= -1" это равносильно тому, если бы ты написал x = x - (-1) т.е. по правилам математики х+1. Оператор -= это аналог X=X -... . Ты же написал про какую-то ерунду , к тому же в левой части у тебя должна стоять переменная. Т.е. Х . Никаких -Х , 2Х и т.д. + ко всему этому , ты пишешь почему не -х= -1. Да потому что в первом случае мы отнимаем минус единицу( прибавляем единицу), а твоя запись ( по крайней мере, так подразумевалось) делает Х постоянно равной 1
@lynx6511
@lynx6511 4 роки тому
Помнится, надо мне было внести изменения в код дипломной работы на C++/Qt, которую писал весной прошлого года. Первые часа два я не мог понять, что там происходит и под чем я был, когда писал этот код. Изучение джавы дало неплохой толчок по ООП и вообще, как всё должно быть. Теперь я пишу говнокод, но уже не настолько дурно пахнущий. :)
@lichlichi
@lichlichi 4 роки тому
Спасибо вам, Сергей)
@user-pn2ev2je2l
@user-pn2ev2je2l 4 роки тому
Благодарю за видео.
@Mr43046721
@Mr43046721 4 роки тому
Большое спасибо за видео. Мотивируете писать код вместо просмотра котиков на работе)))
@serggio88888
@serggio88888 4 роки тому
ну как же приятно Серея слушать)
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
пасиба :)
@malikvalley
@malikvalley 4 роки тому
Серей это кто? (Who?)
@rambler9249
@rambler9249 3 роки тому
@@malikvalley это деепричастие
@WolfzPain
@WolfzPain 4 роки тому
Встречаю такую тему, что многие усложняют себе задачу или лепят весь код в один метод отчасти и на это есть проверки, но обычно такие (на размер метода) правила отключают. Короче KISS пацаны)
@akiloci2198
@akiloci2198 4 роки тому
08:50 а если Вы видеоблогер, и не развиваетесь, меняйте профессию)) Это я к тому, что поначалу критиковал ваши видео, но теперь они мне нравятся всё больше и больше))
@RUS4HELP
@RUS4HELP 4 роки тому
Вы самый топовый ментор! И умный и с чувством юмора!
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
спасибо!
@Dmittry
@Dmittry 4 роки тому
У меня не говнокод! У меня обфускация! (Главное - правильный маркетинг.)
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
ахахаха
@andrewvsk2368
@andrewvsk2368 4 роки тому
Любой проект на C# или Java - это обфускация). Никто даже о декомпиляции не парится никогда, т.к. читать этот говнокод - неблагодарное дело. Это по определению write-only. Это одна из причин, почему чистый C до сих пор жив и жив будет и почему даже современные либы пишут именно на C. В защиту C# (на Java не пишу, но та же фигня) - быстрота и удобство на первых порах. То есть очень круто прототипировать приложения, которые почти сразу будут работать, т.к. дофига инструментов доступны из коробки и чаще работают, чем нет), но поддерживать код на C# - это ХУЖЕ, чем поддержка бородатого сишного кода стандарта с89 c *бнутыми структурами данных и стилем.
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Dijkstra программирование - это программирование с использованием имён переменных d, i, j, k, s, t, r, a.
@Konstantin_Terletskiy
@Konstantin_Terletskiy 4 роки тому
Во-во. Очень знакомое ощущение. Смотришь свой же код двух-трёхмесячной давности и думаешь иной раз, что да, сейчас я уже так не написал бы. И да, в программировании развиваться надо непрерывно. А то как получается, первые свои программы я писал, помню, для персоналки Hewlett-Packard 85 ещё в 1982 году. Там ещё операционки не было даже, просто Бейсик-монитор встроенный. И всё. А потом МИФИ, студент факультета Кибернетики. А там у нас вообще к старшим курсам было так - ну чего? Новый язык изучить? Паскаль у нас там не читали, Си не читали, сами брали книжку и изучали. Потом C++, потом уже в Штатах фирма послала всех своих программистов на недельные курсы основ Явы. Основы дали, дальше опять сами. И сейчас всё сами. А так что, на уровне 1982 года застрять, что ли? Нет, программирование и хорошо именно тем, что постоянно требуется развитие. Застрял - всё. Специфика профессии.
@xrollup
@xrollup 4 роки тому
"программирование - профессия где все время придется учиться", и вот это блин ни разу не аллегория или стеб. это, блин, так и есть.
@soversus5374
@soversus5374 4 роки тому
а что делать... языки совершенствуются и чаще в лучшую сторону. Так что это скорее плюс...
@user-xj7hh9dq2u
@user-xj7hh9dq2u 4 роки тому
в основном в вебе и геймдеве, в остальных сферах все более-менее спокойно.
@vargvarg7922
@vargvarg7922 3 роки тому
@@user-xj7hh9dq2u как жсер скажу, что нифига подобного, хрен бы сним что либы и фреймы совершенствуются постоянно, сам жс в 2015 году выкатил ес6, который неплохо так поменял подход
@meteysh
@meteysh 4 роки тому
Все верно коротко и понятно рассказал
@TedRed
@TedRed 4 роки тому
Здравствуйте! Есть вопрос к вам Как лучше писать код: 1) максимально подробно и понятно каждому (но код будет длинным) 2) максимально кратко и эффективно (код будет коротким, но порой непонятным с первого взгляда) Или все же какой-то баланс держать лучше? Я только начинающий)
@LyubomirZalizkiy
@LyubomirZalizkiy 4 роки тому
Привет! Есть вопрос - Хорошо ли использовать автоаптейт БД из гибернейта. Или лучше писать SQL миграции ? Спасибо за видео! Очень интересно!
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
на этапе прототипирования - самое оно. дальше - отключайте нафиг
@user-cb6cy5vp2n
@user-cb6cy5vp2n 4 роки тому
Когда вы смотрите на свой старый говнокод, вы понимаете, что растете. Да, согласен. НО понятие "говнокод" работает также в режиме реверса: когда вы (например новичок) смотрите на чужой более продвинутый код - он также кажется вам говнокодом. Или, иными словами, если вы могли бы посмотреть на свой код В БУДУЩЕМ - он также показался бы вам говнокодом. Философия. Всё течет, всё меняется, а на самом деле все изменения - лишь иллюзия, всё неизменно от говна к говну...
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
ахахаха
@alexperemey6046
@alexperemey6046 Рік тому
Я сейчас читаю книгу Элеонор Остром "Управление общим". Там описана интересная проблема, при которой все вроде и понимают, что нужно "делать правильно" и так будет "лучше для всех" в конечном итоге. Но никто не делает, поскольку "будет лучше" только в том случае если так будут делать все. А если не все, то больше всех пострадает тот, кто все же делает правильно. И мне кажется, что в вопросе "говнокода", который все осуждают и все равно пишут, эта идея тоже много объясняет. Чтобы написать код "понятный для других" зачастую нужно банально больше времени уделить его архитектуре, доводке, даже названия переменных возможно подберешь не с первого раза. Это лишняя работа и лишнее время. Которое сохранит время того программиста, который будет саппортить код после тебя. А оно ТЕБЕ надо? Особенно если учесть, что времени всегда не хватает и все такое, ведь начальную версию продукта нужно выпустить как можно быстрее. Это уже потом, когда продукт начал приносить прибыль, можно на эту прибыль жить и не спеша вылизывать код. Вот и получается, что ВСЕГДА проект пишется на говнокоде. А уже потом, возможно, будет поставлена задача привести код в порядок. Когда уже "все работает" и есть время перевести дух. Задачу эту возможно будешь ты и решать (хотя ты от своего говнокода страдаешь меньше и понимаешь его лучше), а возможно, ее будет решать уже кто-то другой.
@iSonsaku
@iSonsaku 4 роки тому
Посмотрев это видео, я понял что нужно писать для себя и пробовать новые проекты реализовывать самому. Ковыряться в чужих гавно-кодах и работать за копейки добавляя функционал в говно. Просто шикарная перспектива.......
@user-cy1mz4om5w
@user-cy1mz4om5w 4 роки тому
К сожалению, существует способ сделать очень понятный код, но тем не менее WTF будет раздаваться при его чтении постоянно. Сделать код слишком длинным. То есть никакой универсальности, минимум абстракций - все вопросы решать тупо лоб и делать очень много копипасты. Такой код поймет даже школьник. Но почти любой программист оказавшись где-нибудь на 4056-й его строке, будет материться сильнее, чем от любой сложности говнокода. У меня сейчас как раз такая задача. Через неделю уже сдавать проект, а его явно писали дети. Сижу и часами читаю сочинения "как я провел лето". Это ужасно.
@alexperemey6046
@alexperemey6046 Рік тому
Если код на уровне "как я провел лето" - это прекрасно. Просто задачи-то решаются сложные. И поэтому "решение в лоб" с точки зрения языка зачастую подразумевает довольно запутанный алгоритм с точки зрения логической. И просто написанный код перестает быть простым для понимания. Такой вот парадокс.
@user-cy1mz4om5w
@user-cy1mz4om5w Рік тому
@@alexperemey6046 Когда он занимает тысячи строк? А бывает и больше - я видел 16К только на форме. Оченама сложный там у этой формы интерфейс, видимо. Что в этом прекрасного-то? Я не нанимался днями и неделями читать детские каракули. ))) Сложная задача требует сложной структуры абстракций. А когда кодеры в такое не могут - они и начинают гнать строку. Решая задачу в лоб - то есть по принципу, "что вижу, то пою". Куча тупорылых циклов и условий в общем. Скопипасченных много раз с небольшими изменениями для разных вводных. Огромная, почти бесконечная куча - уснешь на первой трети уже. И иногда у них это, к сожалению, даже работает.
@user-oc6mf3vc2v
@user-oc6mf3vc2v 4 роки тому
Серега - ты отличный ментор)))
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
скорее все-таки блогер :) Ментор я так себе
@user-pn8vw8rr3m
@user-pn8vw8rr3m 4 роки тому
Сергей, а есть у вас курсы по чистому коду ?
@bubendancer7210
@bubendancer7210 4 роки тому
Зависит ли ЗП программиста и возможность его трудоустройства от возраста. Есть мнение, что возраст за 40 для программиста в странах СНГ уменьшает шансы рассмотрения его кандидатуры на вакансию и уменьшает уровень ЗП даже при наличии у него большего опыта. Так ли это?
@user-vf8vh5xq9f
@user-vf8vh5xq9f 2 роки тому
Сергей, сорян за оффтоп) На канале находил видео, которое отложил на посмотреть позже и потерял, теперь найти не могу. Прошу помочь. Видео было связано с проблемой начинания ч-л и рассматривалась методология преодоления этой проблемы.
@Mike-hp3fh
@Mike-hp3fh 4 роки тому
Для меня критерий хорошего кода один - этот код эволюционировать, т.е. его можно быстро менять перенастраивать, масштабировать. Все остальное не так важно, т.к. все остальное можно легко исправить. А написать такой код, который можно легко менять в соответсвии с новыми задачами - довольно сложно даже опытным программистам.
@memzo_getR
@memzo_getR 2 роки тому
Недели 2 назад начал изучать пайтон, писал простые коды по заданиям по курсам.. прошёл пару теорий, заданий.. решил закрепить материал и вернулся назад и заметил свои старые коды написанные в 5-10 строк и просто переписал их на более понятный лад и в 2-3 строки.
@standvik1159
@standvik1159 2 роки тому
как успехи в обучении?
@kirillsushilnikov9614
@kirillsushilnikov9614 4 роки тому
Сергей очень крут.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
спасибо :)
@AlexAlex-jk2tn
@AlexAlex-jk2tn 3 роки тому
Спасибо за советы, вроде хорошие, но не ко всем языкам применимы, например C++ я не нашёл единого стандарта кодирования, у всех свой стандарт, кто-то использует гугловский стандарт, кто-то косит под STL и не понятно будет для начинающих программистов какой же стиль всё таки предпочтительный.
@sergeyshramko4200
@sergeyshramko4200 4 роки тому
Спасибо.
@ismeretlenukendt7883
@ismeretlenukendt7883 4 роки тому
О бож это так мимимишно!!!
@tatit188
@tatit188 Рік тому
резюме: кто учится писать код - даже не пытайтесь, обгадят с ног до головы, потому что начальное условие входа в it - ты говнокодер. и только когда ты наберешься опыта ты сможешь так же гадить на голову остальным. действительно сообщество программистов мотивирует и поддерживает.
@YKovalenko
@YKovalenko 4 роки тому
Сколько же боли сейчас было про кнопочку :'( Когда люди собирают простой лендинг на ангуляре, это вызывает адовое количество боли в саппорте :(
@AkkayHT228
@AkkayHT228 4 роки тому
Yaroslav Kovalenko потому что на начальном этапе была плохо проработана архитектура лэндинга, либо не уделили этому достаточно времени
@YKovalenko
@YKovalenko 4 роки тому
@@AkkayHT228 я боюсь, что тут немного проще =) Тот лендинг не нуждался ни в Laravel, ни в Angular, но если продать такой стек, выйдет дороже =) Вот и всё, а то что потом почти невозможно саппортить такие проекты, это уже совершенно другой вопрос
@ni55an
@ni55an 4 роки тому
Мы им дали компоненту архитектуру, а они копипастят шаблоны (фс) многие фронтенд фреймворки
@drovoseg
@drovoseg 4 роки тому
@@YKovalenko лендинг на Laravel это конечно зря, надо было делать на Java EE
@alexperemey6046
@alexperemey6046 Рік тому
Потому что саппорт не знает ангулар. Другой причины я придумать не могу, почему фреймворк может вызывать боль на простом лендинге. Я понимаю, почему он может вызывать боль на сложном проекте, где вылезают его недостатки и недоработки. Но боль на лендинге?
@Roman_Ogorodnikov
@Roman_Ogorodnikov 4 роки тому
Захожу на канал, чтобы с удовольствием послушать рассказчика! 8) По теме. Еще немаловажный эффект оказывает владение темой, на которую пишется код. Даже гений не сможет понять смысл кода, если он не в теме и код для него будет Г.
@alexperemey6046
@alexperemey6046 Рік тому
Как раз наоборот, через качественно написанный код он познакомится с темой. Другое дело, что если в коде будет ошибка бизнес-процесса, он ее конечно не увидит. Поскольку не владеет процессом и не знает, как он правильно должен работать.
@dmitrikomarov2484
@dmitrikomarov2484 4 роки тому
спасибо
@user-st2vg7nk7n
@user-st2vg7nk7n 4 роки тому
Исходя из опыта, любой код = говнокод в той или иной степени. Причем один и тот же код в один момент времени для одного говнокод, для другого - совершенство. Тут очень много субъективщины. Как минимум в команде нужны правила, т.к. общепринятые правила имеют кучу допущений, и даже меняются. Пример - приватные поля класса в С#.
@ni55an
@ni55an 4 роки тому
Последнее время стал постоянно придерживаться позиции, что код должен выглядеть близким к человеческой речи. Читая код должно быть сразу понятно как это работает (с учётом того, что читатель разбирается в предметной области). Тогда такой код можно значительно быстрее модифицировать
@SecretYouTubeAgent
@SecretYouTubeAgent 4 роки тому
Согласен. Код он словно книга или небольшой рассказ. Иногда читаешь, и хочется воскликнуть "ай, как славно написано!"
@natty55555
@natty55555 4 роки тому
Абсолютно согласен. Только некоторые критические участки приходится оптимизировать (по скорости) и тогда ясность страдает, но обычно стараешся комперсировать комментариями
@Mike-hp3fh
@Mike-hp3fh 4 роки тому
Я бы еще добавил, что до сих пор нет ни одного стека технологий, который бы позволял написать простое продаваемое приложение без говнокода или кучи костылей. Но технологии развиваются и возможно скоро будут изобретены инструменты которые пройдут этот критерий. И тогда, навреное, можно будет сказать что программирование - это просто. Потому что основная сложность программирования сейчас - это как написать казалось бы простую вещь без костылей.
@AyzekUorren
@AyzekUorren 4 роки тому
Попробуйте один метод, никогда не говорить про себя что код плохой ( даже когда это не так ), никогда не говорить что задача сложная и всегда искать замены слову сложная на немного трудная, смотрите потом на результаты, часто за многими замечаю, как преувеличивают проблемы и слишком долго их обсуждают, вместо того что бы решить. Если вернуться к коду, все очень просто, читаете TDD, 1. Пишите тесты 2. Пишите код 3. Запускаете тесты 4. Удачно поздравляю конец, нет, повторить 2 - 3 пункт до успеха. Тоже самое при рефакторинге. Любой такой код не будет страшен, когда он протестирован, а без тестов, вы можете сделать даже хуже.
@alexbozhko72
@alexbozhko72 4 роки тому
Кроме читабельности есть ещё несколько критериев качества кода. Масштабируемость, производительность, требовательность к ресурсам. Это вещи, казалось бы очевидные (на первом курсе учат), но частенько приходится подумать как все это увязать.
@AkkayHT228
@AkkayHT228 4 роки тому
Alexander Bozhko масштабируемость это уже про чистую архитектуру, а не про чистый код, то же самое с оптимизациями, но чистый код лучше производительного)
@alexbozhko72
@alexbozhko72 4 роки тому
@@AkkayHT228 Это следует из того, что разработчики матеряться громче юзеров? ;)
@maxlich9139
@maxlich9139 4 роки тому
01:51 ха, сейчас работаю в фирме, и много проектов пишем с нуля. легаси мало и ими никто не занимается. в будущем скорее всего их перепишем на новых технологиях
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
это не джава, я так понимаю?
@maxlich9139
@maxlich9139 4 роки тому
@@SergeyNemchinskiy джава
@zena2405
@zena2405 3 роки тому
Помню еще в школе, в мохнатых 80-90 гг, я заметил, что бейсик на корветах нормально запускает программы без пробелов.. Пишешь чтото типа: fori=2toa
@dencelman
@dencelman Рік тому
👍
@_Mikekkk
@_Mikekkk 4 роки тому
Меня научил писать хорошо форматированный код мой приятель лет так 25 назад. Когда я гордо ему показал работающую программу на паскале или бейсике но она была написана в одну строчку здоровым слипшимся куском текста. :)) Он посмотрел и сказал - что это за херня, ничего не понятно. И я призадумался. С тех пор пишу с четким форматированием, осмысленными именами переменных и комментированием всего. Потому что на задворках всегда мысль - а ведь это кто-то может потом читать и будет ли ему понятно.
@DK-fg8sl
@DK-fg8sl 4 роки тому
Говнокод - это сленг у программистов, этого достаточно для новичков, когда я начинал в вебе, я многого не понимал в коде, чужих проектов, при этом написаны они были не плохо, просто мой уровень знаний не позволял понять этого. Спустя какое то время, я оценил чужой код, и понял, что он простой и понятный. Поэтому не переживайте, если ваш код считают гавном, просто старайтесь и делайте свой код лучше и лучше. Пределу совершенства нет для кода, его можно всю жизнь делать идеальным=)
@user-pn8vw8rr3m
@user-pn8vw8rr3m 4 роки тому
Говнокод - это когда "WTF-метр" зашкаливает у ревьювера.
@Rosko6nii90
@Rosko6nii90 4 роки тому
Очевидно. Автор этот может рассказывать любую фигню и я буду это смотреть...
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
ахаха. так мило :)
@WolfzPain
@WolfzPain 4 роки тому
немного решает проблему codacy (и прочие сервисы проверки залитого кода) и так же прекоммит стайлеры.
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Это не тот, что ругается на delete p; printf("%P ", p); ? Какое им дело до invalid pointer p? Такие тулы глубоко копать не станут. Часто ругают что-то очевидно не по делу.
@Konstantin_Terletskiy
@Konstantin_Terletskiy 4 роки тому
Да, вот я всегда стараюсь свой код делать понятным, если это Java, ещё и внятный Javadoc делать к нему. А иначе потом сам недели через две посмотришь и "блин, а зачем вот это?". Не говоря уж о других программистах, которые могут этот код потом пытаться понять.
@KlinovAS
@KlinovAS 4 роки тому
))))) Видал)))) Одна строчка кода и два абзаца комментария)))))))))))) Вышла такая поэма на 9 этажей)))))
@jurybounackoff3025
@jurybounackoff3025 4 роки тому
"И Ваш код никогда не заслужит название говнокода". .Ну Фоооокс))) Ситуация простая, каждый раз когда ты срочно в угоду заказчику делаешь костыли нужно просто ставить тэг: "Guanocode" .. и раз в неделю рефакториться. Совсем не писать говнокод заказчик скорее всего не позволит. Ну или недостаточно квалифицированные РП, работающие с заказчиками.
@user-db8ny4nk8l
@user-db8ny4nk8l 4 роки тому
Здравствуйте, Сергей. Можно тупой вопрос? Что вы думаете насчёт будущего php?
@homo-ergaster
@homo-ergaster 4 роки тому
Ничего хорошего он не думает. Он уже говорил в другом видео, что PHP - это язык для написания плагинов к WP.
@YKovalenko
@YKovalenko 4 роки тому
Да нормальное будущее. Все известные фреймворки будут жить ещё максимально долго. Например laravel и symfony или же YII2, всё так же востребованы весьма на рынке.
@user-db8ny4nk8l
@user-db8ny4nk8l 4 роки тому
@@YKovalenko интересно его мнение
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
Запишу видео :)
@user-db8ny4nk8l
@user-db8ny4nk8l 4 роки тому
@@SergeyNemchinskiy буду очень ждать)
@user-wx6qp3em9f
@user-wx6qp3em9f 4 роки тому
То что у вас в компании писали все по разному значит не было договоренности т е ревью не было Тим лид не о чем был
@vahivsky
@vahivsky 3 роки тому
Говнокод - это код который сложно поддерживать, он не обязательно сложночитаемый. Например, если в коде полно копипейста - в нём можно легко разобраться, но при поддержке придётся менять одну вещь в 10 местах. И наоборот, если в общий метод выносится то, что общим быть не должно - любые правки этого метода будут вызывать баги в неожиданных местах. Вот пара примеров говнокода в копилочку :)
@_Ivan_B_
@_Ivan_B_ 3 роки тому
8:24 Когда читаешь старые сообщения в фейсбуке или еще где то.
@ottercoder
@ottercoder 4 роки тому
Хорошо настроенные линтеры и код-ревью отлично помогают от говнокода
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
Это видео не о том, а объяснение новичкам - что же это такое
@ottercoder
@ottercoder 4 роки тому
@@SergeyNemchinskiy как его избегать будет отдельным видео?)
@mikech76
@mikech76 4 роки тому
А мы ввели ещё термин - школокод)
@karelalex
@karelalex 4 роки тому
Я тут на одном проекте пытался делать инъекцию говнокода , но старшие товарищи мешали, зато уже опытным проггерам не мешал никто, и они этим не часто, но регулярно пользовались. Ещё там же забавно появлялось то, что компания всем подряд не оплачивала идею ультимейт (я за свои кровные купил), в ультимейт есть анализатор кода, который периодически выдавал варнинги типа: твоя переменная будет всегда false, можешь не проверять. Или друг, ты же тремя строчками назад проверял на null, зачем ещё раз?
@dann1kid
@dann1kid 4 роки тому
что за ультимейт?
@karelalex
@karelalex 4 роки тому
@@dann1kid IDEA за денежку.
@robot_0121
@robot_0121 4 роки тому
Гвлнокод хорошо понимает только твой IDE и больше никто. Буду жениться на IDE.
@smert-chekistam
@smert-chekistam 4 роки тому
Класс
@MsSergey1313
@MsSergey1313 4 роки тому
А как быть в случаях когда для сохранения производительности или экономии памяти приходиться жертвовать удобочитаемостью? Напр. запихать в одну переменную некоторое количество разных булевых значений чтобы не тратить байт на хранение только одного тру или фолс.
@user-tf5bs6de6z
@user-tf5bs6de6z 4 роки тому
Некрасивый и дорогой финансовый код на Яве. В таких организациях это не воспринимается как говнокод - это кодстайл.
@JoeDoe-wr9bu
@JoeDoe-wr9bu 4 роки тому
Это не экономия, это - говно. Я бы еще мог понять если бы у тебя проект был на СПП, который имел местами вставки из ассемблера (что сейчас уже не критично). Но то что ты описал - это говно. Давай угадаю: у тебя еще и работа есть где ты числишься перспективным разработчиком?:)))))))))))))
@MsSergey1313
@MsSergey1313 4 роки тому
Joe Doe то что я описал является весьма полезной вещью при программировании микроконтроллеров. Иногда без этого тупо нельзя обойтись. Например при передаче данных через радиомодули которые могут передать байтов очень мало (за некоторый промежуток времени). У меня кстати есть видос на канале про ардуино и радиомодули.
@JoeDoe-wr9bu
@JoeDoe-wr9bu 4 роки тому
@@MsSergey1313 Для этой цели есть ассемблер , на худой конец с++. а то что делаешь ты - это говнокод.
@MsSergey1313
@MsSergey1313 4 роки тому
@@JoeDoe-wr9bu В критичных местах среда позволяет это вставить а в остальных просто нет смысла заморачиваться. И обычно я свой код понимаю спустя много времени без WTF благодаря высокоуровневости большей части написанного. Как вы думаете что будет если всё писать на ассемблере? Насколько будет лучше и понятнее?
@VitaliyNET
@VitaliyNET 3 роки тому
Жиза) Все верно сказано. Возвращаюсь к своему коду и WTFакаю .... who did this щет)))) А потом, ой этой был я со своей супер-пупер неразширяемой архитектурой.
@sashaprokipchuk4185
@sashaprokipchuk4185 4 роки тому
Сергей, здравствуйте. Я начинающий программист. На данный момент учу С++. Пока что пишу небольшие консольные приложения, где весь "проект" состоит из одного файла. И я не понимаю, как организованы настоящие проекты, как они работают... Не могли бы вы разъяснить разницу между консольными приложениями, и большими проектами?
@user-nu2jz1sb4s
@user-nu2jz1sb4s 4 роки тому
Для начала доучите С++ :) Большой проект - много разных файлов и классов, сложные задачи и т.п.
@sashaprokipchuk4185
@sashaprokipchuk4185 4 роки тому
@@user-nu2jz1sb4s ну вот, я понимаю, что много файлов ,но как они между собой связаны?..
@user-nu2jz1sb4s
@user-nu2jz1sb4s 4 роки тому
@@sashaprokipchuk4185 Большую задачу невозможно решить без декомпозиции. Будь то на процедуры, на классы, на модули, на что угодно. Декомпозиция - разбиение большой задачи на более мелкие. Ну к примеру, вам нужно написать программу, в которую вводится много данных, потому по ним просчитывается какая-нибудь статистика, и выводится в виде графика. И, грубо говоря, в файле input.cpp у вас функции для ввода данных, в файле statistics.cpp - просчёт, в файле diagram.cpp рисуются диаграммы. И какой-нибудь файл main.cpp дёргает в нужное время функции из других файлов. Это очень грубо и упрощённо. Если возникают такие вопросы, значит вы ещё не дошли до таких разделов, как заголовочные файлы, компоновка и т.п., и видео эти вам пока смотреть рано. Эти видео Сергея для программистов, которые уже готовы устроиться на работу, хотя бы джуниором.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
все верно, кроме того, что видео как раз и рассчитано на новичков, которые только начали изучать
@sashaprokipchuk4185
@sashaprokipchuk4185 4 роки тому
@@user-nu2jz1sb4s Спасибо, будем изучать!
@fermidist
@fermidist 4 роки тому
Было бы очень круто, если бы на каждое предложение "у нас на канале есть видео..", в углу видоса была бы на него ссылка
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
Было бы круто :) Надо заняться
@user-zl9bb7po6b
@user-zl9bb7po6b 4 роки тому
Сергей, расскажите, пожалуйста, о salesforce разработке. Что это и с чем его едят. На сколько перспективно с этим связываться, ваше мнение. Это ж вроде к java относится. Спасибо заранее!
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
Я уже рассказывал, вот тут: ukposts.info/have/v-deo/g6qDp5uJrmyKwIk.html , но пожалуй еще раз расскажу
@Zyozikexclusive_ZX
@Zyozikexclusive_ZX 4 роки тому
Из комнаты не издавалось ни одного WTF. Он подумал : " я написал офигенный чистый коТ" ))) Но в комнате , открыв редактор кода, программист мгновенно умер от такого Говно-кода.
@nochnoy_kot
@nochnoy_kot 3 роки тому
у говно кода есть история возникновения. какой-то важный иностраный тип стоявший у истоков - чем-то занимался. и не знал как правильно назвать определенное явление. у него родились дети. и он какбы "не такой код" сравнил с "детскими фекалиями", "вонючими пеленками" +- Без явной говно-агрессии. А в последствии когда оно вращалось в комьюнити на какой-то конференции - они это исказили до говно кода. Изначально это типа "smell " - ну короче плохо пахнет, а также "детский код"
@kobalt-tv-777
@kobalt-tv-777 4 роки тому
А можно ли считать говнокодом, много лишнего кода, где можно было бы обойтись более коротким вариантом кода? Например банальное применение if/else, где вполне подходит switch (). Ну или я вот читал книгу по этой теме. Где рекомендуется чтобы в одном модуле было не более 25 строк (Идиально). Ну максимум до 50 строк в один модуль. Говорят, что это не только оптимизация, но и увеличение степень обслуживаемости кода. Читабельность.
@alekseyshibayev5243
@alekseyshibayev5243 4 роки тому
Я свичи прошу переделать. Пиши так, чтобы читать было понятно. Пишешь 1 раз, читаешь 10.
@nickvirus9463
@nickvirus9463 4 роки тому
Это из за того что Вы не часто начинали проэкты - ушли в преподавательство?
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
:) Это особенность джава энтерпрайз
@user-cs6jq7re8z
@user-cs6jq7re8z 3 роки тому
Красивые самолеты хорошо летают))
@happywater7353
@happywater7353 4 роки тому
Коэффициент WTF.., надо будет запомнить..
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
не я придумал :)
@alexanderbelov6892
@alexanderbelov6892 4 роки тому
Когда я смотрю впервые на чужой код, я вспоминаю фильм Путь Карлито с горкой порошка на столе... Этот код надо не курить, его надо нюхать.
@evgeny_5891
@evgeny_5891 4 роки тому
Круто, как поставить 20-ть лайков?)
@splcell
@splcell 2 роки тому
Как вы чуваки любите все усложнять...
@soul-snatcher225
@soul-snatcher225 Рік тому
создал игру на Пайтон + библиотека tkinter, это был обычный кликер с прокачкой. буквально спустя пару месяцев, я решил заглянуть туда, что оказалось зря, короче там было такое дерьмище, плюс ещё и повторение кода. надеюсь вы знаете, что меня ждёт...
@legomonsters6888
@legomonsters6888 4 роки тому
Могу прислать много примеров 😉
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
вот уж нет :)
@legomonsters6888
@legomonsters6888 4 роки тому
Сережа, пока ты здесь, в одном из видео ты рассказывал что у тебя на курсах первое тестовое задание непростое, можно пример какую прожку надо написать? Просто подумываю пойти учиться но не хочется приходить совсем лошарой😁так сказать сам оценю свои нынешние способности😉заранее спасибо
@legomonsters6888
@legomonsters6888 4 роки тому
@@SergeyNemchinskiy обещаю без говнокода😁
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
@@legomonsters6888 развернуть слова, оставив на месте все не буквенные символы
@JoeDoe-wr9bu
@JoeDoe-wr9bu 4 роки тому
@@SergeyNemchinskiy regex
@YuriyRusinov
@YuriyRusinov 3 роки тому
Интересно, но Теорию Относительности Эйнштейна понимали немногие, говорит ли это, что он плохой ученый :-)
@den_8451
@den_8451 4 роки тому
А что делать если стоит выбор между производительностью и понятностью кода?
@antaki93
@antaki93 2 роки тому
Время программиста стоит дороже времени компьютера. Железки сейчас достаточно мощные. Если это не какая-то особо требовательная задача или особенно слабое железо, то читаемость в приоритете.
@pashaev81
@pashaev81 2 роки тому
При словах "до финиша профессии" поперхнулся чаем. А разве это не та профессия, которая закончится с жизнью? Это же не пилот, или пожарный, где есть определенные физ. кондиции, без которых ты не можешь выполнять свою работу. А тут пиши код, пока не рипнешся, если конечно тебе твоя работа нравится. А если не нравится, то зачем вообще было идти в ИТ
@a.inozemtsev
@a.inozemtsev 4 роки тому
Иногда ведь бывает непонятно, но совсем по другим причинам. Например неопытность
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
бывает, но чем понятнее написан код, тем легче его читать даже неопытному разработчику
@homoeximius
@homoeximius 4 роки тому
Автор не проводит код ревью на ранних этапах разработки, или там все пишут по tdd. Когда код написан и все работает, делать ревью уже поздно, тк велик соблазн оставить как есть, а переписывание говнокода займет еще время, и добавит багов. Говнокод можно(нужно!)выявить в самом начале, даже если еще ничего не работает.
@AsanSultanovNet
@AsanSultanovNet 4 роки тому
Слишком шаблонно и однобоко по поводу понятности кода. Частенько бывает так, что ваш код может понять очень крутой программист, так как он знает архитектуру и паттерны. А вот джуниоры не понимают, и херачат костыли там, где есть доступное API. При этом они свой код считают простым и понятным, что в конце концов выливается в тяжелейший рефакторинг, потому что изначально джуниорам влом заниматься нормальным проектированием, ибо на их взгляд это сложно и вредно.
@qweezique
@qweezique 2 роки тому
Первая работа джуном - и я пишу микросервисы с нуля)
@sergZh78
@sergZh78 4 роки тому
Я просто не обращаю внимания. Есть задача - исправить это, добавить то, вот тут. Делаю. Не получается иначе как костылём? Пишу костыль. Одним больше, одним меньше.. При этом понятия не имею как программа работает в целом. Т.к. это ведомо только тем, кто все это писал. А их судя по коммитам было с десяток.
@user-hy1zi3hu2c
@user-hy1zi3hu2c 3 роки тому
Непрограммист читал код программиста и понял "это г... код"
@stanislavkuzmin2611
@stanislavkuzmin2611 4 роки тому
Расcкажи про Spring)
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
спринг - это куча разных фреймворков. Что про них рассказать?
@IPWchild
@IPWchild 4 роки тому
Это конечно хорошая мысль, что говнокод - это код, который трудно понять другому человеку. Но тогда возникает вопрос - какому конкретно человеку? Новичку обычно вообще ничего не понятно, и вряд ли он может справедливо весь чужой код называть говнокодом. Следовательно, должна быть какая-то граница, переходя которую программист обретает моральное право более-менее справедливо классифицировать тот или иной код как говнокод. Дальше, другая ситуация - уважаемый программист не первый десяток лет в профессии, считает себя слишком опытным и достаточно крутым, чтобы не учить паттерны. И вот однажды он видит код более молодого специалиста, который применяет паттерны, не понимает этот код и называет его говнокодом. Опять какая-то не очень адекватная оценка выходит... Получается, хоть "говнокод" и относится к вкусовщине, должны быть какие-то хотя бы минимальные требования к эксперту, который оценивает код и выносит этот вердикт. И тогда мы переходим к еще одному каверзному вопросу - кто имеет моральное право составить список требований, которым должен соответствовать эксперт? Вот и получается, что вроде как говнокод и существует, а на деле это сферический конь в вакууме. Вот есть паттерны, и все согласны, что они полезны и удобны. А удастся ли кому-то написать книгу о говнокоде, с конкретными примерами, да такими, чтобы ни у одного читателя не возникла мысль "а чего, нормальный же код, он имеет право на жизнь"?
@pro_cap
@pro_cap 4 роки тому
Не первый десяток лет в профессии, и не смог оценить паттерн? Вы вообще паттерны видели? Они как бы полностью состоят из базовых концепций ООП, если программист работал 10 лет и не смог понять паттерн, то он работал с Excel. Другой вопрос - а уместно было вообще его использовать? Если молодой программист перегрузил код, напихав туда бездумно паттерны с фреймворками, то это и будет говнокодом. Применение любого кода должно быть прежде всего УМЕСТНО, а иначе стрельба себе по ногам.
@andrewvsk2368
@andrewvsk2368 4 роки тому
Попробуйте чистый C. Не C++, а именно C. Если втянитесь, внезапно окажется, что 90% "современных" приёмов - бесполезное дерьмо, только усложняющее код и тормозящее его работу сотнями дебильных переадресаций, и где брутально-тупой конечный автомат решил бы проблему в разы проще и быстрее. Сам сейчас присматриваюсь к Rust, хотя он медленно взлетает.
@kardashevr
@kardashevr 4 роки тому
@@andrewvsk2368 за растом будущее. только пока не очень понятно, как далеко это будущее находится
@andrewvsk2368
@andrewvsk2368 4 роки тому
​@@kardashevr далеко, + не факт что за Растом будущее. Rust хороший язык, но он не очень хорошо интегрируется с C. C живёт вовсе не потому что это самый быстрый язык (не считая нативного ASM), а потому что это самый простой язык и эффективный язык. + Когда человек пишет на C достаточно сложную программу, он автоматически реализует многие устоявшиеся паттерны проектирования из ООП. В C нет наследования, все абстракции реализуются композициями из структур и функций. Сокрытие создаётся средствами языка: правилами области видимости. Фабрика - это неотъемлемая часть даже маленькой программы на C, т.к. нам нужно всегда правильно создавать и удалять структуры данных. В результате человек, пишущий на C вообще никогда не допустит тех ошибок, с которыми могут столкнуться программисты на Java, при этом Java декларирует высокую скорость разработки! Высокая скорость только там, где ПО можно собрать из встроенного говна. В противном случае C эффективнее. И кстати ещё об ООП - C++, Java, C# - это НЕ ООП. Ни в одном языке не реализуется парадигма "всё объект", а отправка сообщений реализуется не средствами языка, а средствами костылей. Сами языки, если убрать всё лишнее просто надстройка над обычным императивным методом программирования, некоторые из которых скорее даже вредны! Например, в любой книге по паттернам очень критикуется Наследование, а ведь это один из столпов ООП (в отличие от инкапсуляции и полиморфизма, которые ООП просто присвоило себе, полиморфизм есть в любой большой программе! его можно реализовать на С, причём даже несколькими способами! (определение типов или указателями на функцию). В C# наследование используется ради перегрузки методов, ради последующего полиморфизма (и даже это не всегда хорошая идея) (это могут быть интерфейсы или абстрактные классы). Другое применение наследования уже вообще гарантировано создаёт говнокод. То есть как всегда: придумали, пропиарили, написали эксабайты говнокода, а теперь думаем что с этим делать.
@user-pn1hh8ez7e
@user-pn1hh8ez7e 4 роки тому
Есть куча книг как не писать говнокод, например Code Complete.
@sergeyfamiliy2781
@sergeyfamiliy2781 4 роки тому
Побежденные программисты должны писать программы на языке победителя!
@HITROME
@HITROME 3 роки тому
У меня вопрос: на сколько методов нужно разбивать метод main с "Hello World!", чтобы этот код не могли назвать "говнокодом"? ;-)))))))))))) А то, говорят, что современным начинающим программистам читать такой код трудно ;-))))
@kalyonee4565
@kalyonee4565 2 роки тому
сейчас есть линтеры, которые помогут с кодстайлом
@user-il3cx7uq2t
@user-il3cx7uq2t 4 роки тому
Здравствуйте. А комментарии превращают говно код в норм код?
@LayronPK
@LayronPK 4 роки тому
Задам вопрос всем шарящим. Я молодой программист, учусь на магистратуре, за плечами 4 года бакалаврата и пару-тройку языков программирования на каком-то уровне. Уже вроде пора и на работу, но без опыта никуда не берут, поэтому пришлось идти не куда хочу, а куда возьмут. Ну и попал в компанию которая разрабатывает на делфи. Задачи не сильно интересные, но в качестве опыта неплохо. Так вот спустя пару месяцев понял чего хочу сейчас: в геймдев. Но сначала нужно хотя бы годик наработать и выучить нужный язык... А нужный это какой? На чём сейчас пишут геймдевелоперы? Слышал раньше что на плюсах... Только не кидайтесь помидорами пожалуйста.
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
да,в основном на плюсах, если говорить о 3д играх. А если казуалки, то на чем только не пишут. Вот на юнити (си-шарп) например
@razorprod4097
@razorprod4097 4 роки тому
Кроме языка в геймдеве надо хорошо знать движок на котором будешь прогать, потому что он напрямую влияет на твой код. В каждом движке есть свои особенности которые нужно учитывать при написании кода. Одного языка будет недостаточно, это мягко сказать.
@user-ux7yu2kb4k
@user-ux7yu2kb4k 4 роки тому
вижу говнокод ставлю лайк не смотря
@user-br1nt8tb9h
@user-br1nt8tb9h 4 роки тому
Со всем согласен, но... Когда "...и заказчик-дурак тычет мышкой в картиночки гордо..." - от этого почему-то становится горько. К слову. Языки вроде Python и Ruby буквально принуждают к правильному оформлению кода.
@JoeDoe-wr9bu
@JoeDoe-wr9bu 4 роки тому
Про говнокод есть другая более интересная тема: каждый раз когда в той или иной компании я встречаю существующий проект, то примерно в 90% это говнокод и у меня всегда лишь 1 вопрос: как люди пишущие это говно получали эти позиции, в то время как тебе приходилось хрен знает что сделать чтобы попасть туда.
@Anatoly555
@Anatoly555 4 роки тому
А всё потому, что теория, которую рассказывают в видосах - это одно, а практика это совсем-совсем другое.
@iex32
@iex32 4 роки тому
ситуация поменялась, теперь требования не БЫСТРО а КАЧЕСТВЕННО
@igoraleksandrovich1498
@igoraleksandrovich1498 4 роки тому
@@iex32 Это где такое? В любой сфере заказчик хочет быстро, а на качество плевать.
Какие инструменты есть у программиста?
22:01
Sergey Nemchinskiy
Переглядів 44 тис.
Что такое Git? Зачем он нужен?
14:30
Sergey Nemchinskiy
Переглядів 134 тис.
В каком редакторе пишут код? Что такое IDE?
12:58
Установки, которые МЕШАЮТ ВАМ ЖИТЬ
27:16
Андрей Курпатов
Переглядів 1 млн
Junior, Middle, Senior - что делают на работе?
12:30
Sergey Nemchinskiy
Переглядів 194 тис.
Все говорят, что Java - очень сложно. Это правда?
10:16