Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.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

 

 

 

Главаm

18. Защита исходного кода

 

 

 

 

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

 

 

 

 

 

669Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

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

Простота

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

5.Как разделить при групповой разработке новейший код, над которым идет активная работа, и стабильную версию?

Нужна некоторая стратегия, которая позволит разделить их в системе управления исходным кодом. Возможны такие варианты:

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

Создать ветви. Разработку по каждому направлению ведите в от% дельной ветви и объединяйте ветви в надлежащих стабильных точ% ках. При такой системе проблемы объединения выясняются только при слиянии ветвей. Это возлагает дополнительные обязанности на ответственного за слияние (им может быть разработчик одной из ветвей или особый системный интегратор).

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

Ваш выбор будет зависеть от возможностей системы управления вер% сиями и принятой культуры разработки.

Вопросы личного характера

1.Приносит ли вашей команде пользу система контроля за исходным ко дом?

В конечном итоге, помогает ли ваша система разрабатывать программ% ное обеспечение и способствует ли сотрудничеству в большей мере, чем альтернативные варианты? Ответьте на следующие вопросы относи% тельно своей системы:

Тот ли это инструмент и достаточен ли его набор функций?

Есть ли у вас специальный администратор системы или она управ% ляется от случая к случаю?

Все ли умеют ею пользоваться?

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

670m

 

 

 

 

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

 

 

 

 

 

Ответы и обсуждениеClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Есть ли у вас система обучения? Существует ли интеграция вашей системы с управлением дефектами или средством отслеживания ошибок?

Ответьте на следующие вопросы, касающиеся управления ресурсами:

Есть ли согласие относительно того, какой текст должен сопровож% дать сохраняемые в системе данные, а также относительно исполь% зования других метаданных системы управления версиями?

Есть ли у вас последовательная система меток для важных версий исходного дерева?

Есть ли у вас четкая (и документированная) система ветвления, обеспечивающая корректное объединение ветвей?

Есть ли возможность автоматического создания сопроводительного документа к выпускаемой версии по данным из хранилища исход% ного кода?

Можете ли вы повторять старые сборки? Если инструментальная цепочка изменилась, приняли ли вы меры к сохранению совмести% мости кода?

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

Какое значение придается всем этим проблемам в вашей команде?

2.Есть ли у вас резервная копия вашей текущей работы? Считается ли в вашей команде важным выполнять резервное копирование? Когда создаются резервные копии?

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

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

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

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

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