2011-04-03

Bear-Driven Development

Мой коллег Олег, бывает, подходит ко мне с каким-нибудь космическим совершенно вопросом, задает его где-то до середины, просветленно машет рукой и уходит. На мой очередной "шозанах" был ответ, что я отличный медведь, и чтобы я продолжал в том же духе. Не ручаюсь за точность, но как-то так.



Пришлось копнуть вглубь интернетов. Оказывается, товарищ практикует rubber duck debugging в его классической форме. Суть такова: свою проблему надо кому-нибудь объяснить, изложить человеческим языком. В процессе объяснения проблемы как правило находится решение.

В случае rubber duck debugging английская википедия ссылается на неизвестного программера, который построчно объяснял код резиновой уте (да, как у Лебедева, которая v1). Медведя же упоминал сам Керниган:

Another effective [debugging] technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed "Never mind. I see what's wrong. Sorry to bother you." This works remarkbly well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.


-- "The Practice of Programming" by Brian W. Kernighan and Rob Pike

Чудодейтсвенный метод. Нет, правда. Я тут же загорелся и начал практиковать. За неимением физического теддибира и возможности таскать его всюду с собой решил проблему программным путем -- настроил показ картинки с медведем по шорткату.

В Убунте делается элементарно:

System / Preferences / Keyboard Shortcuts / Add


и затем



Потом назначаем желаемый шорткат (у меня это Ctrl+Alt+B), по которому поверх всех окон всплывает такая вот прелесть:



Все, можно объяснять свою проблему. Если проблема сложная, можно дополнительно нажать F11, и медведь заполонит весь экран. Осталось написать скрипт, который будет менять медведей время от времени.

Продуктивность повысилась настолько, что появилось время писать в бложик.

No comments: