Библиотека knigago >> Литература по изданиям >> Современные российские издания >> Экстремальное программирование: Разработка через тестирование


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 810, книга: Мы 1991 №10
автор: журнал «Мы»

Журнал «Мы» – культовое издание для детей и подростков советской эпохи. Десятый номер за 1991 год представляет собой уникальный срез атмосферы и событий того времени. В этом выпуске читатели найдут статьи о политических переменах, происходивших в стране, и о зарождающейся демократии. Освещаются такие важные темы, как свобода слова и права человека. Журнал не боится поднимать острые вопросы и представляет различные точки зрения. Помимо политической тематики, в номере есть и традиционные...

СЛУЧАЙНАЯ КНИГА

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

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

Жанр:

Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Отладка, тестирование и оптимизация ПО, Программирование: прочее

Изадано в серии:

Библиотека программиста

Издательство:

Питер

Год издания:

ISBN:

978-5-496-02570-6

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Экстремальное программирование: Разработка через тестирование"

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


К этой книге применимы такие ключевые слова (теги) как: тестирование,искусство программирования,разработка программного обеспечения

Читаем онлайн "Экстремальное программирование: Разработка через тестирование" (ознакомительный отрывок). [Страница - 5]

плану, и вдруг все меняется. Надо сказать, это было кошмаром не только для Уорда – босс, съевший собаку на управлении программными проектами, тоже не знал, что ответить.

Система WyCash была разработана небольшой командой программистов за пару лет. Она позволяла работать с большинством ценных бумаг с фиксированным доходом, имеющих хождение на американском рынке. Более того, она поддерживала некоторые редкие инструменты рынка ценных бумаг, например гарантированные инвестиционные контракты (Guaranteed Investment Contracts), и этим выгодно отличалась от конкурентов.

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

В течение последних шести месяцев Уорд и остальные члены команды постепенно уменьшали количество обязанностей класса Dollar. Оказалось, что числовые классы языка Smalltalk вполне подошли для реализации вычислений, а для округления до трех десятичных знаков был написан специальный код. Результаты вычислений становились все точнее и точнее, и в конце концов сложные алгоритмы тестирования, выполнявшие сравнение величин с учетом погрешности, были заменены простым сравнением реального и ожидаемого результатов.

За форматирование результатов в действительности отвечали классы пользовательского интерфейса, а не класс Dollar. Так как соответствующие тесты были написаны на уровне этих классов, в частности для подсистемы отчетов[2], поэтому предполагаемые изменения не должны были их коснуться. В результате, спустя шесть месяцев, у объекта Dollar осталось не так уж много обязанностей…

Один из наиболее сложных алгоритмов, вычисление средневзвешенных величин, также постепенно менялся. Вначале существовало много различных реализаций этого алгоритма, разбросанных по всему коду. Однако позже, с появлением подсистемы отчетов, стало очевидно, что существует только одно место, где этот алгоритм должен быть реализован, – класс AveragedColumn. Именно этим классом и занялся Уорд.

Если бы удалось внедрить в этот алгоритм поддержку работы с несколькими валютами, система в целом смогла бы стать «мультивалютной». Центральная часть алгоритма отвечала бы за хранение количества денег «в столбце». При этом алгоритм должен быть достаточно абстрактным для вычисления средневзвешенных величин любых объектов, которые поддерживали арифметические операции. К примеру, с его помощью можно было бы вычислять средневзвешенное календарных дат.

Выходные прошли как обычно – за отдыхом, а в понедельник утром босс поинтересовался: «Ну как, мы сможем это сделать?» – «Дайте мне еще день, и я скажу точно», – ответил Уорд.

В вычислении средневзвешенной величины объект Dollar как бы являлся переменной. В случае наличия нескольких валют потребовалось бы по одной переменной на каждый тип валюты, нечто вроде многочлена. Только вместо 3x2 и 4y3 – 15 USD и 20 °CHF[3].

Быстрый эксперимент показал, что при вычислениях можно работать не с объектом Dollar (доллар), а с более общим объектом – Currency (валюта). При этом, если выполнялась операция над двумя различными валютами, значение следовало возвращать в виде объекта PolyCurrency (мультивалютный). Сложность заключалась в том, чтобы добавить новую функциональность, не сломав при этом то, что уже работает. А что, если просто прогнать тесты?

После добавления к классу Currency нескольких (пока нереализованных) операций большинство тестов все еще успешно выполнялось; к концу дня проходили все тесты. Уорд интегрировал новый код в текущую версию и пошел к боссу. «Мы сможем это сделать», – уверенно сказал он.

Давайте задумаемся над этой историей. Через пару дней потенциальный рынок для системы WyCash увеличился в несколько раз, соответственно подскочила ее ценность. Важно, что возможность создать значительную бизнес-ценность за такое короткое время не была случайной. Свою роль сыграли следующие факторы:

• Метод – Уорду и команде разработки WyCash потребовался опыт в пошаговом наращивании проектных возможностей системы, с хорошо отработанным механизмом внесения изменений.

• Мотив – Уорду и его команде было необходимо четкое представление о значимости поддержки мультивалютности в WyCash, а также --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Другие книги из серии «Библиотека программиста»:

Язык СИ для профессионалов.  Коллектив авторов
- Язык СИ для профессионалов

Жанр: C, C++, C#

Год издания: 1991

Серия: Библиотека программиста

Отзывчивый дизайн на HTML5 и CSS3 для любых устройств. Бен Фрэйн
- Отзывчивый дизайн на HTML5 и CSS3 для любых устройств

Жанр: Web-дизайн

Год издания: 2022

Серия: Библиотека программиста

Python. Лучшие практики и инструменты. Михал Яворски
- Python. Лучшие практики и инструменты

Жанр: Python

Год издания: 2021

Серия: Библиотека программиста

C++17 STL Стандартная библиотека шаблонов. Яцек Галовиц
- C++17 STL Стандартная библиотека шаблонов

Жанр: Базы данных

Год издания: 2018

Серия: Библиотека программиста