Программирование для чайников

Программирование для чайников Программирование, Для чайников, Скриншот, Комментарии на Пикабу, История, Длиннопост, Наглядно, Объяснение

#comment_176614661

Скриншоты комментов

55.7K постов39.8K подписчика

Добавить пост

Правила сообщества

В сообществе можно размещать ЛЮБЫЕ скрины (комментов) с любого сайта!!



ПРИКРЕПИТЬ ССЫЛКУ НА КОМЕНТ ЕСЛИ ОН С Пикабу желательно, но не обязательно!!!

Если скрин не с пикабу, а со стороннего сайта( Твиттер,. Вк, Одноклассники и т.д.) то ссылка не обязательна.

Для сообщества подходит любой скрин, набранный на клавиатуре, даже если это не диалог (под вид Твита) Так же подходит скрин с картинкой и хотя бы одним комментарием под ним, с любого источника.

Вы смотрите срез комментариев. Показать все
566
Автор поста оценил этот комментарий
ну, блин...была же жесть.😁

Пикабу!

Чужой код

1way2pray, 9 марта 2018

Меня недавно спросили, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть пиздеца. Решил привести небольшую аналогию:

Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: "УТЕЧКА ЯДОВИТОГО ГАЗА!!!".
- Как так-то, блять! Должно же работать! - в отчаянии кричишь ты и звонишь прошлому прорабу:
- Вася, у нас ядовитый газ потёк! В чем проблема?
- Не знаю, должно было все работать. Что-то в проекте менял?
- Немного, швабры вынес...
- Швабры потолок держали!
- Что??? Что, блять, извините???
- Говорю, швабры потолок держали. Над ними цистерны с газом были. Очень тяжелые, пришлось в комнату снизу швабры напихать.
- Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?
- Включай вентилятор. Он сдует газ с острова.
- Я его, блять, демонтировал сразу же!
- Зачем?
- Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик блядских ПРОТИВОГАЗОВ?
- Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.
- Вася, я убрал твой вентилятор! Мы тут задыхаемся!
- Херли вы тогда там делаете? Садитесь на воздушный шар и уебывайте!
раскрыть ветку (77)
128
Автор поста оценил этот комментарий
Есть такое явление, как говнокод, и в этом случае работа со своим кодом может выглядеть так уже через месяц, а в запущенных случаях даже раньше)
раскрыть ветку (63)
71
Автор поста оценил этот комментарий
Что ни вакансия, пишут нужен работающий код, а не идеальный. Как отличить работающий от говнокода ?
раскрыть ветку (38)
64
Автор поста оценил этот комментарий
Как не удивительно, но говнокод чаще всего работает. Не оптимально, порой с багами, но работает...
раскрыть ветку (17)
90
Автор поста оценил этот комментарий
Проблема говнокода не в его работоспособности. Он может идеально быстро и верно решать поставленные задачи. Проблема в поддержке говнокода и в его развитии.

Пишите код так, словно поддерживать его будет психопат со склонностью к насилию, который знает где вы живёте. (с) не моё
раскрыть ветку (6)
14
Автор поста оценил этот комментарий

Ну ещё проблема говнокода в времени исполнения.

Когда пишете небольшую программу или плагин, то ничего страшного.

А вот если вы пишете ОС...

раскрыть ветку (5)
13
Автор поста оценил этот комментарий
Ну ещё проблема говнокода в времени исполнения.

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

раскрыть ветку (2)
13
DELETED
Автор поста оценил этот комментарий
Есть разные варианты. Говнокод - обычно такой код, который сложно поддерживать и модифицировать. Как правило это из-за того, что он сложно читается, не соответствует общепринятым нормам (например SOLID), использует так называемые костыли и велосипеды. Он может быть производительным, а может не быть.
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

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

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

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

Ну и бывают ситуации когда говнопрограмма написана говнокодом.

Я вам не противоречу. Неоптимальное время и алгоритмы работы это тоже говнокод.
14
Автор поста оценил этот комментарий
Так говнокод это ж не характеристика работоспособности, типа, код говно, не работает. Это характеристика близости к идеальному коду. Хм, ну как близости, скорее степени удалённости и ветвистости пути от исходных данных до результата. Такая же как индийский код и китайский код
раскрыть ветку (8)
3
Автор поста оценил этот комментарий
А "китайский код" это, извините что такое?
Иллюстрация к комментарию
раскрыть ветку (7)
13
Автор поста оценил этот комментарий
Отсутствие циклов. Полное отсутствие циклов. И да, на этот код вы будете пялиться, как этот заяц
раскрыть ветку (6)
2
Автор поста оценил этот комментарий
Тогда чем отличается "индусский" от "китайского"? Я думал безцыкленность это фишка Индии.
раскрыть ветку (5)
6
Автор поста оценил этот комментарий
Индийский код, как правило, отличается монстрячностью, размерами и реализацией принципа "ковыряние в носу левой ногой через правое плечо"
раскрыть ветку (4)
Автор поста оценил этот комментарий
Спасибо! Вы сделали мой день!
раскрыть ветку (3)
Автор поста оценил этот комментарий
А вы что, не встречали такое?
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

То что не работает, это просто недописаный/неправильный код. Говнокод - это по определёнию уже что-то рабочее.

