Как в огромнейших проектах искать ошибку?

Сегодня сел за огромный проект как стажер, дали мне найти причину ошибки. Дело состоит так:
Человек вбивает в поиск слова допустим "Шины и покрышки", а поиск по какой то причине находит результаты типа "Компьютеры и ноутбуки" (при том что никак не связаны эти слова между собой). Это все берется из Solr, ошибка где то в PHP коде, скорее всего в каком то if. Тяжесть всего этого заключается что проект просто огромнейший. Я понатыкивал брейкпоинтов, от одного брейкпоинта заходит в глубь одного метода, если пройти дальше, то заходит уже в другой метод, и это каша, потом бац и видишь что каким то фигом в массиве таки оказалось неверное значение. Как вообще искать ошибки в здоровых проектах?
  • Вопрос задан
  • 471 просмотр
Пригласить эксперта
Ответы на вопрос 4
Griboks
@Griboks
Существует три способа обнаружения неисправностей: последовательная проверка блоков, проверка методом деления и проверка комбинационным методом.
Основное преимущество первого способа - последовательной проверки заключается в простоте, т.к. не требуется выделять группы блоков для проверки и обнаружения неисправности.
Преимущество метода деления в минимизации затрат времени, но более сложному процессу проверки. Необходимо разделить весь проект на отдельные блоки, а затем попарно на группы блоков. Далее следует проверять работоспособность первой половины. Если отказ происходит именно в ней, следует проверить первую половину этой половины. Таким образом необходимо спускаться до конкретных блоков (в вашем случае, методов).
Суть способа заключается в представлении отдельных блоков как чёрных ящиков, с заданным входом и предполагаемым выходом.
Для вашего проекта, который, я полагаю, вам не знаком, я бы предпочёл метод последовательного обнаружения неисправности.
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Для начала следует поставить xdebug, xhprof и PHPStorm. Это необходимый набор инструментов для облегчения навигации. В PHPStorm очень удобный отладчик. Можно видеть стэк вызовов и т.д. xhprof позволяет в целом посмотреть на картину выполнения всего проекта. Работать с массивами правда сложно, особенно когда "черезчур умные" люди начинают изобретать самопальные сортировки и функции с паршивыми именами.

Вам нужно найти, с помощью чего строится запрос к Solr, для этого ищите по ключевому слову Solr. Далее выясните, какой запрос уходит в Solr и что возвращается из него. Если результаты поиска по Solr в порядке, переходите к тому, как происходит отрисовка данных. Если выдача из Solr ошибочна, ищите как формируется индекс.
Ответ написан
Комментировать
@Weridy
Херовый id категории как вариант
Ответ написан
tema_sun
@tema_sun
Я бы для начала убедился, что поисковый индекс строится корректно.
Но вообще, если вы стажер, то просите помощи у опытных коллег. Расскажите что вы сделали и почему и пусть вам покажут на пальцах почему делать надо было не так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы