Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 426 >> Следующая

реальных действий, может не генерировать реальные результаты -
она должна быть просто скелетом, достаточно крепким,
Перегретая ссылка 0 применении инкрементных стратегий при
интеграции системы см. раздел 29,2,
ГЛАВА 2 Метафоры, позволяющие лучше понять разработку ПО
15
чтобы поддерживать реальную систему по мере ее разработки. Она
может вызывать поддельные классы для каждой из определенных
вами основных функций. Такая система похожа на песчинку, с
которой начинается образование жемчужины.
Создав скелет, вы начинаете понемногу наращивать плоть. Каждый
из фиктивных классов вы заменяете реальным. Вместо того чтобы
имитировать ввод данных, вы пишете код, на самом деле
принимающий реальные данные. А вместо имитации вывода данных -
код, на самом деле выводящий данные. Вы продолжаете добавлять
нужные фрагменты, пока не получаете полностью рабочую систему.
Эффективность такого подхода можно подтвердить двумя
впечатляющими примерами. Фред Брукс, который в 1975 г.
предлагал выбрасывать первый экземпляр программы, заявил, что
за десять лет, прошедших с момента написания им знаменитой
книги "Мифический человеко-месяц", ничто не изменяло его
работу и ее эффективность так радикально, как инкрементная
разработка (Brooks, 1995). Аналогичное заявление было сделано
Томом Гилбом в революционной книге "Principles of Software
Engineering Management" (Gilb, 1988), в которой он представил
метод эволюционной поставки программы (evolutionary delivery)
и разработал многие основы современного гибкого
программирования (agile programming). Многие другие
современные методологии также основаны на идее инкрементной
разработки (Beck, 2000; Cockburn, 2002; Highsmith, 2002;
Reifer, 2002; Martin, 2003; Larman, 2004).
Достоинство инкрементной метафоры в том, что она не дает
чрезмерных обещаний. Кроме того, она не так легко поддается
неуместному расширению, как сельскохозяйственная метафора.
Раковина, формирующая жемчужину, - хороший вариант
визуализации инкрементной разработки, или аккреции.
Строительная метафора: построение ПО
Метафора "построения" ПО полезнее, чем метафоры "написания"
или "выращивания" ПО, так как согласуется с идеей аккреции ПО
и предоставляет более детальное руководство. Построение ПО
подразумевает наличие стадий планирования, подготовки и
выполнения, тип и степень выраженности которых зависят от
конкретного проекта. При изучении этой метафоры вы найдете и
другие параллели.
Для построения метровой башни требуется твердая рука, ровная
поверхность и
10 пивных банок, для башни же в 100 раз более высокой
недостаточно иметь в 100 раз больше пивных банок. Такой проект
требует совершенно иного планирования и конструирования.
Если вы строите простой объект, скажем, собачью конуру, вы
можете пойти в хозяйственный магазин, купить доски, гвозди, и
к вечеру у Фидо будет новый дом. Если вы забудете про лаз или
допустите какую-нибудь другую ошибку, ничего страшного: вы
можете ее исправить или даже начать все сначала (рис. 2-3).
Все, что вы при этом потеряете, - время. Такой свободный
подход уместен и в небольших программных проектах. Если вы
плохо спроектируете 1000 строк кода, то сможете выполнить
рефакторинг или даже начать проект заново, и это не приведет к
крупным потерям.

16
ЧАСТЬ I Основы разработки ПО

Рис. 2-3. За ошибку; допущенную при создании простого объекта
приходится расплачиваться лишь потраченным временем и,
возможно, некоторым разочарованием
Построить дом сложнее, и плохое проектирование при этом
приводит к куда более серьезным последствиям. Сначала вы
должны решить, какой тип здания вы хотите построить, что
аналогично определению проблемы при разработке ПО. Затем вы с
архитектором должны разработать и утвердить общий план, что
похоже на разработку архитектуры. Далее вы чертите подробные
чертежи и нанимаете бригаду строителей - это аналогично
детальному проектированию ПО. Вы готовите стройплощадку,
закладываете фундамент, создаете каркас дома, обшиваете его,
кроете крышу и проводите в дом все коммуникации - это похоже
на конструирование ПО. Когда строительство почти завершено, в
дело вступают ландшафтные дизайнеры, маляры и декораторы,
делающие дом максимально удобным и привлекательным. Это
напоминает оптимизацию ПО. Наконец, на протяжении всего
строительства вас посещают инспекторы, проверяющие
стройплощадку, фундамент, электропроводку и все, что можно
проверить. При разработке ПО этому соответствуют обзоры и
инспекция проекта.
И в строительстве, и в программировании увеличение сложности и
масштаба проекта сопровождается ростом цены ошибок. Конечно,
для создания дома нужны довольно дорогие материалы, однако
главной статьей расходов является оплата труда рабочих.
Перемещение стены на 15 см обойдется дорого не потому, что при
этом будет потрачено много гвоздей, а потому, что вам придется
оплатить дополнительное время работы строителей. Чтобы не
тратить время на исправление ошибок, которых можно избежать,
Предыдущая << 1 .. 9 10 11 12 13 14 < 15 > 16 17 18 19 20 21 .. 426 >> Следующая