Книга: Экстремальное программирование. Разработка через тестирование
Насколько большими должны быть шаги?
Насколько большими должны быть шаги?
В этом вопросе на самом деле скрыто два вопроса:
• Какой объем функциональности должен охватывать каждый тест?
• Как много промежуточных стадий должно быть преодолено в процессе каждого сеанса рефакторинга?
Вы можете писать тесты так, что каждый из них будет требовать добавления в функциональный код единственной строки и выполнения небольшого рефакторинга. Вы также можете писать тесты так, что каждый из них будет требовать добавления в функциональный код сотен строк, при этом у вас будут уходить часы на рефакторинг. Какой из этих путей лучше?
Часть ответа состоит в том, что вы должны уметь работать и так и этак. Общая тенденция TDD очевидна – чем меньше шаги, тем лучше. В данной книге мы занимались разработкой маленьких тестов на уровне отдельных фрагментов программы. Однако некоторые программисты экспериментируют в области разработки программ, исходя из тестов на уровне всего приложения.
Если вы только приступаете к освоению рефакторинга, вы должны двигаться маленькими шажками. Процесс ручного рефакторинга чреват ошибками. Чем больше ошибок вы наделаете, тем меньшим будет ваше желание выполнять рефакторинг в дальнейшем. После того как вы 20 раз проделаете рефакторинг малюсенькими шажками, можете приступать к экспериментам по удлинению этих шажков.
Автоматизация существенно ускоряет процессы, связанные с рефакторингом. То, что раньше требовало выполнения 20 маленьких шагов вручную, теперь становится единственным пунктом в меню. Количество изменений, выполняемых в ходе сеанса рефакторинга увеличивается на порядок, и это неизменно сказывается на качестве. Когда вы знаете, что в вашем распоряжении великолепный инструмент, вы становитесь более агрессивным при выполнении рефакторинга. Вы пытаетесь ставить больше экспериментов и смотреть, какой способ структурирования кода лучше.
На момент написания данной книги браузер рефакторинга Refactoring Browser for Smalltalk по-прежнему является наилучшим инструментом в этой категории. В настоящее время многие среды разработки для Java поддерживают развитые средства рефакторинга. Кроме того, поддержка рефакторинга появилась и в других языках и средах разработки.
- Насколько большими должны быть шаги?
- Что не подлежит тестированию?
- Как определить качество тестов?
- Как TDD способствует созданию инфраструктур?
- Сколько должно быть тестов?
- Когда следует удалять тесты?
- Как язык программирования и среда разработки влияют на TDD?
- Можно ли использовать TDD для разработки крупномасштабных систем?
- Можно ли осуществлять разработку через тестирование на уровне приложения?
- Как перейти к использованию TDD в середине работы над проектом?
- Для кого предназначена методика TDD?
- Зависит ли эффективность TDD от начальных условий?
- Как методика TDD связана с шаблонами?
- Почему TDD работает?
- Что означает название?
- Как методика TDD связана с практиками экстремального программирования?
- Нерешенные проблемы TDD
- При копировании с жесткого диска на «флэшку» иногда появляется сообщение о дополнительной присоединенной информации, кот...
- Первые шаги в нефтяном деле
- В дисках используется не NTFS, а я хочу защитить свои данные. Как быть?
- Вот уже в который раз при работе в сети появляется сообщение от других пользователей. Что это может быть?
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- При попытке установить принтер появляется сообщение Невозможно завершение операции. Подсистема печати недоступна. В чем ...
- Глава 4 Скрытое рекламное послание: как успешно продавать и не быть навязчивым
- Зачем вашей компании может быть нужен корпоративный блог?
- Основные шаги
- Насколько важен контроль над ситуацией?
- Насколько важно быть крутым?
- Производители традиционных брендов должны пересмотреть свою стратегию