нии — это "тупые юзеры", то, поверьте, она проявится, на

радость конкурентам, во многих вещах.

Теперь поговорим о трех основных занятиях программиста:

1. Написание кода для данного релиза происходит во время

стадии "Кодирование".

2. Интеграция кода для данного релиза происходит по за-

вершении стадии "Кодирование".

3. Ремонт багов для данного релиза происходит во время

стадии "Кодирование" следующего витка цикла разработ-

ки ПО (соответственно в пункте 1 программист ремонти-

ровал баги для предыдущего релиза).

Цикл разработки ПО

97

Техническая версия

1. НАПИСАНИЕ КОДА

Один программист написал: parent_value = 1. Другой програм-

мист написал: child_value = parent_valu + 3.

2. ИНТЕГРАЦИЯ КОДА

а. Пытаемся два куска кода соединить в один:

parent_value = 1,

child_value = parent_valu + 3.

б. Код не компилируется (компайлер выдает ошибку о неоп

ределенной переменной), так как второй программист на

писал parent valu вместо parent value.

в. Код второго программиста фиксируется:

child_value —parent_value + 3.

г. Пытаемся два куска кода соединить в один:

parent_value = 1,

child_value = parent_value + 3.

д. Код компилируется, но первый программист выполняет

юнит-тест, по которому parent_yalue должно быть равно 7.

е. Код первого программиста фиксируется:

parent_value - 1.

ж. Пытаемся два куска кода соединить в один:

parent_value = 7,

child_value = parent_value + 3.

з. Вроде все в порядке, передаем тестировщикам — пусть

они тра... маются.

3. РЕМОНТ БАГОВ

Согласно спецификации должно быть:

child_value - parent_yalue x 3.

Тестировщик рапортует баг, и на основании этого бага програм-

мист меняет код.

98

Тестирование Дот Ком. Часть 1

Лирическая версия

1. НАПИСАНИЕ КОДА

О написании кода мы уже говорили. Один момент:

Качество работы программиста не должно оцениваться по коли-

честву багов, которые он взрастил, так как помимо таких субъек-

тивных вещей, как профессионализм и добросовестность, на на-

личие багов влияет множество других объективных факторов, о

которых мы упоминали (нехватка времени, плохие спеки и т.д.).

2. ИНТЕГРАЦИЯ КОДА

Вариант 1. Неблагодарный

После того как код написан на игровой площадке каждого из

программистов, происходит интеграция кода, когда тысячи строк

кода разных авторов компилируются на одном компьютере, на-

езжают друг на друга, спотыкаются, огрызаются и дарят релиз-

инженерам, производящим интеграцию, сомнения в принципи-

альном наличии вселенской гармонии.

Пример

Собрали четырех отличных художников, причем каждый должен выпол-

нить заказ на куске прозрачной пленки 50x50 см:

задание первому: нарисовать удрученного, стоящего на коленях

молодого человека;

задание второму: нарисовать милостиво склонившегося старика;

задание третьему: нарисовать фон, вызывающий сострадание;

задание четвертому: нарисовать группу печальных людей.

"В общем, парни, генеральная идея... эта... типа как у этого... О! У Рем-

браНа: возвращение загулявшего сына".

Неудивительно, что мы прочувствуем всю боль релиз-инженеров, ко-

гда соединим четыре рисунка вместе и увидим

удрученного великана, стоящего на коленях над

стариком,

гладящим промокшую болонку

в окружении заспанных курсантов-суворовцев.

Остается только редактировать картинки каждого из художников и гру-

стить, что их не совмещали по мере написания, используя...

Вариант 2. Благодарный

Чтобы избежать проблем, когда в один момент происходит мас-

сированная интеграция кодов разных авторов, как в Варианте 1,

программисты производят интеграцию постоянно по мере напи-

Цикл разработки ПО

99

сания нового кода (т.е. стадия 1 и стадия 2 цикла разработки кода

Перейти на страницу:

Похожие книги