@romicohen
Системный Архитектор

"Умение профилировать и отлаживать свой код без использования функции dd/var_dump" — это как?

В одной вакансии встретил такое:

Умение профилировать и отлаживать свой код без использования функции dd/var_dump


Два вопроса:

1. Чем им dd/var_dump не угодил?

2. А как можно без этого вообще отлаживать-то? Laravel Telescope? (кстати, очень приятная штука для отладки очередей). В лог писать?

Я им написал - они молчат )))

Может кто знает о чем это вообще?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 3
karabanov
@karabanov
Системный администратор
Это о xdebug
Ответ написан
Комментировать
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Это точно об X-debug.

Умение им пользоваться будет полезным в использовании незнакомого вам кода. Большинство ошибок можно найти данным инструментом более быстро, чем расставлять везде dd(). Вам нужно поставить одну точку, а дальше полный набор отладки.

Но мне не очень понятно зачем отлаживать свой код. Если код написан читаемо, то отлаживать его нет необходимости - достаточно покрыть его тестами. Даже если возникнет какая-то ошибка, то найти её можно быстро. Я ещё ни разу не пользовался X-debug для отладки именно своего кода. Код читаем и ошибка находится быстро. Более того, дошёл до того, что даже браузер не открываю, так как занимаюсь только backend частью. Мы недавно сдали проект с хорошим кодом и на демо-версии не было ни одной 500 ошибки, а покрытие тестов было всего 35%.

Поэтому тесты+читаемый код может вообще избавить вас от необходимости настройки данного инструмента. Разве что нарвётесь на какой-то баг библиотеки. Вот тогда и придётся «расчехлять» данный инструмент.
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Это называется словом "трассировка".
Пошаговое выполнение программы средствами IDE, с контролем значений всех переменных.
На определенной строке программы ставится специальная метка, брекпойнт.
Дойдя до неё, интерпретация кода остановится, и дальше можно будет выполнять каждую строчку по одной, видя при этом значения всех переменных. Причем именно всех, а не только тех, которые ты добавил в дд.
То есть трассировка средствами IDE удобнее, быстрее и даёт больше информации, чем ручное колупание с вардамп.

В РНР этим занимается xdebug в связке с IDE

Также там упоминается профилирование, которое тоже осуществляет xdebug. Это измерение времени работы различных участков кода, с целью выявить самые медленные, бутылочные горлышки. Это опять же можно делать вручную, замеряя тайминги и выводя их результаты, но xdebug делает это всё автоматически, без того чтобы добавлять что-либо в код. И, опять же, дает полную картину, а не только те участки, которые ты замерил вручную.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы