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

Я признаю, что все эти мысли несколько сыроваты. Когда я пишу это, я по-прежнему не уверен в том, о чем рассказываю. Я знаю, что буду обдумывать все эти идеи еще в течение нескольких, а может быть, и многих месяцев. Однако я полагаю, что эти идеи должны вам понравиться. Прежде всего, они стимулируют размышления о более крупной картине, в которую вписывается разработка через тестирование. Мы еще не видим эту картину достаточно четко, однако мне кажется, что она постепенно становится все яснее и яснее.

Примечания

1

Бек К. Экстремальное программирование. СПб.: Питер, 2002. ISBN 5-94723-032-1.

2

Подробнее о подсистеме отчетов рассказано на с2.com/doc/oopsla91.html.

3

USD – доллары США, CHF – швейцарские франки. – Примеч. пер.

4

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

5

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

6

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

7

В переводе на русский язык sum – это сумма. – Примеч. пер.

8

Используя игру слов (английское change означает как «изменение», так и «обмен»), автор намекает на свою знаменитую книгу-бестселлер Extreme Programming Explained: Embrace Change. Русский перевод: Бек К. Экстремальное программирование. СПб.: Питер, 2002. 224 с. – Примеч. ред.

9

Fractals and Scaling in Finance / Benoit Mandelbrot, editor. SpringerVerlag, 1997. ISBN: 0387983635

10

В переводе с английского языка was run означает был выполнен. – Примеч. пер.

11

В языке Python заголовок определения метода (функции) начинается со служебного слова def, а завершается двоеточием. Операторы тела метода записываются ниже, в отдельных строчках. Группировка операторов тела определяется отступами (вместо фигурных скобок). – Примеч. ред.

12

Спасибо Дункану Бусу (Duncan Booth) за то, что он исправил допущенную мной ошибку, типичную для малоопытных программистов на Python, и подсказавшему мне решение, в большей степени соответствующее этому языку.

13

В переводе с английского языка assert означает утверждать, предполагать. Иначе говоря, оператор assert фиксирует предположение о прогнозируемом результате теста. – Примеч. науч. ред.

14

Имеются в виду пожелания пользователей (user stories). Другой вариант перевода: пользовательские истории. – Примеч. пер.

15

Спасибо Джиму Ньюкирку (Jim Newkirk) и Лорану Боссави (Laurent Bossavit) за то, что независимо друг от друга предложили мне этот шаблон.

16

Например, www.mockobjects.com.

17

Спасибо Дирку Кенигу (Dierk König) за пример.

18

Спасибо Лорану Боссави за дискуссию.

19

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

20

В переводе с английского fixture означает арматура, оснастка, зафиксированная деталь некоторого движущегося механизма. – Примеч. пер.

21

McConnell, Steve. Code Complete, chapter 4. Seattle, Washington: Microsoft Press. 1993.

22

Caine, S. H., Gordon, E. K. 1975. PDL: A Tool for Software Design, AFIPS Proceedings of the 1975 National Computer Conference.

23

В среде англоязычных программистов запись в базе данных иногда обозначается термином tuple – кортеж. – Примеч. пер.

24

Alexander Christopher. Noteson the Synthesis of Form. Cambridge, MA: Harvard University Press, 1970.

25

Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John. Design Patterns: Elements of Reusable Object Oriented Software. Boston: Addisoh-Wesley, 1995. Русское издание: Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб.: Питер, 2001.

26

Подробнее об этом шаблоне рассказывается в книге Beck, К. The Smalltalk Best Practice Patterns. Pp. 70–73. Englewood-Cliffs, NJ: Prentice-Hall, 1997. Ссылаться на свои собственные работы – это не самая лучшая идея, однако, как говорил философ Филлис Диллер (Phyllis Diller): «Конечно же, я смеюсь над собственными шутками, просто я не доверяю никому, кроме себя».

27

Fowler, Martin. Refactoring: Improving the Design of Existing Code. Boston: Addison-Wesley, 1999. Русское издание: Фаулер. М. Рефакторинг: улучшение существующего кода. СПб.: Символ-Плюс, 2003

28

Один из основных принципов объектно-ориентированного программирования, утверждающий, что разрабатываемый код должен быть достаточно гибким, чтобы его можно было повторно использовать без дополнительных модификаций (то есть он должен быть открыт для использования, но закрыт для модификаций). – Примеч. пер.

29

Binder, Bob. Testing Object-Oiiented Systems: Models, Patterns, and Tools. Boston: Addison-Wesley, 1999. Это действительно исчерпывающее руководство по тестированию.

30

Mars Lander – американский космический аппарат, был запущен в сторону Марса 3 января 1999 г. 3 декабря 1999 г. аппарат должен был осуществить посадку на Марс, однако в этот день связь с ним была потеряна, предположительно из-за ошибки в программном обеспечении. Стоимость миссии составила приблизительно 120 млн долларов, не считая стоимости ракеты-носителя и некоторого дополнительного оборудования. – Примеч. пер.

31

Боб Мартин – известный деятель движения Agile Development (гибкая разработка), которого часто с уважением называют дядей. – Примеч. пер.

32

Weinberg, Gerald. Systems Thinking. Quality Software Management. New York: Dorset House, 1992.

33

Если исходить из примеров диаграмм взаимовлияния, приводимых автором книги, элемент этого типа может также называться «характеристика». – Примеч. пер.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату