Так ли страшен говнокод как его малюют?
От: Evgeniy Skvortsov Россия  
Дата: 06.01.17 01:15
Оценка: +1
Вот уже четыре года, как работает мое приложеньице на нескольких пром. предприятиях принадлежащих небезызвестному "голубому" гиганту.
Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.

Не пугайтесь, моя халтура не управляет ничем опасным для жизни. Эта утилитка преобразовывает "приватные" выходные данные промышленного ПО, для их дальнейшей обработки нормальными средствами.
Тех. задание было такое — "хочу что бы работало вот так и желательно вчера". БОльшая часть из "вот так" была получена путем риверс-инженеринга этого самого "промышленного ПО".
Сейчас в сорцы смотреть боюсь — там на 100% Ад! Но работает же.

И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?
Re: Так ли страшен говнокод как его малюют?
От: IID Россия  
Дата: 06.01.17 01:40
Оценка: +1
Здравствуйте, Evgeniy Skvortsov, Вы писали:

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

ES>Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.

Примерно столько же работает моя прошивка CAN BUS адаптера, запускающая цифровой усилок для нештатной гамнитолы. Только там абсолютные 24*7*365 — прошивка работает всегда, если аккумулятор присутствует в машине.

ES>Не пугайтесь, моя халтура не управляет ничем опасным для жизни. Эта утилитка преобразовывает "приватные" выходные данные промышленного ПО, для их дальнейшей обработки нормальными средствами.

ES>Тех. задание было такое — "хочу что бы работало вот так и желательно вчера". БОльшая часть из "вот так" была получена путем риверс-инженеринга этого самого "промышленного ПО".
ES>Сейчас в сорцы смотреть боюсь — там на 100% Ад! Но работает же.

Вот примерно так же. Всё реверсилось за 2 недели до убытия в отпуск. Когда оказалось что китайский адаптер усилок не включает, и его прошивка закрыта от чтения. А усилок, гадина, включается и выключается серией пакетов. Аналогично происходит изменение громкости — шлются команды по CAN. Аудиопоток идёт в цифре по SPDIF на постоянной громкости.

Прошивка была написана с 0-ля. Методом грубой силы был сдамплен поток CAN пакетов, и проигран в сеть автомобиля. Была попытка разобраться в этих пакетах и уменьшить их число. Но там явно нужно давать правильный ответ с нужным таймаутом — любые попытки выявить "лишнее" приводили к тому, что усилок включаться переставал. Так что если теперь (кто-то, зачем-то) подключит впараллель штатную гамнитолу в CAN сеть — на дисплейчике побегут буковки "Madonna track 01" — или что там играло при дампе. (Штатная гамнитола состоит из 2х физических кусков: самой гамнитолы и экранчика. Рисование в экранчик идёт по CAN шине. И эти пакеты тоже где-то в общей куче дампа.).

Я ещё сорцы китаесам отправил. Не удивлюсь, что моя прошивка уже расползлась по десяткам тысяч авто. Цифровой усилок стоит на всех комплектациях, отличных от "барабан" и "полубарабан"

ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?


конечно.
kalsarikännit
Re: Так ли страшен говнокод как его малюют?
От: DKM_MSFT  
Дата: 06.01.17 02:50
Оценка: +14
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.


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

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

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

Что до хороших новостей, то чаще всего выходит так, что программы, которые хорошо написаны и легко читаются и изменяются, также хорошо работают. Прослеживается, так сказать, корреляция. Видимо, хороших программистов отличает то, что результат их работы хорош сразу в нескольких аспектах, а не только в одном.
Re: Так ли страшен говнокод как его малюют?
От: wl. Россия  
Дата: 06.01.17 03:56
Оценка: +1
Здравствуйте, Evgeniy Skvortsov, Вы писали:

меня зовут Вова, и я пишу говнокод. Вот. Признался
Re: Так ли страшен говнокод как его малюют?
От: qwertyuiop Российская Империя  
Дата: 06.01.17 05:28
Оценка: +1
У меня складывается впечатление, что 90% работающего кода, которым заказчик доволен, представляет собой такой же говнокод.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re: Так ли страшен говнокод как его малюют?
От: itslave СССР  
Дата: 06.01.17 13:00
Оценка: +1
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>Сейчас в сорцы смотреть боюсь — там на 100% Ад! Но работает же.

