Как разобраться в большом чужом коде?

Добрый вечер всем!
Мне дали проект, проект очень большой, то есть даже просто чтобы посмотреть как из того же поиска выбираются данные нужно обойти дофига разных методов разных классов. На каких этапах лучше ставить брейкпоинт? Иногда ставишь брейкпоинт на том месте, где уже возвращается массив с результатами. А иногда сильно рано, и ходишь этим дебагером по всевозможным классам, нифига не понимаешь, и снова. Иногда дебагер вообще закидывает в ClassLoader.
есть стратегия какая то дебага? В маленьких проектах (на фреймворках) это все изи, но в данной ситуации все не так радужно
  • Вопрос задан
  • 2796 просмотров
Пригласить эксперта
Ответы на вопрос 4
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Могу помочь вот этим:
if(!function_exists('include_info')) {
 function include_info($SCRIPT_FILENAME,$FILE) {
   $f = substr($SCRIPT_FILENAME,strrpos($SCRIPT_FILENAME,'/') + 1);
   $s = substr($FILE,strrpos($FILE,'\\') + 1);
   if($f != $s) {
     echo '<b>Файл ['.$s.'] подключен в файл ['.$f.']</b><br />';
   } else echo '<b>Файл ['.$s.'] - прямой вызов</b><br />';

   echo $f."<br>";
   echo $s."<br>";
   echo '$_SERVER["SCRIPT_FILENAME"]: '.$SCRIPT_FILENAME."<br>";
   echo '__FILE__: '.$FILE."<br>";
 }
}
....подключаете в головной файл (или через настройку PHP auto_prepend_file).

А во всех остальных (которые подключаются через include*) в самом начале, вызываете:
include_info($_SERVER['SCRIPT_FILENAME'],__FILE__);


И бонус (как всегда...): тык
Ответ написан
rpsv
@rpsv
делай либо хорошо, либо никак
Разберитесь сначала в потоках данных, чтобы понимать куда, что и когда идет.
Это можно сделать и без дебагера, просто смотрите код.
Если нет ни документации, ни здравого смысла в коде, то могу только посочувствовать, т.к. без понимаю "что вообще здесь происходит" никакой дебагер вам не поможет.
Ответ написан
@4iloveg
Full-Stack HTML Developer
В дебагере же можно по строкам идти
Ответ написан
Комментировать
Возможно прозвучит странно, но используйте кроме дебага форматирование кода, расстановку комментариев с вопросами и общее описание вашего понимания с вопросами. Разгружайте голову.

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

И ещё сразу совет в контексте. Если будет много копипаста и смесь грузина с чемоданом php html js и css, то требуйте до перехода к внесению нового функционала времени на рефакторинг кода. Иначе отказывайтесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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