30
Автор поста оценил этот комментарий
Как бы объяснить? Месяц назад примерно разбирал какой то интернет магазин на битриксе. Надо было им логику конфигуратора товаров чуть поменять. Так вот. Функция добавления товара в корзину была написана руками. Это листинг JS где то строк на 150. Это не много на самом деле. Но. Например там был такой вот метод - function ap(context). Упростил, чтобы не вдаваться в детали. Вот это "ap" - это название функции. В хорошем коде название функции несет в себе ее смысл. В большинстве случаев нет необходимости разбирать подробно что оно делает. Т е. Функция с именем, например clearCart скорее всего очищает корзину. Что и делала эта самая "ap". И такие наименования по всему коду. И не только в js. Стилевые классы типа - z, z1, z11 и тд. Все это работает. Машине пофиг как и что где называется. Но человеку который это написал было насрать кто, как и когда будет поддерживать его код. Вот таких и называют - говнокодер.
раскрыть ветку (14)
4
Автор поста оценил этот комментарий
Так может через минификатор код пропущен ?) Переменные тоже a,b,c ?)
3
Автор поста оценил этот комментарий
Ага, я когда только начинал обучение, у меня все названия были в транслите... Русские слова латинскими буквами :D
раскрыть ветку (7)
10
Автор поста оценил этот комментарий
Ошибаться - не плохо. Плохо - продолжать ошибаться. Из-за своих первых проектов мне пришлось поменять профиль на гите. Слишком стыдно.
раскрыть ветку (5)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий
Да, но. Пара моих коллег из Норвегии с вами сильно не согласны. Они бы предпочли "ар".
раскрыть ветку (1)
Автор поста оценил этот комментарий
Если проект интернациональный, то транслит плох - это да. Но обычно в таких проектах код подходит через ревью, никто не комитит в мастер напрямую.
1
Автор поста оценил этот комментарий
А их нельзя удалять?
Автор поста оценил этот комментарий

перевел бы все репы в приватные :) и всего делов

8
DELETED
Автор поста оценил этот комментарий

Помню писал РПГ игру, и там из трупа персонажей выпадали мешки (класс Meshok) с лутом. Поле, хранящее коллекцию с мешками, я назвал Meshoks, так как коллекцию принято называть на английском языке во множественном числе.

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

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

Автор поста оценил этот комментарий

Давно с битриксом работаете? Аудит делаете?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Мне скорее "приходится" с ним работать. Он не так уж и плох, но уж слишком у него "своя экосистема". Много специфики. Не мой профиль, извините.
2
Автор поста оценил этот комментарий

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

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

раскрыть ветку (2)
DELETED
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

О, запрос 1С. Сразу видна рука Мастера в работе с иерархическим справочником.

7
Автор поста оценил этот комментарий

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

6
Автор поста оценил этот комментарий

Поддержкой и внесением изменений )

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


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

На идеальный код уйдёт минимально возможное время

На говнокод... Нуу. Есть шанс, что его придётся переписывать вообще заново.

1
Автор поста оценил этот комментарий
Смотри мой коммент в этой же ветке. Я разработал теорию что не говнокода не существует. Весь код написанный человечеством это говнокод.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

а еще один чувак разработал теорию, что земля плоская:)

1
Автор поста оценил этот комментарий

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

22
Автор поста оценил этот комментарий

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

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

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

Иллюстрация к комментарию
2
Автор поста оценил этот комментарий
Не все пишут. Была задача, дали одному разрабу, он месяц бился - ничего по факту не сделал. Я за 3 недели с нуля нарисовал. Работает, масштабируется и настраивается через базу. Через три года нашли косячок - за день нашел место. ООП сила + комментарии...

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

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Можно поинтересоваться, кто вас обучал программированию?
10
Автор поста оценил этот комментарий
с большим опытом ко мне пришло понимание что любой код это говнокод ну просто по определению. Если код не говнокод, то он идеален и в нем нечего менять. А если в коде нечего доделывать то нам, программистам нечем платить за ипотеку. Код может быть только приемлемым в определенный момент времени. Именно поэтому не бывает не говнокода. И именно поэтому когда заглядываешь в свой код спустя год, то первый вопрос это что за мудозвон это писал?
раскрыть ветку (6)
5
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

чушь отрицающая понятия масштабируемости

раскрыть ветку (4)
2
Автор поста оценил этот комментарий
Ну вот подрастете, оглядитесь и поймете.
раскрыть ветку (3)
1
Автор поста оценил этот комментарий

да я уже понял, что вы бред написали :) я 30 лет в бизнесе 😁

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Как нынче арбузы продаются ?

Автор поста оценил этот комментарий
Ну я типа того тоже
Автор поста оценил этот комментарий

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

Ну и, конечно, устаешь от такого скотского отношения к коду, и от невозможности что то изменить. Раз в квартал начинать с чистого листа бесплатно - тяжело.


А потом бах - и вдруг ты 1Сник, и все в порядке.

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

Когда видишь свою пасту на пикабу

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
ну а где ей ещё быть?🤔😁
25
DELETED
Автор поста оценил этот комментарий
- Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик блядских ПРОТИВОГАЗОВ?
- Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.

О, господи, это пять! xD

раскрыть ветку (1)
11
Автор поста оценил этот комментарий
Простенький корпорат страниц на 10. Статика. Но собранный на webpack. И package.json на 800 строк. Бля я стока старого говна в жизни разом не видел. Одних лоадеров штук сорок. Консоль при сборке выдала новую редакцию Британники. Это и есть тот самый вентилятор. Когда то, кто то собрал болванку. И ее юзали. Долго. В извращённой форме. И это еще относительно безобидный вариант. Так часто бывает когда не пишут с нуля, а переделывают старое. Часто нет времени почистить наследие от предков.
5
Автор поста оценил этот комментарий
Ух, первый прочитанный мною пост на пикабу :3
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

За 2 года и 3 месяца на Пикабу? Офигенно! Реально впечатляет. ))

Автор поста оценил этот комментарий

В строительстве так же, каждый следующий прораб кроет хуями предыдущую тригаду.

Автор поста оценил этот комментарий

И вдруг оказывается, что разговариваешь сам с собой

ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку