Knigionline.co » Компьютеры » Экстремальное программирование. Разработка через тестирование

Экстремальное программирование. Разработка через тестирование - Кент Бек (2003)

Экстремальное программирование. Разработка через тестирование
  • Год:
    2003
  • Название:
    Экстремальное программирование. Разработка через тестирование
  • Автор:
  • Жанр:
  • Оригинал:
    Английский
  • Язык:
    Русский
  • Перевел:
    П. Анджан
  • Издательство:
    Питер
  • Страниц:
    11
  • ISBN:
    978-5-496-02570-6
  • Рейтинг:
    2.3 (7 голос)
  • Ваша оценка:
Возвращение известнейшего блокбастера. Изысканный, гибкий и понятный код, который просто видоизменить, который тактично трудится и который не подкидывает собственным разработчикам досадных сюрпризов. Неуж-то аналогичное возможно? Дабы добиться цели, вспомните опробывать программку ещё до такого, как она написана. Как раз эта феноменальная мысль положена в базу способа TDD (Test-Driven-Development – разработка, базирующаяся на тестировании). Не торопитесь создавать скороспелые выводы. Рассматривая использование TDD на случае разработки реального программного кода, создатель показывает простоту и силу данной способа. В книжке приведены 2 программных плана, полностью и всецело реализованных с внедрением TDD. За рассмотрением примеров идет по стопам широкий каталог способов работы в манере TDD, а еще паттернов и рефакторингов, имеющих отношение к TDD. Книжка может быть полезна для разработчика программного обеспечения, желающего увеличить производительность собственной работы.

Экстремальное программирование. Разработка через тестирование - Кент Бек читать онлайн бесплатно полную версию книги

Такие шаги кажутся вам слишком мелкими? Помните, TDD не обязывает двигаться только микроскопическими шагами, речь идет о способности совершать эти микроскопические шаги. Буду ли я программировать день за днем такими маленькими шагами? Нет. Но когда дела совсем плохи, я рад возможности выполнять хоть такие шаги. Примените микроскопические шаги к любому собственному примеру. Если вы сможете продвигаться маленькими шагами, вы сумеете делать шаги более крупного и подходящего размера. Если же вы способны делать только огромные шаги, вы никогда не распознаете ситуацию, в которой более уместны меньшие шаги.

Оставим рассуждения. На чем мы остановились? Ну да, мы избавлялись от дублирования между кодом теста и рабочим кодом. Где мы можем взять 5? Это значение передавалось конструктору, поэтому его можно сохранить в переменной amount:

Dollar

Dollar(int amount) {

this.amount = amount;

}

и использовать в методе times():

Dollar

void times(int multiplier) {

amount = amount * 2;

}

Число 2 передается в параметре multiplier, поэтому подставим параметр вместо константы:

Dollar

void times(int multiplier) {

amount= amount * multiplier;

}

Чтобы продемонстрировать, как хорошо мы знаем синтаксис языка Java, используем оператор *= (который, кстати, уменьшает дублирование):

Dollar

void times(int multiplier) {

amount *= multiplier;

}

$5 + 1 °CHF = $10, если курс обмена 2:1

$5 * 2 = $10

Сделать переменную amount закрытым членом класса

Побочные эффекты в классе Dollar?

Округление денежных величин?

Теперь можно пометить первый тест как завершенный. Далее мы позаботимся о тех странных побочных эффектах; но сначала давайте подведем итоги. Мы сделали следующее:

• создали список тестов, которые – мы знаем – нам понадобятся;

• с помощью фрагмента кода описали, какой мы хотим видеть нашу операцию;

• временно проигнорировали особенности среды тестирования JUnit;

• заставили тесты компилироваться, написав соответствующие заготовки;

• заставили тесты работать, использовав сомнительные приемы;

• слегка улучшили работающий код, заменив константы переменными;

• добавили пункты в список задач, вместо того чтобы заняться всеми этими задачами сразу.

2. Вырождающиеся объекты

Обычный цикл разработки на основе тестирования состоит из следующих этапов:

1. Напишите тест. Представьте, как будет реализована в коде воображаемая вами операция. Продумав ее интерфейс, опишите все элементы, которые, как вам кажется, понадобятся.

2. Заставьте тест работать. Первоочередная задача – получить зеленую полоску. Если напрашивается простое и элегантное решение, используйте его. Если же на реализацию такого решения потребуется время, отложите его. Просто отметьте, что к нему нужно вернуться, когда будет решена основная задача – быстро получить зеленый индикатор. Такой подход довольно неприятен для опытных разработчиков (в эстетическом плане), ведь они следуют только правилам хорошей разработки. Но зеленая полоска прощает все грехи, правда, всего лишь на мгновение.

3. Улучшите решение. Теперь, когда система работает, избавьтесь от прошлых огрехов и вернитесь на путь истинной разработки. Устраните дублирование, которое вы внесли, и быстро сделайте так, чтобы полоска снова стала зеленой.

Перейти
Наш сайт автоматически запоминает страницу, где вы остановились, вы можете продолжить чтение в любой момент
Оставить комментарий