Страница 1 из 1

Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 10:51:18
AlexandrRa
Меня недавно спросили, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть 3,14здеца.

Решил привести небольшую аналогию:

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

— Как так–то, бл@ть! Должно же работать! — в отчаянии кричишь ты и звонишь прошлому прорабу:

— Вася, у нас ядовитый газ потёк! В чем проблема?

— Не знаю, должно было все работать. Что–то в проекте менял?

— Немного, швабры вынес...

— Швабры потолок держали!

— Что??? Что, бл@ть, извините???

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

— Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?

— Включай вентилятор. Он сдует газ с острова.

— Я его, бл@ть, демонтировал сразу же!

— Зачем?

— Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик бл@дских ПРОТИВОГАЗОВ?

— Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.

— Вася, я убрал твой вентилятор! Мы тут задыхаемся!

— Херли вы тогда там делаете? Садитесь на воздушный шар и уе%ывайте от туда!

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 11:17:38
Martian
В тему соседней ветки про мат: какой смысл заменять в матерных словах символы? Как где-то прочитал в интернете: это всё равно, что минет на площади среди кучи людей прикрывать ладошкой

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

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 12:48:22
AlexandrRa
А если не задокументированный, без комментариев и на ассемблере, да ещё и микроконтроллер новый?
(в смысле ещё не изученный)

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 13:04:10
Martian
тоже хорошо - добавляем младших три ноля к цене ;)

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 15:03:44
JMC.Hard
[uquote="Martian",url="/forum/viewtopic.php?p=4243298#p4243298"]тоже хорошо - добавляем младших три ноля к цене ;)[/uquote]Ннну, и останешься без работы ... :)

А по поводу вышесказанного ... интересно разбираться в чужом коде когда есть исходник с комментариями, а оно, таки оОочень редко попадается :)
Занимался программированием много лет, и не свои программы приходилось разбирать и переделывать ...
Своя программа сделана по твоей логике, она тебе (даже и без комментариев) будет всегда понятна. Самое страшное в чужой программе -- понять логику, въедешь -- всё пойдёт! Даже на незнакомом тебе (до этого) языке программирования ... :wink:

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 15:31:10
Eddy_Em
[uquote="JMC.Hard",url="/forum/viewtopic.php?p=4243359#p4243359"]Своя программа сделана по твоей логике, она тебе (даже и без комментариев) будет всегда понятна.[/uquote]
Во-во, мне коллега все, как ни взглянет в мой код, говорит, мол, надо бы тебе уже на С++ переходить — все ООПщину в С тащишь ☺ Но мне С нравится: простой ЯП, не требующий постоянно шарахаться по интернету в поисках документации (ман почитал в консоли - и готово), да и логика простая (не то, что классы с шаблонами). Я уж молчу о времени сборки: мой код собирается за несколько секунд, у коллеги же g++ может минуту пыхтеть!

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 16:05:47
AlexandrRa
Ну, у меня 4 месяца ушло, чтоб её разобрать (и то честно говоря не до конца всё понял, т. к. писалась она как говорили мне шаблонами(присутствовали лишние куски кода на мой взгляд))

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 10, 2022 18:35:46
Martian
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4243363#p4243363"]все ООПщину в С тащишь[/uquote]Аналогично! Притом, был период наоборот, когда рванув за всеми в ООПнутые языки, долгое время работал в них с минимумом ООП :)
Но вот сейчас, всё более увлекаясь С#, мне как-то становится неловко в обычном С...

Добавлено after 3 minutes 34 seconds:
Про комментарии: до сих пор вспоминаю исходники TMSSoftware для Delphi, комментариев там было минимум, но все по существу, а один звучал примерно так: "Мы не понимаем, почему не работает, если не добавить 1" :))
Вот именно на их исходниках я нехило продвинулся в Delphi. На исходниках Reogrid очень сильно скакнул в C#

Так что, хорошие чужие исходники - это отличный опыт может быть.

Добавлено after 2 minutes 17 seconds:
[uquote="AlexandrRa",url="/forum/viewtopic.php?p=4243395#p4243395"]Ну, у меня 4 месяца ушло, чтоб её разобрать (и то честно говоря не до конца всё понял, т. к. писалась она как говорили мне шаблонами(присутствовали лишние куски кода на мой взгляд))[/uquote]Зато это наверняка улучшило понимание ТЗ в целом, и возможно, есть возможность предложить заказчику вариант создания лучшей версии? За отдельные деньги, разумеется :)

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Пт июн 24, 2022 08:20:37
Муркиз
Не будьте уверены, что ваш код самый оптимальный.
Разобравшись в чужих алгоритмах, найдете пути улучшения своих.

Re: Почему программист ненавидит ковырять чужой код

Добавлено: Вт окт 25, 2022 09:25:09
Morroc
[uquote="Муркиз",url="/forum/viewtopic.php?p=4249901#p4249901"]Не будьте уверены, что ваш код самый оптимальный.[/uquote]
Мало того, он может быть даже оптимальным, но нечитаемым - это к вопросу от "своей логике", причем ООП там или нет по барабану. Есть любители наплодить по функции на каждое элементарное действие, а внутри функций еще раз так сделать - на первый взгляд вроде даже и ничего смотрится... пока не всплывет какой нибудь необычный баг и не придется это отлаживать кому то другому.