SlideShare a Scribd company logo
Основы отладки
rails-приложений
Базовые знания о базовом инструментарии
Ошибки


• Синтаксические
• Семантические
Отладка приложения

• Воспроизведение
• Анализ
• Исправление
• Внедрение исправления
Поиск причины


• Аналитический
• Экспериментальный
Поиск причины

• Анализ кода
• Запуск в отладчике
• Логирование
• Unit-тестирование
• Прототипирование
Поиск причины

• Анализ memory-dump/корок
• Профилирование кода
• Анализ документации
• Трансляция кода
debug/to_yaml/inspect

• to_yaml - сериализация объекта
• inspect - дебаг-информация
• debug - хелпер для вьюх
• pp - форматированный вывод
Логи в rails


• Замена стандартного логера
• Несколько уровней логирования
• Анализ логов
ruby -rdebug test.rb


• В комплекте с Ruby
• Основной дебаг-функционал
ruby-debug


• Написан на C
• rdebug test.rb
• Debbuger.start do ;end
vim-ruby-debugger

• Плагин к VIM
• Окно с переменными
• Брекпоинты
• Есть ньюанс с OS X
vim-ruby-debugger
Pry/Pry-rails

• Альтернатива стандартному IRB
• show-method/show-doc
• ls/cd
• edit-method
• find-method -c
Что ещё?


• Unit-тесты
• Патчи к ~/.irbrc
• Профайлинг приложения
Итоги

• Используйте инструменты
• Исследуйте гемы
• Пишите тесты
• Будте любопытны!
Вопросы?
 Андрей Суббота
subbota@gmail.com

More Related Content

PPTX
Егор Гришечко «Async/Await и всё, что вы боялись спросить»
PDF
Управляемые набеги саранчи, или нагрузочное тестирование с Locust
PDF
UICov - инструмент анализа покрытия UI-тестами
PPTX
Основы и применение статического анализа кода при разработке лекция 1
PDF
Serghei Iakovlev "Chaos engineering in action"
PDF
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
PDF
Anton Tsitou "Cycle ORM and Graphs"
PDF
Использовании TypeScript для Node.js
Егор Гришечко «Async/Await и всё, что вы боялись спросить»
Управляемые набеги саранчи, или нагрузочное тестирование с Locust
UICov - инструмент анализа покрытия UI-тестами
Основы и применение статического анализа кода при разработке лекция 1
Serghei Iakovlev "Chaos engineering in action"
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
Anton Tsitou "Cycle ORM and Graphs"
Использовании TypeScript для Node.js

What's hot (20)

PDF
Что такое Robot Framework?
PPTX
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
PDF
Быстрое расширение Robot Framework под свои нужды с использованием Python
PPTX
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
PPT
Refactorings with RubyMine
PDF
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
PPTX
Кирилл Комлев. О реализации continuous integration для web проектов
PDF
Robot Framework: универсальный инструмент автоматизатора
PPT
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...
PDF
JPHP - О проекте на простом языке
PDF
Akka: как я перестал бояться и полюбил асинхронный код
PPTX
TMPA-2013: Shipin System-C Control Points
PDF
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
PPTX
Грязная автоматизация
PPTX
Опыт эксплуатации большого проекта на Ruby
PPTX
Контроль качества и сопровождение программ в реальном времени
PDF
My talk on PgDay Russia 2014
PDF
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
PPT
Console application with ZF 2.0
Что такое Robot Framework?
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Быстрое расширение Robot Framework под свои нужды с использованием Python
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
Refactorings with RubyMine
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
Кирилл Комлев. О реализации continuous integration для web проектов
Robot Framework: универсальный инструмент автоматизатора
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...
JPHP - О проекте на простом языке
Akka: как я перестал бояться и полюбил асинхронный код
TMPA-2013: Shipin System-C Control Points
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Грязная автоматизация
Опыт эксплуатации большого проекта на Ruby
Контроль качества и сопровождение программ в реальном времени
My talk on PgDay Russia 2014
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
Console application with ZF 2.0
Ad

Viewers also liked (20)

PDF
Deploy.rb, Ilya Zykin, Rails club2016
PDF
Фронтенд для рубиста
PPTX
Призма24 - Маркетплейсы.
PPTX
Rails Concerns
PDF
RSpec. Part 2
PPTX
развертывание среды Rails (антон веснин, Locum Ru)
PDF
Assets Pipeline
PDF
PDF
RSpec. Part 1
ODP
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
PDF
RSpec. Part 3
ODP
Ruby on Rails for noobs
PDF
Как сделать контрибут в Ruby on Rails
PDF
10 reasons I love RubyOnRails
PPT
Александр Тищенко - "Антикризисная презентация"
ODP
I18n ruby-приложений
PDF
Когда технологий много - iForum 2013
PDF
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
PPTX
Why does code style matter?
PDF
Секретный доклад о React Router - OdessaJS 2014
Deploy.rb, Ilya Zykin, Rails club2016
Фронтенд для рубиста
Призма24 - Маркетплейсы.
Rails Concerns
RSpec. Part 2
развертывание среды Rails (антон веснин, Locum Ru)
Assets Pipeline
RSpec. Part 1
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
RSpec. Part 3
Ruby on Rails for noobs
Как сделать контрибут в Ruby on Rails
10 reasons I love RubyOnRails
Александр Тищенко - "Антикризисная презентация"
I18n ruby-приложений
Когда технологий много - iForum 2013
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
Why does code style matter?
Секретный доклад о React Router - OdessaJS 2014
Ad

Similar to Debbug Rails Application For Dummies (20)

PPT
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
PDF
Корпоративное приложение на Rails
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
PPTX
Gradle. Новый уровень автоматизации для Android
PPTX
Платформа .NET Core глазами PHP-разработчика
PDF
Непрерывная интеграция - шаг к непрерывному деплойменту
PPTX
Test Driven Development in .NET Applications
PDF
TК°Conf. Организация разработки Frontend. Виталий Слободин.
KEY
Migrate!
PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
PPTX
Test driven development in net
PDF
Как автоматизировать комплексные системы
PDF
Разговор про Java 9. Extended version
PPT
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PDF
Component Inspector
PDF
PDF
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
Корпоративное приложение на Rails
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
Платформа .NET Core глазами PHP-разработчика
Непрерывная интеграция - шаг к непрерывному деплойменту
Test Driven Development in .NET Applications
TК°Conf. Организация разработки Frontend. Виталий Слободин.
Migrate!
непрерывная интеграция шаг к непрерывному деплою родионов игорь
Test driven development in net
Как автоматизировать комплексные системы
Разговор про Java 9. Extended version
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Повышение качества тестов и автоматическая валидация REST API документации
Component Inspector
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...

Debbug Rails Application For Dummies