Задать вопрос

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