Skip to content

Посты

Преимущества использования фреймворка сборки

26 ноября 2020 г. • 2 мин чтения

Преимущества использования фреймворка сборки

Непрерывная интеграция (CI) и/или непрерывная доставка (CD) в наши дни являются нормой в проектах разработки программного обеспечения. Существует множество серверов сборки, таких как Azure DevOps, TeamCity, Jenkins и Cruise Control.Net. Большинство этих серверов используют собственные языки для определения этапов сборки. Но является ли кодирование этапов сборки на собственном языке хорошей идеей?

Некоторые приложения просты и имеют несколько этапов сборки, другие более сложны и имеют много этапов сборки. Когда вы определяете этапы сборки на собственном языке, чем сложнее этапы сборки (по сложности или по количеству), тем больше вы привязаны к платформе сборки. Это становится проблемой, когда вы хотите переключиться на другую платформу сборки. Например, вы используете TeamCity от JetBrains в своем локальном центре обработки данных, но компания решает перейти в облако. Теперь вы должны переписать свои скрипты сборки, потому что TeamCity не поддерживается на новой облачной платформе.

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

Фреймворки сборки имеют два преимущества:

  1. Обеспечение переносимости между платформами сборки.
  2. Возможность версионирования скриптов сборки вместе с кодом приложения.

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

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

В пространстве .Net есть два популярных фреймворка: Cake и Nuke Build. Оба фреймворка существуют уже некоторое время. Я использовал Nuke Build и мне он нравится. Я слышал отличные отзывы о Cake и рекомендую вам посмотреть его перед тем, как решить, какой фреймворк лучше всего подходит для вашего проекта.

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

Автор: Chuck Conway — инженер AI с почти 30-летним опытом разработки программного обеспечения. Он создает практические системы AI — конвейеры контента, агенты инфраструктуры и инструменты, которые решают реальные проблемы — и делится тем, что он узнает на этом пути. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube и на SubStack.

↑ Вернуться в начало

Вам также может понравиться