На самом деле если ты находишь старый код, который за долгое время не потребовал исправлений или переписывания и работает как часы - это хороший код, это большая редкость. И неважно, насколько он соответствует нынешним представлениям или моде. И то, что нынешние "программисты" часто неспособны разобраться в старом рабочем коде, говорит больше об их квалификации, чем о старом коде.
Точно, даже если этот код как лапша, полон костылей, содержит десятки тысяч строк в одном файле и вообще выглядит как обфуцированный это неважно, т.к. то что в нем сложно разобраться виноват ТЫ, потому что ты говно как разработчик, а код - хорош, потому что он работает.
Да. Работает - не трогай. Обсфуцированным он тебе кажется именно потому, что ты говно как разработчик.
Да, конечно, никогда так не бывает, чтобы какой-нибудь индус не сделал говнокод. Который, если повезёт, даже работает какое-то время, если не трогать.
И только потому, что "оно" работает - это "хороший" код. Да-да, конечно.
Говнокод не сможет работать без сбоев длительное время, о котором идёт речь (годами). Поэтому пример не в тему.
Ещё как сможет, если его не надо было часто менять. Таких примеров у меня был вагон на каждой работе, где приходилось работать со старым и чужим кодом (и не только у меня, но и у всех коллег с этим были проблемы). Всё работает, т.к. были проведены сотни тестов в своё время, и на этот "код" делались заплтатка за заплаткой, пока не стало так, как было на тот момент нужно. То, что оно в итоге работает, мало что говорит о качестве конечного кода - всё очень сильно зависит от области использования - если она достаточно узкая, и требования не меняются, то почти любой код будет работать долго и без сбоев, если был достаточно протестирован. И да, порой оказывается, что код всё-таки говно и разобраться в нём никакой специалист не может нормально (т.к. "логика" там своя, понятная только лишь одному "гению", например, или просто так всё запутанно, что уже и "создатель" не разберётся).
Либо код был покрыт тестами абсолютно (не бывает в реальном мире), либо нет и баги таки вылезут, если они есть, либо код был тривиален, а мы говорим о нетривиальном. А если код нетривиален и при этом не имеет багов, то это не говонокод, просто говноспециалисты ему достались для поддержки.
О квалификации тех, кто писал и тех, кто читает. Мало написать рабочий код, надо написать поддерживаемый рабочий код (если в будущем в принципе планируется к нему возвращаться).
"Поддерживаемость" зависит от квалификации поддерживающего. Если он туп - его ничего не спасёт.
И от квалификации писавшего. Можно написать рабочий код, который будет представлять собой гигантскую лапшу из кучи вложенных циклов, вротебучих зубодробительных флагов, условий, неочевидных имен функций, переменных, классов, тупое разделение на классы, нарушение принципов проектирования итп итд, а еще без комментариев.
Нет, квалифицированный человек сможет поддерживать. Потратит кучу времени на то, чтобы распутать эту лапшу и понять, что происходит, изменения и исправления вносит в пяти различных местах проекта, писать 100500 тестов, чтобы не дай бог не развалилось. Вот только это все равно ебаный говнокод, и причина этого говнокода - тупой мудак, который его написал. Нехер писать write-only код и потом валить на последователей, мол, они тупые, раз разобрать не могут.
З.Ы. Есть случаи, когда вынужден писать говнокод. Например, аццки оптимизировать какое-то узкое место и когда не до красивостей. Или особо хитровывернутая логика. Или еще что-нибудь. Правда, такие места должны помечаться, мол, не лезь, блять, оно тебя сожрет.
Мы говорим про код, который работает годами. Зачем ты в него вообще лезешь?