Кент Бек

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


Скачать книгу

пер.

      4

      Название метода times() можно перевести на русский как «умножить на». – Примеч. пер.

      5

      Код с душком (code that smells) – распространенная в XP метафора, означающая плохой код (содержащий дублирование). – Примеч. пер.

      6

      Имеется в виду индикатор успешного выполнения тестов в среде JUnit, имеющий форму полосы. Если все тесты выполнились успешно, полоса становится зеленой. Если хотя бы один тест потерпел неудачу, полоса становится красной. – Примеч. пер.

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