Чужой код

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


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

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

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

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

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

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

- Что??? Что, блять, извините???

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

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

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

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

- Зачем?

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

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

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

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

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

А потом придет другой программист и перепишет то что ты сделал, потому что говнокод.

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

Искренне соболезную :'(

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

Реально, швабры зря убрал! Надо было дверь заколотить и все!

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

А ты опытный

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

А подумать почему обратились к тебе переделать  или доделать не судьба?  Какая причина заставила спецов , работавших до вас, свалить оттуда?   Или концепция кидалова меняет свою суть в России в зависимости от вида деятельности?   

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

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

Хотя в мире ИТ(и удалённой работы) сейчас, "джамшутами" и "быдло кодерами"(как и проблемными заказчиками) считаются индусы.

1
Автор поста оценил этот комментарий
ыы друг другу подходите
75
Автор поста оценил этот комментарий

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

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

И кнопку поставил с таймером, которая ничего не делает!!!

раскрыть ветку (2)
7
DELETED
Автор поста оценил этот комментарий
Как не делает? А магнит что отключает? Падающий с пальмы и разбивающийся кокос?
раскрыть ветку (1)
7
Автор поста оценил этот комментарий

Кнопка делала бекапы.

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

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

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

Конкретно этот сериал именно так и делался)

4
Автор поста оценил этот комментарий
там, походу, целая команда разработчиков сменилась.

причем у всех был обет молчания и они друг с другом не общались.

а костылей раскидали...! по всему острову

193
Автор поста оценил этот комментарий
Доделывать за другим - это пиздец.
Занимаюсь ремонтами квартир и если мне звонят и говорят: у нас мастер наш куда то пропал, вы не могли бы доделать. Сразу НЕТ. Или мастер нахуевертел, или заказчик еблан. Пару раз наступал на эти грабли, хватит
раскрыть ветку (15)
44
Автор поста оценил этот комментарий

Думал, скопирую чужую программу, часть перепишу, а пришлось переписать почти все. Теперь так не делаю.

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

- А чего так дорого? Там же делов на пару часов, я бы сам сделал, да времени нету!

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

Я думал скопировать у себя. И спустя два часа начал писать заново

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

А мы соглашаемся, но за двойную оплату

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

и 100% предоплату.

раскрыть ветку (6)
6
Автор поста оценил этот комментарий
Это главное. Обычно если пред.разраб свалил, то скорее всего не он свалил, а его кинули.
раскрыть ветку (5)
2
Автор поста оценил этот комментарий

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

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

договоры оформлять?

2
Автор поста оценил этот комментарий
Мы про разработчиков или строителей?


Хотя и там и там бывают конечно кидают клиентов. Но это примерно 1 случай на 100. Во много раз чаще кидают именно исполнителей, что среди строителей, что среди разработчиков.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Зависит от ниши, специализации и ценового сегмента. Как правило если "за миску риса второй фейсбук к завтра сделать" просят или предлагают, то 99% что будут головники для второй стороны.
Автор поста оценил этот комментарий
в отношениях исполнитель-заказчик мудаков 50/50. Причем и тех и других больше в низовом ценовом сегменте. Заказчик, сбивающий цену, или исполнитель-демпенгующий - крайне подозрительные люди
ещё комментарии
93
Автор поста оценил этот комментарий

А мне вот грустно стало, после прочтения. Жизненная ситуация...

раскрыть ветку (22)
169
DELETED
Автор поста оценил этот комментарий
Часто приходится на шаре улетать?
раскрыть ветку (20)
114
Автор поста оценил этот комментарий
На швабре
раскрыть ветку (10)
73
Автор поста оценил этот комментарий
Потому что шар хоть и сделали, но не протестировали. И когда прораб решил проверить его, то выяснилось, что шар то каменный, с запаянным дном, но с кучей отверстий по бокам и сверху(с табличками на каждой: "TODO: доделать позже") - лететь не хочет.


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

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

Он написал коммент TODO!? Тебе попался какой-то высококвалифицированный программист.

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

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

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

Любой популярный. Сейчас питона и Жабы уже много.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ага, ага.
5
Автор поста оценил этот комментарий

В нашей деревне за такое сжигали

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

Я понял: ад - это хаос, да?

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

Секундочку, уже в пути

Иллюстрация к комментарию
12
Автор поста оценил этот комментарий
На лодке
8
Автор поста оценил этот комментарий

Если в комнате стоят швабры, это наверное не просто так

раскрыть ветку (5)
25
Автор поста оценил этот комментарий
Нихрена подобного. Тысячу раз видел просто валяющиеся швабры, и чего уж там греха таить сам оставлял, ибо лень было убирать.
раскрыть ветку (4)
20
Автор поста оценил этот комментарий
Это ты думаешь что "просто так", а потом выясняется что их дёргает какой-то скрипт, который валяется не пойми где на сервере и стартуется кроном каждый 5 вторник, если он не выпал на чётное число или праздничный день.
раскрыть ветку (3)
2
Автор поста оценил этот комментарий

