Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

262m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 10. Код, который построил ДжекClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

сываются изменения, выполненные после предыдущей финальной версии, и перечисляются обновления, не попавшие в последний печатный вариант документации, отмечаются известные пробле% мы, даются инструкции по обновлению и т. д. Это важная часть про% цедуры выпуска финальной версии, которую нельзя пропустить.

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

При использовании разных параметров компилятора для обычной и финальной сборок проявляйте осторожность. Регулярно тести% руйте финальные сборки, не дожидаясь приближения окончатель% ного срока сдачи продукта. Старайтесь минимизировать различия между финальной и обычной сборками.

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

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

Мастер на все руки

Во многих организациях есть конкретный работник, занимающийся сборкой, которого часто называют мастером сборки (buildmaster). Его работа состоит в сопровождении системы сборки. В его обязанности могут входить планирование и реализация графиков сборки, либо он выполняет чисто технические функции. Мастер сборки должен глубо% ко разбираться в системе сборки. Он может настраивать систему, до% бавлять в нее нужные новые цели, сопровождать сценарии ночной сборки и т. д. Мастер сборки также ведет документацию по системе сборки, а возможно, и администрирует систему контроля версий.

Мастер сборки выполняет финальные сборки и поэтому часто занима% ется слежением за стабильностью компонент. В его обязанности вхо%

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

Резюмеm

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

263Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

дит обеспечение надежности и безопасности процесса выпуска оконча% тельной версии продукта.

Мастер сборки не всегда нанимается на полный рабочий день; иногда его обязанности по совместительству выполняет кто%то из програм% мистов.

Резюме

Ломать проще, чем строить.

Латинская пословица

На первый взгляд кажется, что в процедуре сборки программного обеспечения нет ничего сложного, если правильно выбрать инструмен% ты. Но этими инструментами нужно уметь пользоваться. Качество системы сборки имеет первостепенное значение; в отсутствие безопас% ной, надежной процедуры сборки разработать крепкий код невозмож% но. Выпустить надежный конечный продукт еще сложнее – для этого требуются тщательность и точность процедуры. Важно разбираться в том, как работает система сборки, даже если не требуется ежедневно вносить в нее изменения.

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

Хорошие программисты…

Разбираются в том, как рабо% тает их система сборки, как ей пользоваться и как ее рас% ширять

Создают простые, целостные системы сборки и размещают их рядом с исходным кодом

Плохие программисты…

Не обращают внимания на то, как действует система сборки, а потом сталкиваются с глупыми пробле% мами сборки

Не обращают внимание на отсут% ствие безопасности и надежности в своей системе сборки

Автоматизируют как можно Почти с враждебностью требуют,

больше операций сборки

Применяют ночные сборки для обнаружения проблем с инте% грацией

чтобы новички освоили их при% чудливую систему

Лепят финальную сборку, не при% держиваясь строгой процедуры выпуска продукта

См. также

Глава 9. Поиск ошибок

Описывает, что делать с ошибками при сборке.