В отношении к коду - я в общем-то перфекционист. Я люблю "красивый" и "ровный" код. И чтобы его можно было легко поддерживать.
В отношении к тестам у меня выработались несколько иные критерии. Я уже писал - "лучше кривые и косые, но работающие два теста, чем один (да хоть сто) идеальных, но не написанных".
Тест для начала - ДОЛЖЕН БЫТЬ. Его надо написать с минимальными потерями, чтобы он проверял, то что должен проверять.
Не стоит тратить неделю на написание "идеального теста". Это действительно замедляет движение вперёд. "Огонь и движение". Главное - наличие результата.
А вот когда тест становится трудно сопровождать - тогда я останавливаюсь и смотрю - что же с ним делать. Либо выкинуть, либо написать новый (с учётом опыта и новых обстоятельств), либо отрефакторить.
Ещё раз повторюсь - "огонь и движение". Иначе заминки дают почву для рассуждений на тему - "ах тесты усложняют жизнь и снижают производительность". А там и до рассуждений - "детализация ТЗ снижает производительность" - недалеко.
Всё вышесказанное не означает призыва "метать дурно пахнущий код". Отнюдь - нет. Просто надо всегда помнить о темпе. И нельзя позволять себе находить "отговорки" и поле для неоправданного тайм-аута типа "я сейчас пару недель подумаю и напишу супер тест". Мой опыт подсказывает, что эти "пару недель" просто будут потрачены впустую.
Попробуйте. Может быть вам понравится.
В отношении к тестам у меня выработались несколько иные критерии. Я уже писал - "лучше кривые и косые, но работающие два теста, чем один (да хоть сто) идеальных, но не написанных".
Тест для начала - ДОЛЖЕН БЫТЬ. Его надо написать с минимальными потерями, чтобы он проверял, то что должен проверять.
Не стоит тратить неделю на написание "идеального теста". Это действительно замедляет движение вперёд. "Огонь и движение". Главное - наличие результата.
А вот когда тест становится трудно сопровождать - тогда я останавливаюсь и смотрю - что же с ним делать. Либо выкинуть, либо написать новый (с учётом опыта и новых обстоятельств), либо отрефакторить.
Ещё раз повторюсь - "огонь и движение". Иначе заминки дают почву для рассуждений на тему - "ах тесты усложняют жизнь и снижают производительность". А там и до рассуждений - "детализация ТЗ снижает производительность" - недалеко.
Всё вышесказанное не означает призыва "метать дурно пахнущий код". Отнюдь - нет. Просто надо всегда помнить о темпе. И нельзя позволять себе находить "отговорки" и поле для неоправданного тайм-аута типа "я сейчас пару недель подумаю и напишу супер тест". Мой опыт подсказывает, что эти "пару недель" просто будут потрачены впустую.
Попробуйте. Может быть вам понравится.
Комментариев нет:
Отправить комментарий