Представьте себе, что 90% вашей работы - это просто сортировать вопросы на очень массивном, очень сломанном веб-сайте. Представьте себе, что этот сайт написан в наиболее тесно связанном, наименее сплоченном PHP-коде, который вы когда-либо видели, типа кода, который добавит оригинальные разработчики в ваш список "пощечину". Представьте себе, что это веб-приложение состоит из 4 очень разных частей (1 коммерческий, 2 "перепрофилированный" и 1 пользовательский) и дерьма виртуальной клейкой ленты и прокладок. Представьте, что он содержит тип методов программирования, в которых основные компоненты веб-сайта фактически полагаются на то, что НЕ работает должным образом, и исправление этих сломанных вещей обычно нарушает другие вещи. Представьте себе, что вы знаете, что из-за слишком большого количества неприятных впечатлений изменение одной, казалось бы, безобидной части веб-сайта, например разбиение поля "имя" на два отдельных поля "первый" и "последний", приведет к тому, что сайт встанет на колени и потребует нескольких часов откаты, слияния и исправления. Представьте себе, что долгие годы требовать от клиента просто отказаться от кода и начать все сначала, но встретить отчаяние Enterprise-Grade и ручное отжимание. Затем представьте, что вы получаете билеты ASAP/EMERGENCY для реализации новых функций, которые на любом другом веб-сайте занимают 4 часа, но вы знаете лучше с этого сайта, поэтому вы указываете 40 часов, затем пропустите это и заплатите 80 часов, но это нормально, потому что клиент используется с их веб-сайтом.
Вот некоторые другие вещи, которые вы также должны себе представить:
- сейчас нет тестов.
- есть googleteen разных уровней логинов. У некоторых клиентов есть 3 разных аккаунта для разных разделов веб-сайта.
- Когда я говорю "плотно связанный", я имею в виду, что петли операторов include/require, вероятно, будут отображаться как кельтский узел
- Когда я говорю "наименее сплоченный", я имею в виду, что некоторые вещи организованы вроде как MVC, но это не действительно MVC. В некоторых случаях вам может потребоваться несколько часов, чтобы узнать, как URI A сопоставляется с файлом B
- Пользовательский интерфейс был написан как "навязчивый" и "недоступный" - это ключевые слова дня.
Воображая все это, стоит ли даже добиваться даже умеренного уровня охвата тестированием? Или вы должны в этом мнимом сценарии просто продолжать делать все возможное с тем, что вам дано и надеяться, молиться или даже жертвовать тем, что клиент согласится переписать на днях, и ТОГДА вы можете начать писать тесты?
ДОПОЛНЕНИЕ
Поскольку многие из вас подняли это: я подошел к возможности переписывать при каждом моем присутствии. Специалисты по маркетингу, с которыми я работаю, знают, что их код - дерьмо, и они знают, что это вина фирмы с минимальной ставкой, с которой они пошли с первоначально. Я, вероятно, перешагнул свои границы в качестве подрядчика, указав, что они тратят на меня огромную сумму денег, чтобы обеспечить хосписную заботу об этом сайте, и что, переработав его с нуля, они будут быстро получать ROI. Я также сказал, что я отказываюсь переписывать сайт как есть, потому что на самом деле он не делает того, чего он хочет, в любом случае. План состоит в том, чтобы переписать стиль BDD, но получение всех ключевых игроков в одном месте жестко, и я все еще не уверен, что они знают, что им нужно. В любом случае, я полностью ожидаю, что это будет очень большой проект.
Спасибо за все отзывы!