Каждый пятый вторник может быть только 29-30-31-ым числом месяца.

Из всех 13-ти возможных календарей остаются от двух до трёх возможных даты, например: 31.01.17 29.08.17 31.10.17 или 29.05.18 31.07.18

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

Это ерунда, когда вы докопаетесь до момента проверки вторников, скрипт то кроном вызывается каждые 10 минут, увидите что оне ещё не должен выпадать на пятницу. Не спрашивайте почему вторник на пятницу, так в том скрипте написано. :-)

3
Автор поста оценил этот комментарий
Не улетать,а уёбывать! Это разные вещи.
4
Автор поста оценил этот комментарий

"Я улетаю на большом воздушном шаре.." Нашёл песенку на выходные, спасибо

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

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

Предусмотрел и вентилятор и воздушный шар.

В реальности было бы так: убрал швабры, все взорвалось, ищем виноватого.

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

Даже я, далёкий от программирования, понял эту прекрасно написанную аналогию!

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

Поржал от души)

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

С баша:


Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?

Программист: ну представь, что ты писатель и поддерживаешь проект “Война и мир”. У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь “шёл дождь”, сохраняешь, вылетает сообщение об ошибке “Наташа Ростова умерла, продолжение невозможно”. Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение “Поручик Ржевский умер.” Выясняется, что он в следующей главе облокачивается о столб, которого уже нет..."


rol_foster: Сегодня полдня искали ошибку, из-за которой, образно говоря, у Наташи при прогулке с Пьером падают трусы. Одна из функций программы делает то, что делать не должна. Откатили на вчера - трусы на месте. Перелопатили весь код обновления, там вообще ни трусов, ни Наташи, ни даже Ржевского, тупо красят дом Болконских. Чуть ли не пошагово разбираем - все нормально. Но трусы падают. И, чтобы найти причину, придется перелопатить весь код, а это недели две минимум.

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

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

с того же баша прекрасная цитата про косты^w вентиляторы и швабры:


Ошибка: робот погибает при попадании в него гранаты (именно от попадания, а не от взрыва) Д - дизайнер, П - программист.

Д: программисты всё сломали! почему так получается?!


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


Д: да?! а чтобы граната в воде тонула!


П: а почему она с нормальной массой не тонет?


Д: а потому что у воды плотность большая! (прим.: больше, чем у ртути)


П: а почему плотность такая большая?!


Д: а чтобы ящики деревянные плавали!


П: а почему они иначе не плавают?!


Д: а потому что у них масса 50 кг!


П: а зачем такая масса?!


Д: а иначе они некрасиво разваливаются!

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

Господи, как же это жизненно.

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

Всё просто, добавить пару нулей к здоровью робота...

раскрыть ветку (20)
56
DELETED
Автор поста оценил этот комментарий
и прийдется заново балансить всю игру
раскрыть ветку (17)
31
Автор поста оценил этот комментарий

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

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

-щепотку минимизируем отдачу у ствола xxx

-(геймкомюнити) аааааа! Ствол xxx ОП, нубы понабрали пвлку-нагибалку

-ах так? Тогда неры все стволы нахер!!! И xxx больше всех!

* EA Games ChanGes everything

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

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

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

А сколько хп в реале отнимает пуля от АКМ, к примеру?

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

Зависит от места попадания и брони которая на тебе надета.


Во многих играх уже есть эта наработка но до своего пика она не доведена.

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


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


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


Думаю ХП должно быть не у человека, а у его брони. Все же бронежилет может в один момент перестать останавливать пули. Причем у шлема, тела, и коненостей по отдельности.


И тут мы подходим к тому что должно быть у человека? Кровь. Нет серьезно, если тебе не попали в жизненно важные органы ты не умрешь. Человек очень живуч сам по себе. Но ты можешь скопытиться со временем и в условиях скорости шутера, самая вероятная смерть от кровотечения.


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


И так, у нас АКМ, калибр 7.62. допустим на ГГ надет 4й класс защиты, кевлар, выстрел в тело.

Бах, броня спокойно останавливает пулю, ГГ получает толчок в грудь и помутнение экрана на доли секунды, больно же.  Кевлар выдерживает около 10 попаданий, а если его ремонтировать то и за 100. Бронежилет теряет 5-10%, допустим 8% прочности.

2й бах. Учитываем износ бронежилета и даем ему возможность остановить пулю лишь в 100-8=92%. Если пуля прошла через нашу броню, то считаем куда она попала, и сколько крови теряет наш герой в зависимости от калибра, так как у каждого свое останавливающее действие, которое и нужно учитывать. Если нет то опять отнимаем 5-10% прочности и делаем 3й бах.


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

раскрыть ветку (2)
11
Автор поста оценил этот комментарий
Потом придется поднимать урон от взрыва гранаты, чтобы она могла убивать противников.
И в итоге окажется, что взрыв гранаты уничтожает весь город
20
Автор поста оценил этот комментарий

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

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

И понерфить арту Грилль,на которой ебашил всех подряд и если даже оставался один против 4-х, то и их ебашил...Сукиии...разрабов сжечь и расчленить, затем строго расстрелять 10 раз подряд...

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

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

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

А ещё когда-то был супернагибатор КВ-5

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

Этот, дырявосисечный? Не смеши.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
вот и получается не код, а "00"


прим. означает туалет.

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

просто поставить проверку на попадание гранатой, здравствуй говнокод

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

http://voron-vp.livejournal.com/42033.html?page=3

На эту тему есть классная история)

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

Тот самый кролик из песочницы, который стал рейдовым боссом...

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

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

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

Парень, нельзя же так! Ссылка осталась, или название помнишь?

раскрыть ветку (1)
7
Автор поста оценил этот комментарий
Автор поста оценил этот комментарий
Предпросмотр
Автор поста оценил этот комментарий
Хрен с ними с ящиками) Пусть плавают!
38
Автор поста оценил этот комментарий

Если речь про Войну и мир, то Ржевский вообще троян.

13
Автор поста оценил этот комментарий
Могу переделать эту тему под врачей:
приходит пациент, говорит что ц него болит вот тута! С собой каких документов, сам говорит, что прошлый доктор сказал, что у него что-то с сердцем, почками и анализ крови плохой. Карту пациент потерял, таблетки пил какие-то розовенькие. Ну все, можете, доктор, начинать решать задачу с дохералионом неизвестных.
13
Автор поста оценил этот комментарий

Поручика Ржевского нет в Войне и Мире

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

Это было жесточайшим обломом в те времена, когда мы проходили ВиМ в школе.

раскрыть ветку (1)
32
Автор поста оценил этот комментарий
Особенно когда у доски ты начинаешь рассказывать, как Наташа была безответно влюблена в Ржевского.
17
DELETED
Автор поста оценил этот комментарий
это артефакт из библиотеки соседнего анекдота проекта
16
Автор поста оценил этот комментарий

Вот его нет, а на события всё равно влияет.

7
Автор поста оценил этот комментарий
Для этого уже давно придумали TDD. Обкладывать огромный проект тестами и допиливать.
раскрыть ветку (6)
21
Автор поста оценил этот комментарий

Когда в проекте указано 100% покрытие тестами

Иллюстрация к комментарию
раскрыть ветку (5)
18
Автор поста оценил этот комментарий
Это рэп или хокку?
раскрыть ветку (3)
7
Автор поста оценил этот комментарий
Это на эльфиском.
2
Автор поста оценил этот комментарий
Это jest
Автор поста оценил этот комментарий

Это из Квинов:
Экспектед би трууу
....
Фсьооо фооолс!

Автор поста оценил этот комментарий
Вот только тест такой не проканает если true=false)
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
Автор поста оценил этот комментарий

тесты писать не пробовал?

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

ШЕДЕВРАЛЬНО !!!

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

А у кого-то поднятое вдвойне =)
Решила я с утра перекусить в МакДаке. В такое время людей почти нет. К слову, живу в одной жаркой европейской стране, русскоязычных тут встречаю не часто. А тут за пару столиков от меня сидит молодая пара и девушка увлеченно рассказывает какую-то заавную историю. Я слушала в пол уха, но уловила что-то про огромные вентиляторы и комнату со швабрами... И через минуту, достав телефон, листаю ленту Пикабу и вижу эту историю! Никогда еще я не чувствовала такого единства с пикабушниками!)
P.S. К сожалению, ребята ушли до того, как я прочитала этот пост.
Если вы вдруг прочитаете, привет вам! Рада встретить пикабушников даже здесь =)

5
Автор поста оценил этот комментарий
Огонь. Спасибо за поднятое настроение.

Пофиг на пост. Реально коммент может собрать плюсы вот за это? :)

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

Автор, чем стимулируете вдожновение ? :)))

И давайте есчё !

3
Автор поста оценил этот комментарий
Улететь на шаре я несколько раз собирался, особенно из группового проекта)
1
Автор поста оценил этот комментарий

у тебя поднятое настроение, а у некоторых это жизненное воспоминание ))

Автор поста оценил этот комментарий
Сука до слез)) 10 биткоинов из 10!!!!
ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку