Интересную тему поднял СанЁк с Виталиком на недавнем тренинге Coding Dojo.
Есть пара программистов, работают по TDD, реализуют фичу. Вроде и тесты зелёные, и простая реализации кода. Но что-то беспокоит - ощущение, что что-то не сделано. Как же создать новые тесты, и чтобы красные они были?...По идее напарник должен был бы помочь. Но может случиться что у пары нет идей?
Позвать третьего? Тоже вариант. Но тогда ему надо вникнуть в таск хорошенько) желательно с предысторией. Подвариант: ничего ему не рассказывать, только дать условия задачи и код с тестами. Пусть сам разберётся, без тех констрейнтов которые у пары уже сформировались и которые возможно мешают увидеть картинку с высоты птичьего полёта.
Сделать перерыв и вернуться к этому позже? Вполне может быть... У меня по дороге домой столько идей роилось по поводу того как можно улучшить мой алгоритм игры в бомбермена и даже баги мысленно нашёл) Но что сделать, если таск надо сделать здесь и сейчас и значит перерыв не покатит?
5 минут по-любому надо выкроить. И отойти от компа подальше...
А может удалить парочку тестов (или все)? Вдруг их наличие давит на подсознание и мешает генерировать что-то новое?
Пойти в крайности? Попытаться понять что является крайним случаем для этой задачи. А может "крайность" эта относительная, зависит не от задачи, а от текущей реализации? Т.е. попытаться почувствовать для каких диапазонов входных эта реализация рулит, а для каких чувствуется, что не будет работать.
Задокументировать реализацию, не меняя сам код. Например отжавадокировать/прокомментировать свою реализацию. Вот представь что тесты твои читать никто не будет. Объясни читателю кода почему твои магические 3 и 5 будут работать хорошо для этой задачи.
Отрефакторить реализацию. Магию констант обозвать... Даже переменные переименовать. Повыносить методы итд. Что угодно чтобы реализация преобразилась и можно было взглянуть на неё под другим углом.
Попытаться переформулировать задачу. Представить себе понятия реального мира, которыми можно заменить то что требуется в задаче.
Комментариев нет:
Отправить комментарий