metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-03-11 11:16 am

Говнокод

http://jakobz.livejournal.com/249050.html

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

А то напихают sleep(1000) в качестве средства синхронизации, а потом запускается это все на каком-нибудь убер-быстром или убер-медленном железе и оно все дохнет в необъяснимых мучениях.

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

[identity profile] raydac.livejournal.com 2015-03-11 08:24 am (UTC)(link)
>>"говнокод" - это код без ООП и паттернов

такой код в баллистических ракетах советских ващето

[identity profile] metaclass.livejournal.com 2015-03-11 08:26 am (UTC)(link)
А кулачковых токораспределителей и электрохимических интеграторов там не осталось?:)

[identity profile] raydac.livejournal.com 2015-03-11 08:28 am (UTC)(link)
не знаю, но если так глянуть, то в говнокод попадут и системы "аполлона" что на луну сажали и система управления воздушным движением в штатах.. как все блин жили до ооп и паттернов? человечество было на волоске ))

[identity profile] vit-r.livejournal.com 2015-03-11 08:31 am (UTC)(link)
Говнокод - это код одноразовый. Он хорош, пока с ним не надо что-то делать или его для чего-то не используют. Сбацал и забыл.

[identity profile] vit-r.livejournal.com 2015-03-11 08:32 am (UTC)(link)
Там механические механические гироскопы.

[personal profile] alll 2015-03-11 08:32 am (UTC)(link)
Жизнь человечества к системам апполо не имела и не имеет никакого отношения от слова совсем. Только жизнь нескольких абсолютно упоротых фриков. Ну и карьера ещё нескольких тысяч чуть менее упоротых.

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

[identity profile] raydac.livejournal.com 2015-03-11 08:35 am (UTC)(link)
а система управления авиасообщением имеет?

[identity profile] raydac.livejournal.com 2015-03-11 08:45 am (UTC)(link)
стоимость изменений вобщем показатель

[identity profile] dimaby1.livejournal.com 2015-03-11 08:56 am (UTC)(link)
Я не видел код баллистических ракет, но имею на этот счет 2 мысли:
1) на военщину никогда денег не жалели, так что на гражданке такой метод может быть просто не оправдан.
2) ООП и в особенности паттерны появились не на пустом месте. То что хипстеры читают в учебнике банды четырех более старшее поколение усвоило на своих ошибках. Соответственно и книжка банды четырех для них не такое уж и откровение. Так что вполне вероятно что и свои паттерны были в балистических ракетах и свое наколенное ООП

[identity profile] plumqqz.livejournal.com 2015-03-11 09:00 am (UTC)(link)
его проще выкинуть и сделать заново, чем исправлять.
Говнокод - это не код, имманентно говенный, но результат алхимического брака платоновских идей разработчика и заказчика. Ну то есть второй что-то там нарассказывал первому, первый преломил в своем кристалле сознания это понимание как-то по-своему, накалякал, показал второму, второй посмотрел, ужаснусся, внес уточнения, описал их как мог первому, который снова понял в силу своего разумения, что-то написал, показал - и так асимптотически они и приближались.
Так что выкинуть и сделать заново может и можно, кто бы спорил - только вот а)без говнокода это все равно не получится б)при изменении требований см. абзац выше.

PS ООП и паттерны действительно обычно нахер не впились.
PPS Вырожденные случаи с неправильным использованием апи и т.п. рассматривать не будем.

[personal profile] alll 2015-03-11 09:03 am (UTC)(link)
А система управления сообщением - она как ебипетская пирамида, одна стройка на страну в данный период времени и после постройки уже неколебима. Можно надрывая пупки затащить хоть на машине Тьюринга, хоть на языке конфигурации сендмейла. Нынче же "пирамиду" надо всунуть в каждый чайник и в каждый калькулятор, а потом ещё и вносить поправки по пяти раз на дню по каждому чиху бешеного принтера, не ставя раком на полгода весь окрестный бизнес - вот тут-то и начинается отделение юниоров от сеньоров и слияние калифорний с бангалорами.

[identity profile] lekard.livejournal.com 2015-03-11 09:04 am (UTC)(link)
http://mi3ch.livejournal.com/2773220.html

[identity profile] binf.livejournal.com 2015-03-11 09:10 am (UTC)(link)
нахуй ооп. Нет ни одного нормального аргумента в пользу ооп за исключением "нам так проще смоделировать объекты реального мира" или "нам нужно делать ИНКАПСУЛЯЦИЮ а в с++ нет замыканий", сплошная ёбаная гуманитарщина. рфму

[identity profile] eternal-leave.livejournal.com 2015-03-11 09:17 am (UTC)(link)
я видел куски кода, которые отвечали за навигацию в Р36. Вернее сказать, перфокарты видел :)

[identity profile] binf.livejournal.com 2015-03-11 09:24 am (UTC)(link)
Изначальная идея ООП, как его понимал Алан Кей - динамическая маршрутизация вызовов на основе окружения средствами рантайма. Она не плоха. Проблема в дуракахб задроченных на классы, которые интерпретируют ООП в духе java/c++

[identity profile] binf.livejournal.com 2015-03-11 09:35 am (UTC)(link)
Вот правильно. Говнокод - это прототип в некоторой степени приближенный к желаемому результату. Работающий синхронно прототип можно рефакторить под многопоточность. В слуае сабжа - ачинхронные монады, Async.Sleep вместо sleep, ReadFileAsync вместо ReadFile. Чтобы рефакторить неработающий (не)говнокод , надо сначала сделать чтобы он работал

[identity profile] dimaby1.livejournal.com 2015-03-11 09:37 am (UTC)(link)
Не пора ли закопать стюардессу?

[identity profile] metaclass.livejournal.com 2015-03-11 09:38 am (UTC)(link)
Async.Sleep это какое-то феерическое безумие :)

[identity profile] dimaby1.livejournal.com 2015-03-11 09:38 am (UTC)(link)
1) Более или менее единый стандарт кода.
2) проще поддерживать

[identity profile] binf.livejournal.com 2015-03-11 09:43 am (UTC)(link)
это тока так кажеца)). В F#-пе в момент выполнения Async.Sleep асинхронноу вычисление можно абортировать с помощью CaneletionToken, а просто слип - нельзя

[identity profile] binf.livejournal.com 2015-03-11 09:54 am (UTC)(link)
не смешите) не вдаваясь в холивар, стандарт там сводится к "каждый дрочит как он хочет" не смотря ни на каие паттерны. Есть лишь общие рекомендации, но они в основном неправильные.
Поддерживать проще если сравнивать с совсем уже сферическим говном в вакууме

[identity profile] eternal-leave.livejournal.com 2015-03-11 10:15 am (UTC)(link)
Оно до сих пор на вооружении стоит же. В принципе, сейчас работы по программированию тамошних БЦВМ уже нету, разве что ввод новых координат целей.

[personal profile] fortness90 (from livejournal.com) 2015-03-11 10:43 am (UTC)(link)
Ребе не псите. ООП в ЧМ не нужно. А паттернов там и так полно . Взгляните на код MITgcm например

[identity profile] fhjs9.livejournal.com 2015-03-11 11:16 am (UTC)(link)
сразу видно что ты задроченный чувак.

[identity profile] fhjs9.livejournal.com 2015-03-11 11:17 am (UTC)(link)
о, деревенщина, а ты опять же-каешь

Page 1 of 4