Лекция
В условиях стремительного развития цифровых технологий и распределенных команд разработчиков все большее значение приобретают платформы, обеспечивающие эффективную совместную работу над программным обеспечением. Одной из таких платформ является Forge — название, которое объединяет несколько решений, от Git-хостинга до облачных API-интерфейсов для визуализации инженерных данных. В данной работе рассматриваются ключевые реализации Forge, включая Forgejo как альтернативу GitHub, и Autodesk Forge как инструмент для интеграции и визуализации CAD/BIM-данных. Цель — определить, какие из этих решений наиболее подходят для конкретных сценариев разработки, и как они могут быть интегрированы в существующие рабочие процессы.
В сообществах разработчиков свободного программного обеспечения с открытым исходным кодом (FOSS) forge — это веб- платформа для совместной работы над программным обеспечением , предназначенная для разработки и совместного использования компьютерных приложений.
Для разработчиков программного обеспечения это онлайн-сервис, предоставляющий доступ к инструментам, необходимым для работы и общения с коллегами. Он обеспечивает рабочий процесс для внесения изменений и участия в обсуждениях. Цель — достичь соглашения, которое позволит объединить эти изменения в репозиторий программного обеспечения.
Для пользователей кузница — это хранилище компьютерных приложений , место, где можно сообщить об ошибках , канал для получения информации о проблемах безопасности и т. д.
Исходный код хранится в системе контроля версий и связан с широким спектром сервисов, таких как обзор кода , база данных ошибок , непрерывная интеграция и т. д. Когда сообщество разработчиков разветвляется , оно дублирует содержимое форжа и может изменять его без разрешения. Сообщество может полагаться на сервисы, разбросанные по нескольким форжам: они не обязательно размещены на одном домене.
Скриншот репозитория git, отображаемый Gitea
Термин «кузница» относится к общему префиксу или суффиксу, принятому различными платформами, созданными по примеру SourceForge в 2001 году. Такое использование слова происходит от термина «кузница по металлу» , используемого для придания формы металлическим деталям .
В 2023 году две наиболее распространенные платформы совместной разработки не рекламируются как « форжи» . Слоган GitHub — «Комплексная платформа для разработчиков, позволяющая создавать, масштабировать и поставлять безопасное программное обеспечение» . Слоган GitLab — «Самая комплексная платформа DevSecOps на базе ИИ» . Хотя все технические аспекты того, что представляет собой «форж», у них одинаковы, в документации и маркетинговых материалах термин «форжи» не используется .
Однако в сообществах разработчиков FOSS и с момента появления первого форка SourceForge в 2001 году термин forge по-прежнему широко используется для обозначения онлайн- платформ совместной разработки программного обеспечения .
Некоторые онлайн-сервисы не могут считаться кузницей, даже если они разделяют некоторые из ее основных аспектов. Например, автономный сервис проверки кода, такой как Gerrit, иногда интегрируется в кузницу, которая не имеет встроенной функции проверки кода, но не может использоваться для распространения программного обеспечения среди конечных пользователей.
Аналогичным образом, онлайн-сервисы, ориентированные на управление проектами или отслеживание проблем, такие как Trac , Redmine или OpenProject, не предоставляют разработчикам программного обеспечения рабочий процесс для обсуждения предлагаемых изменений и объединения результатов в репозиторий. Эти сервисы могут включать ограниченную интеграцию с различными системами контроля версий для визуализации и цитирования содержащегося в них кода, но это само по себе скорее функциональная возможность, чем рабочий процесс, доступный разработчику.
Термин «кузница» обычно обозначает два разных типа концепций :
Все эти платформы предоставляют схожие инструменты, полезные разработчикам программного обеспечения, работающим над размещенными проектами:
Некоторые из них также предоставляют и другие функции:
Помимо веб- интерфейса пользователя , кузница часто предоставляет REST API с документацией ( GitHub GitLab , Gitea , и т. д.) для обеспечения взаимодействия с другими продуктами. Пользователи кузницы также могут устанавливать веб-перехватчики для уведомления стороннего онлайн-сервиса о событиях в их программном проекте (например, веб-перехватчик может быть вызван при создании новой задачи ).
Федерация и связанный с ней протокол ActivityPub (представленный в 2018 году) позволяют форжам обмениваться информацией о своей деятельности (например, при создании проблем или отправке коммита ). Хотя поддержка встроенной федерации иногда обсуждается или находится в разработке , она пока недоступна. Для устранения этой проблемы появились сторонние проекты, такие как плагин для форжа или прокси-сервер, поддерживающий ActivityPub и преобразующий его в вызовы REST API к указанному форжу.
Не существует единого входа (SSO) , на который приложения и пользователи могли бы полагаться для аутентификации во всех форжах. Вместо этого форжи обычно поддерживают несколько поставщиков аутентификации: если у пользователя уже есть учетная запись, он может использовать ее для аутентификации на форже, не создавая новую (например, GitLab поддерживает провайдеров OAuth2 , таких как GitHub ). Некоторые форжи могут выступать в качестве провайдера аутентификации (например, Gitea является провайдером OAuth2 , как и GitLab ).
Чтобы улучшить работу пользователей и системных администраторов при использовании нескольких онлайн-сервисов, некоторые кузницы интегрированы с популярным сторонним программным обеспечением и сервисами, такими как онлайн-чат (например, у Mattermost есть плагин для GitHub и встроенная поддержка GitLab ).
Forge — это не просто название, а целый спектр платформ, каждая из которых решает уникальные задачи в области совместной разработки. Forgejo предлагает легкий, автономный и федеративный подход к управлению исходным кодом, особенно актуальный для команд, стремящихся к независимости от крупных коммерческих хостингов. В то же время Autodesk Forge открывает возможности для визуализации и автоматизации инженерных процессов, делая данные доступными через облачные API. Выбор конкретной платформы зависит от целей проекта, технических требований и организационной структуры команды. Внедрение Forge-решений может существенно повысить прозрачность, масштабируемость и эффективность разработки — особенно в условиях мультидисциплинарных и международных проектов.
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем