Мне повезло на новых проектах работать, поэтому говнокода нету, но всё в идеале поддерживать не получается, потому что сроки очень сжатые. А вот у коллег на старых проектах весь букет радостей — гигантские классы, которые делают всё, методы на десять экранов итд.
Да, у нас тоже новые проекты красивые, отDRYенные по возможности, покрытые тестами. А старые в некоторых местах — сущий ад. Ревью кода дает свои плоды.
Плохой код — это привязка заказчика к разработчику! Чем хуже код — тем сильнее эта привязка. Новый разработчик просто не возьмется за код или предложит с нуля разработку, что дороже! :)
Эх. Да я и есть тот самый новый, которому все это досталось, потому как сам заказчик уже не может осилить, что сам в количестве 15 человек (могли работать над одним классом в разные времена) когда то написал. Так что можете представить как синхронизированы комментарии и реалии.
К сожалению, реальность такова, что до идеального кода еще переписывать и переписывать.
А многое — из-за плохого планирования, и подсунутых кривых костылей.
У нас в одном проекте что бы написать кусок кода, можно потратить пол дня на разбор кода, что бы что то написать. Все стили, паттерны проектирования намешаны, костыль на костыле, костылем погоняет — ад. Все не как не соберемся перестроить в рай.
Зы: проект разрабатывался в разное время, разными разработчиками и поэтом есть интересные подходы в годе. А самое главное работает стабильно при посещении 700k в день.
К сожалению, часто допускаю осознанные ошибки, когда, например, спешу или не выспался. Из-за недостатка опыта бывают косяки еще на стадии проектирования, которые вскрываются слишком поздно, чтобы отрефакторить их и объяснить начальству, зачем я это делал.
А до кучи, до меня код, с которым я работаю, писал какой-то адский идиот. Я цитатник его перлов потихоньку собираю.
У нас говнокод только если что-то надо написать «вдруг» и «вчера». Тогда на качество не важно, главное, что бы работало, а потом… когда нужно внести изменения и есть время…
Там даже в типовых конфигурациях порой такой говнокод встречается, что ах. Да и сам язык располагает.
Хотя с другой стороны — каких-нибудь особо изысканных низкоуровневых извращений там особо не сотворишь.
Я вообще пишу на Python в Eclipse и подключаю анализатор Pylint — чуть какое отклонение от стандарта (метод без докстринга, неправильное расстояние между функциями/классами, лишний импорт, слишком короткое имя переменной, слишком длинная строка etc) сразу появляется варнинг на полях. Очень дисциплинирует — рекомендую!
Ну и вообще очень трепетно к кач-ву кода отношусь. В дальнейшем сильно помогает.
Всегда удивляли програмисты которые работают на проекте минимум год и так и не порефкторили, всегдя находятся отмазки и лень: заказчик не дает времени, там все так запущено что и начинать не стоит,…
Так сказать ребята: все в ваших руках
Вы довольны качеством кода на своей реботе?