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

Шрифт
Интервал

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

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


Рекомендуем почитать
Язык PL/SQL

В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.


Пишем драйвер Windows на ассемблере

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


Язык программирования С# 2005 и платформа .NET 2.0.

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.


Вариации на тему STL. Адаптер обобщенного указателя на функцию-член класса

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


Информационная технология. Руководство по управлению документированием программного обеспечения

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИИнформационная технологияРУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯInformation technology. Guidelines for the management of software documentationИздание официальноеДата введения 1994-07-01ГОССТАНДАРТ РОССИИ Москва© Издательство стандартов, 1994.


Самоучитель UML

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