Пользуюсь форком этого замечательного тулбара — в нем немного меньше багов чем в оригинале. Правда недавно вылезла пренеприятнейшая особенность — при включеном тулбаре отваливается jquery.ui и jquery плагины.
Форк запросы и Explain показывает на одной странице, нормально форматирует запрос. Не может выполнить запрос и сделать SQL-профайлера нет. Правда, не знаю, насколько он необходим… Пользовался пару раз всего.
Зато есть настоящий профайлер Python.
Только его нужно отключать иногда — с ним всё работает в 8 раз медленнее.
В Симфони чтоб выбрать больше одного объекта (разные таблички) в одном запросе — надо парсить руками через doSelectRC, тоесть еще хуже чем просто руками сделать запрос и непонятнее (да еще и надо за порядком следить, а если критерии взбредит выбрать после апдейта не «книги, читатели» а «читатели, книги» то всё поломается при hydrate'е).
Оно и с jQuery не сразу подружилось. Я заметил проверку, не загружена ли jquery, при инициализации скриптов тулбара. Поставил свою jQuery 1.3.1 так, чтобы она грузилась раньше. С этих пор всё нормально.
Про mootools ничего не могу сказать.
Попробуйте взглянуть исходники, там всё просто.
В данном случае использование if DEBUG совершенно оправдано: мы включаем консоль только в режиме отладки.
А насчет использования в коде — точно не знаю. Нужно потестировать. Возможно, поможет вывод сообщений с разными уровнями отладки…
Я еще не привык ловить такие мелочи (как, например, в статье по аналогичной проблеме в Perl). Мне вообще очень странно и непривычно, что страница генерится 43 миллисекунды, а не 2 секунды :-)
А насколько корректно использовать для объектов, которые разные в debug и production просто паттерн strategy? Ну и менять стратегию для дебага и продакшна.
Ну и вообще, более глобальный вопрос. Насколько полезно писать полностью-ООП программы на питоне?
Когда-то я написал полностью-ООП движок для PHP, чем-то походящий на Turbine под Java. Искоренил «скриптовый» подход везде где можно, остались только классы организованные по базовым паттернам. Потом свершилась работающая версия… увидел сколько времени всё это выполняется, и выбросил код в помойку.
Верно говорят про logging.debug('опять упала !'), но не стоит, конечно, передавать ему какой-нибудь объект, который при str() выдаст простыню на 100 килобайт и задумается на две секунды.
За такой интерфейс отладчика кто-то мог бы продать душу дьяволу! Нужно попробовать.
Ха, по сравнению с внешним вид нынешнего, на ноябрь 09, стандартного, не-форкнутого дебаг тулбара (0.8.х) это — просто крокодил. Штука стала выглядеть ГОРАЗДО круче
Отладка в Django