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

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

СКАЧАТЬ в десятку лучших разработчиков планеты и у вас нет приличного счета в банке (настолько приличного, чтобы попросить босса погулять, пока вы занимаетесь делом), такие подвиги не для вас?

      Нет, вовсе нет. Всегда можно развернуть проект так, чтобы работа над ним стала творческой и интересной, даже если вы обычный разработчик и прогибаетесь под обстоятельства, когда приходится туго. Разработка через тестирование (Test-Driven Development, TDD) – это набор способов, ведущих к простым программным решениям, которые может применять любой разработчик, а также тестов, придающих уверенность в работе. Если вы гений, эти способы вам не нужны. Если вы тугодум – они вам не помогут. Для всех остальных, кто находится между этими крайностями, следование двум простым правилам поможет работать намного эффективнее:

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

      • устраните дублирование.

      Как конкретно следовать этим правилам, какие существуют в данной области нюансы и какова область применимости этих способов – все это составляет тему книги, которую вы сейчас читаете. Вначале мы рассмотрим объект, созданный Уордом в момент вдохновения, – мультивалютные деньги (multi-currency money).

      Часть I

      На примере денег

      Мы займемся реализацией примера, разрабатывая код полностью на основе тестирования (кроме случаев, когда в учебных целях будут допускаться преднамеренные ошибки). Моя цель – дать вам почувствовать ритм разработки через тестирование (TDD). Кратко можно сказать, что TDD заключается в следующем:

      • Быстро создать новый тест.

      • Запустить все тесты и убедиться, что новый тест терпит неудачу.

      • Внести небольшие изменения.

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

      • Провести рефакторинг для устранения дублирования.

      Кроме того, придется найти ответы на следующие вопросы:

      • Как добиться того, чтобы каждый тест охватывал небольшое приращение функциональности?

      • Как и за счет каких небольших и, наверное, неуклюжих изменений обеспечить успешное прохождение новых тестов?

      • Как часто следует запускать тесты?

      • Из какого количества микроскопических шагов должен состоять рефакторинг?

      1. Мультивалютные деньги

      Вначале мы рассмотрим объект, созданный Уордом для системы WyCash, – мультивалютные деньги (см. «Введение»). Допустим, у нас есть отчет вроде этого.

      Добавив различные валюты, получим мультивалютный отчет.

      Также необходимо указать курсы обмена.

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

      $5 * 2 = $10

      Что нам понадобится, чтобы сгенерировать такой СКАЧАТЬ