Говносайты на доработке

scorpion-ds

Новичок
В последнее время на фирму на поддержку заходило несколько сайтов с просто ужасным кодом:
- в корневой папке более сотни файлов не считая различных папок;
- HTML, PHP и MySQL все вперемешку;
- HTML код повторяется из файла в файл, то есть если к примеру понадобится заменить где-то элемент в шапке, то придется поправить 5-10 файлов;
- само собой весь код преимущественно процедурный;
- в одном из них часть проекта была на PHP, а часть на Perl;
- название некоторых, файлов, переменных, функций, таблиц и полей в БД не соответствуют тому, что они выполняют;
- и т.п.

С последним проектом, я провалил сроки, верстальщику вообще пришлось потом все заново делать, потому как он пропустил часть html идущего вперемешку с запросами к БД и условиями.


Кто как поступает с такими проектами?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Если могут себе позволить, их просто не берут. Этот труд и время не стоит тех денег, что можно заработать. Если, конечно, это не верхняя твоя планка профессионально.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я ленивая Ж, давно забил на фриланс =) Нервы дороже.
 

scorpion-ds

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

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

Хочу освоить Symfony, тогда сможем брать на ней проекты или похожем фреймверке, но сейчас не знаю как отбиваться от таких на которые жалко тратить время, ведь опыта они ни какого не прибавят.
 

Фанат

oncle terrible
Команда форума
Не знаю, по-моему, говнокод для поддержки - счастье.
Заменить в 10 файлах хтмл, это такая ерунда.
А вот я сейчас тупо сломался на хитровыдуманном оопе-бейсед коде, где весь сайт родится из единственного объекта, и все построено на неких соглашениях, которые надо самому выковыривать без единой строчки документации. Изначальная идея там была что-то вроде ОРМ-а, но при этом он играет сразу роль и роутера, и модели, и контроллера. Только шаблонизацию, слава богу, отдали Смарти.

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

Да, для разработки, когда у тебя есть куча умолчаний - это удобно. Но блин для поддержки без документации - это ад.
А говнокод, где всё явно прописано - наоборот, там хоть и надо одно и то же действие повторить несколько раз, но хато хотя бы понятно - какое и где.
 
Последнее редактирование:
  • Like
Реакции: AmdY

флоппик

promotor fidei
Команда форума
Партнер клуба
Я имею ввиду, что твой уровень оценки своих навыков не говорит ни о чем, т.к. ты оцениваешь относительно тех людей и того объема знаний, который тебе доступен.

Но и: да, ты сам выбрал эту работу.
 

Фанат

oncle terrible
Команда форума
ООП или не ООП никак не коррелирует с качеством кода.
У тебя как раз в примере говнокод. Хоть и в объектном синтаксисе.
Ну, скажем, процедурного говнокода я не видел такого, в котором нельзя было бы разобраться. Куда меньше простор для кротовых нор и молчаливых соглашений.
 

Luge

Нестандартное звание
У нас обычно о таких проблемах с кодом сообщается заказчику сразу же, до начала активных правок.
И дальше 3 варианта: или прощаемся с заказчиком, или выделяем в отдельный глобальный таск привести всё в божеский вид, или к каждый таск оценивается как X+несколько часов для сопутствующей правки имеющегося кода.
Но у нас в основном работа с cms и специфика отличная от поддержки сайтов написаных с нуля. Хотя, в любом случае, множество углов можно сгладить если нормально поговорить с заказчиком.
 

peon

Lok'tar ogar
scorpion-ds, Пару интернов за еду, говнокод на поддержке... есть ли вообще перспективы на этом месте работы? Судя по всему ты теряешь время работая в этой конторе.

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

AmdY

Пью пиво
Команда форума
Главное правило - не переписывать всё с нуля. Говнокод, как сказал Фанат правится ещё лешче, нежели моднявые ООП-шно-ДДДшноые слоёные пироги. Желательно только перед правкой пройтись и написать тесты для селениума, можно просто через плагин к браузеру. Тогда регресивных багов будешь меньше делать и кучу времени сэкономит. Новый функционал уже можно лепить в хорошем стиле, а старый только через мелкий рефакторинг с правилом "работает - не трожь".
 

Вурдалак

Продвинутый новичок
Говнокод, как сказал Фанат правится ещё лешче, нежели моднявые ООП-шно-ДДДшноые слоёные пироги.
Ложь и провокация. В одном случае тебе нужно поправить 1 маленький класс. Во втором — АД И СОДОМИЯ, ГЛОБАЛЬНЫЕ ЗАВИСИМОСТИ, ХАРДКОД И КОПИПАСТ.
 

scorpion-ds

Новичок
По моему мнению лучше разбираться в нормальном, но сложном ООП коде, чем в полотенце из HTML, PHP и MySQL, с 5-6 точками подключения к БД (каждый раз указывается сервер/юзер/пароль) и без проверки на успех выполнения SQL запроса.

Еще не люблю, когда предшественник использовал классическую CMS, но при этом или правил ядро (без веских причин) или часть функционала дописывает в отдельных от API CMS файлах.

P.S.: Хотя в OpenCart я постоянно модифицирую сам движок с vqmod нет ни какого желания парится.
 

Вурдалак

Продвинутый новичок
«Нормальный» и «сложный» ООП-код — это практически взаимоисключающие вещи. Код не должен быть сложным, иначе мы делаем что-то не так.
 

Absinthe

жожо
Кто как поступает с такими проектами?
Прошу сразу предоставить (если удаленно, то под NDA) доступ к кускам кода. Если код ужасен, то отказываюсь от такой работы.
Работа с говнокодом - это не только отвратительное настроение, отсутсвие мотивации и хреновый доход, но и отказ от перспектив к росту.
 

WMix

герр M:)ller
Партнер клуба
Если поднастроить подкрутить, даже прикольно, чтото строить на гнилой базе тоже не стал бы. Но вопрос денег. Пока есть увереность что не рассыпится, можно докладывать говна))
 

AnrDaemon

Продвинутый новичок
По моему мнению лучше разбираться в нормальном, но сложном ООП коде, чем в полотенце из HTML, PHP и MySQL, с 5-6 точками подключения к БД (каждый раз указывается сервер/юзер/пароль) и без проверки на успех выполнения SQL запроса.
Когда берёшь такой проект, заявляй времени в три раза больше, чем по твоему мнению это займёт.
1. Это реально займёт как минимум столько времени.
2. Если сделаешь раньше, будет время на нормальную доводку и убирание хвостов.
3. Заказчик может и отказаться, услышав по его мнению нереалистичную цифру. Сохранишь себе немного нервов.

Я всегда начинаю с шаблонизации и разделения кода. Смарти спасает на всех стадиях - его можно лепить прямо на месте правки, заменяя оcобо большие HTML блоки, а потом эти же блоки собирать инклюдами по мере расшифровки кода.

Еще не люблю, когда предшественник использовал классическую CMS, но при этом или правил ядро (без веских причин) или часть функционала дописывает в отдельных от API CMS файлах.
Это вообще ад. Сочувствую.

P.S.
Мысля про селениум выше очень полезна.
 
Сверху