Метод отладки, который вы описали, идеально подходит для статического языка, такого как C ++, но, учитывая, что язык настолько отличается, методы кодирования также отличаются. Одна из больших и очень важных вещей в динамическом языке, таком как Python или Ruby, - это интерактивный верхний уровень (то, что вы получите, набрав, скажем, python
в командной строке). Это означает, что запуск части вашей программы очень прост.
Даже если вы написали большую программу перед тестированием (что является плохой идеей), мы надеемся, что она разделена на множество функций. Итак, откройте интерактивный верхний уровень, выполните import thing
(для того, что бы ни случилось thing
), и тогда вы можете легко начать тестировать свои функции по очереди, просто вызывая их на верхнем уровне.
Конечно, для более зрелого проекта вы, вероятно, захотите написать реальный набор тестов, и у большинства языков есть способ сделать это (в Python это doctest
и nose
, не знаю о других языках). Однако сначала, когда вы пишете что-то не совсем формальное, просто запомните несколько простых правил отладки динамических языков:
- Начните с малого. Не пишите большие программы и не проверяйте их. Проверяйте каждую функцию по мере ее написания, хотя бы курсивно.
- Используйте верхний уровень. Выполнение небольших фрагментов кода на языке, подобном Python, чрезвычайно легкое: запустите верхний уровень и запустите его. Сравните с написанием полной программы и ее компиляцией, скажем, на C ++. Используйте тот факт, что вы можете быстро изменить правильность любой функции.
- Отладчики удобны. Но часто, как и 1017 * заявления. Если вы используете только одну функцию, отладка с помощью операторов
print
не так уж неудобна, а также освобождает вас от перетаскивания по IDE.