Угу, ровно до того момента, как придется впиливать еще одну фичу. Вот тогда и работать может перестать, и цена фичи будет космос...

ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?

конечно является.
Re: Так ли страшен говнокод как его малюют?
От: SkyDance Земля  
Дата: 06.01.17 19:18
Оценка: +3
ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?

Разумеется, да.

Только это совершенно ортогонально коммерческому успеху софтины.
Re[2]: Так ли страшен говнокод как его малюют?
От: hi_octane Беларусь  
Дата: 06.01.17 19:43
Оценка: :)
IID>Я ещё сорцы китаесам отправил. Не удивлюсь, что моя прошивка уже расползлась по десяткам тысяч авто. Цифровой усилок стоит на всех комплектациях, отличных от "барабан" и "полубарабан"
We need to go deeper — я совершенно не удивлюсь, если вышло уже 2-3 новых редакции усилка, в которых всё сделано чтобы отловить именно твой дамп и включиться ибо компонентная база меняется, совместимость с предыдущей версией нужна, а что значит этот набор пакетов никто не знает и в даташитах ни слова о том почему магнитолы шлют усилку именно эту магическую последовательность
Re[2]: Так ли страшен говнокод как его малюют?
От: ononim  
Дата: 06.01.17 19:45
Оценка: :))) :)
wl.>Здравствуйте, Evgeniy Skvortsov, Вы писали:
wl.>меня зовут Вова, и я пишу говнокод. Вот. Признался
Клуб анонимных говнокодеров.. А ведь это бизнес идея .
Как много веселых ребят, и все делают велосипед...
Re: Так ли страшен говнокод как его малюют?
От: neFormal Россия  
Дата: 07.01.17 10:12
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>Сейчас в сорцы смотреть боюсь — там на 100% Ад! Но работает же.

ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?

зависит от читающего. у всех разные ожидания и разный болевой порог.
да и непонятно, в чём именно там по-твоему говнокод.
...coding for chaos...
Re[2]: Так ли страшен говнокод как его малюют?
От: marcopolo Россия  
Дата: 07.01.17 23:53
Оценка: -1
Здравствуйте, neFormal, Вы писали:

F>зависит от читающего. у всех разные ожидания и разный болевой порог.

F>да и непонятно, в чём именно там по-твоему говнокод.

Идеально оптимизированный код является говнокодом с точки зрения читающего.
Re[3]: Так ли страшен говнокод как его малюют?
От: neFormal Россия  
Дата: 08.01.17 02:07
Оценка:
Здравствуйте, marcopolo, Вы писали:

M>Идеально оптимизированный код является говнокодом с точки зрения читающего.


смотря кто читает и что там за оптимизации.
...coding for chaos...
Re[2]: Так ли страшен говнокод как его малюют?
От: ylem  
Дата: 08.01.17 15:13
Оценка:
SD>Только это совершенно ортогонально коммерческому успеху софтины.

Долгоиграющему коммерческому эффекту не совсем ведь ортогонально(?)
Re: Так ли страшен говнокод как его малюют?
От: LuciferNovoros Россия  
Дата: 10.01.17 14:25
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

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

ES>Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.

Ага. Аналогично 8 лет назад написал тулзу для облегчения работы самому себе и диспетчеров на хлебокомбинате. Всего делов-то — забирать из ящика почту от клиентов, раскладывать по этим клиентам заявки в БД, выгребать счета-фактуры и отправлять их клиентам. Написано было на коленке за пару часов (кстати, на Delphi). Правда, пару раз дорабатывалась для поддержки стандартных форматов обмена. Теперь эта тулза входит в состав этой основной проги для управления хлебокомбинатом в том самом неизменном виде. И ничо, работает, жрать не просит...

Так что, дело не в говнокоде, а в правильности его приготовления и применения.
Re[2]: Так ли страшен говнокод как его малюют?
От: bnk СССР http://unmanagedvisio.com/
Дата: 11.01.17 01:51
Оценка: 3 (1)
Здравствуйте, qwertyuiop, Вы писали:

Q>У меня складывается впечатление, что 90% работающего кода, которым заказчик доволен, представляет собой такой же говнокод.


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

