• открытие и доступ к клонированию хранилищ;
• содействие развитию хранилищ;
• управление вкладами в собственные хранилища;
• определение процессов для содействия;
• обмен правами для фиксации изменений.
Некоторые инструменты плохо подходят для совместной работы, но поскольку со временем к ним привыкают, начинают мириться с имеющимися недостатками. В подобных случаях оцените последствия отказа от использования более подходящих инструментов. Например, то, как это повлияет на найм персонала или слияние различных областей. При внедрении адекватного процесса коллективная работа может выполняться даже при наличии неподходящих инструментов, хотя и со сложностями.
Используя такой показатель, как количество строк кода, невозможно точно оценить стоимость труда программиста. Некоторые разработчики могут превратить сотни строк непонятного кода в десятки простых для понимания абстракций, которые могут восприниматься прочими членами команды. Другие разработчики сосредоточиваются на поиске ошибок, скрытых в коде. Поэтому используйте сведения о количестве строк созданного кода в качестве справочной информации, позволяющей стимулировать нужное вам поведение. Например, если у вас отсутствуют навыки качественного анализа кода, не думайте, что больше всегда означает лучше.
В следующем списке приводится дополнительная терминология, относящаяся к контролю версий.
Фиксация
Фиксация – это последовательность действий по включению изменений, внесенных в файлы под управлением контроля версий.
Конфликты
Конфликт имеет место в том случае, когда внесены два очень похожих изменения и система контроля версий не может определить, какое из этих изменений является корректным. В большинстве случаев система контроля версий обеспечивает способ просмотра и выбора желательных изменений для разрешения конфликтов.
Запрос на включение кода
Запрос на включение кода (pull request) – это механизм, который посылает разработчику сигнал о том, что его вклад готов к просмотру и слиянию с основной ветвью.
Избирательный подход
Избирательный подход – это применение определенных подтверждений из одной отрасли в другой отрасли. Этот подход полезен при необходимости выбора определенных изменений запроса на включение кода.
Управление артефактами
Артефакт – это результат выполнения какого-либо шага в процессе разработки программного обеспечения. Артефакты хранятся в хранилище. Можно выбрать как простое, так и более сложное полнофункциональное хранилище. В последнем случае нужно оценить стоимость поддержки дополнительных услуг и проблем с обеспечением безопасности.
Хранилище артефактов должно быть:
• защищенным;
• доверенным;
• стабильным;
• доступным;
• версионированным.
При наличии хранилища артефактов появляется возможность статической трактовки зависимостей. Вы можете хранить версионированную общую библиотеку в качестве артефакта отдельно от системы контроля версий программного обеспечения. Это позволит всем командам использовать одну и ту же общую библиотеку. Вам придется создавать двоичный файл всего лишь один раз (даже если вы можете построить его повторно). В результате один и тот же двоичный файл используется на протяжении циклов испытаний и продвижений между сборками, что существенно упрощает работу.
В хранилище можно хранить артефакты в соответствии со способом их использования. В некоторых системах можно одновременно хранить лишь единственную версию пакета. Это может привести к появлению проблем при описании истории пакетов. Чтобы не допустить появления подобных проблем, нужно увеличить фактор дублирования хранилища пакетов. Это позволит поддерживать отдельное хранилище пакетов для каждой среды в рабочем потоке.
На ранних стадиях эволюции организация может не соответствовать определенным требованиям безопасности. Но по мере роста и появления линий продуктов ситуация может измениться. Благодаря наличию выделенного локального хранилища артефактов обеспечивается более плавный переход на пути к достижению соответствия вышеупомянутым требованиям.
В идеале ваша локальная среда разработки должна иметь тот же доступ к внутреннему хранилищу артефактов, что и другие механизмы построения и развертывания, действующие в вашей среде. Поскольку одни и те же пакеты и зависимости используются в производственной среде и в локальной среде разработки, минимизируется вероятность появления синдрома «это работает на моем ноутбуке». Если же доступ ограничен или заблокирован, могут появиться новые способы выполнения тех или иных действий, которые обходят безопасность и другие политики.
Читать дальше
Конец ознакомительного отрывка
Купить книгу