Ситуация лучше, если у кода нет конкретного заказчика и сроков
(в компаниях, которые создают и поддерживают свои собственные продукты на продажу "для всех")
Re: Так ли страшен говнокод как его малюют?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 13.01.17 05:38
Оценка: -1 :)
ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?

Не является. Если программа работает и работает правильно.
1613 г. = 2024 г.
Re: Так ли страшен говнокод как его малюют?
От: licedey  
Дата: 14.01.17 13:45
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

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

ES>Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.

ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?


Для другого кодера — Да. Для заказчика — пофиг.
Re: Так ли страшен говнокод как его малюют?
От: AlexGin Беларусь  
Дата: 19.01.17 17:15
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

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

ES>Работает практически 24/7/365. С момента пуска в промышленную эксплуатацию было внесено всего 2 правки.
Ну так и те поделия, что я делал лет 10-15 назад работают по сей день. Хотя я стараюсь не влезать в эти старые дела.

ES>Не пугайтесь, моя халтура не управляет ничем опасным для жизни. Эта утилитка преобразовывает "приватные" выходные данные промышленного ПО, для их дальнейшей обработки нормальными средствами.

Там, где что-то опасное, будет ещё 100500 различных защит, посему никакой жалкий и глюкавый говнокод там ничего деструктивного не сделает.
Максимум — отрубятся какие-либо сервисные/вспомогательные функции.

ES>Тех. задание было такое — "хочу что бы работало вот так и желательно вчера". БОльшая часть из "вот так" была получена путем риверс-инженеринга этого самого "промышленного ПО".

Это довольно широко распространённая постановка задачи. Особено частая — для промышленников, не сильно разбирающихся в разработке ПО.

ES>Сейчас в сорцы смотреть боюсь — там на 100% Ад! Но работает же.


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

ES>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?

Бесспорно — да!
В тот момент, когда кто-то попробует оживить данный проект, он вспомнит тебя НЕдобрым (возможно даже — НЕцензурным) словом
Если в данный проект не заложены возможности развития и поддержки, то вполне возможно что всё просто выкинут и перепишут с нуля.
Может быть — это уже и произошло, просто тебе ничего НЕ сказали...

P.S. Здесь надо чётко улавливать понятия:
1) НЕ развиваемое ПО == мертвое ПО (как результат говнокодинга)
Да, оно ещё где-то применяется, но его могут выбросить в любую минуту.
2) Развиваемое, с хорошо продуманной архитектурой — это гарантия как возможности поддержки (развитие, bug-fixing);
так и продления жизненного цикла заложенных в проект решений.
Во втором случае — это уже совсем НЕ говнокод!
Отредактировано 19.01.2017 17:23 AlexGin . Предыдущая версия .
Re[2]: Так ли страшен говнокод как его малюют?
От: AlexGin Беларусь  
Дата: 19.01.17 17:32
Оценка:
Здравствуйте, RussianFellow, Вы писали:

ES>>И главный вопрос — является ли говнокод говнокодом если он работает и как ожидается несколько лет?


RF>Не является. Если программа работает и работает правильно.


Сегодня — эта работа воспринимается как правильная, а завтра...
Изменились те или иные условия, вышли новые стандарты, и это уже работает совсем не так, как нужно.
А переделать всё — тяжело, т.к. автор не думал о развитии проекта.
Как результат — завтра другие люди выбрасывают ЭТО ВСЁ на помоечку, переписав ВСЁ С НУЛЯ
Времени и средств потребовалось намного больше, чем предполагал твой бывший Заказчик...

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

P.S. Вот поэтому и ходят байки про русских программистов — когда новый разработчик взглянул, ужаснулся и сказал, что всё нужно переписать!
Отредактировано 19.01.2017 17:35 AlexGin . Предыдущая версия .
Re: Так ли страшен говнокод как его малюют?
От: landerhigh Пират  
Дата: 23.01.17 13:42
Оценка: +1 :)
Здравствуйте, Evgeniy Skvortsov, Вы писали:

ES>Не пугайтесь, моя халтура не управляет ничем опасным для жизни.


Эх, видел бы ты, что порой встречается внутри того, что опасным для жизни таки управляет
www.blinnov.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.