search
Cloud Блог – Две головы лучше, чем одна, или что такое GitLab Duo?
Gitlab

Две головы лучше, чем одна, или что такое GitLab Duo?

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

Отдельно от научных исследователей и, конечно же, самих инженеров ИИ, роли, демонстрирующие высокий уровень внедрения, включают фронтенд-разработчиков (75%), специалистов по Data Science (67%) и мобильных разработчиков (60%).

Разновидность используемых ими инструментов ИИ называется CodeGen и касается непосредственно помощников по кодированию. В этой статье мы кратко рассмотрим один из таких инструментов и ответим на вопросы: что такое GitLab Duo и каковы его функциональные возможности в настоящее время?

Преимущества таких CodeGen-инструментов, как GitLab Duo

McKinsey, одна из консалтинговых фирм MBB, недавно исследовала влияние CodeGen на производительность разработчиков. Результаты были следующими:

  • Снижение на 45-50% времени, затраченного на задачи, связанные с написанием документации.
  • Уменьшение на 35-45% времени выполнения задач по генерации кода.
  • 20-30% экономия времени на рефакторинг.
  • Близко 10% экономии времени на сложные цели.

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

ИИ в DevSecOps — это вполне возможно. Запишитесь на бесплатную консультацию к сертифицированному GitLab-эксперту, чтобы узнать, как достичь этого. Записаться сейчас →

Что такое GitLab Duo?

GitLab Duo — это тул для разработки кода на базе ИИ от GitLab, который, по данным G2, является одним из лучших инструментов CI/CD на рынке. Для каждой отдельной функции он использует наиболее подходящую LLM; при этом двумя из наиболее широко используемых крупных языковых моделей являются Vertex AI Codey от Google Cloud и Claude от Anthropic.

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

Общедоступные функции GitLab Duo

Чат

Чат — это виртуальный помощник ИИ, который всегда готов ответить на вопросы и объяснить сложные технические концепции на естественном, разговорном языке.

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

Объяснение кода

Представим, что вы работаете над устаревшей базой с плохо задокументированными функциями. Объяснение кода анализирует функцию и дает понятное описание ее назначения, параметров и возвращаемых значений. Таким образом, это сэкономит время и усилия на ручной расшифровке логики.

Предложения по коду

Предложения по коду действуют как ИИ-партнер-разработчик (что-то вроде Copilot для GitLab), предусматривая ваши потребности и предлагая безопасные решения для кодирования на 14 языках программирования.

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

Подсказки Git

У всех из нас бывали моменты, когда забывали точную команду Git. Подсказки Git — это удобное контекстное напоминание, которое предлагает соответствующие команды в зависимости от текущей ситуации.

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

Рекомендуемые рецензенты

Назначение рецензентов для мердж-реквестов может быть трудоемкой задачей. GitLab Duo использует модели машинного обучения, уникальные для каждого проекта, анализирует изменения кода и рекомендует разработчиков с наиболее релевантной экспертизой для просмотра вашей работы.

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

Генерация тестов

Генерация тестов автоматизирует повторяющиеся задания по тестированию, позволяя вам сосредоточиться на написании чистого кода. Эта способность определяет непокрытые области и генерирует автоматизированные тесты для охвата этих сценариев, обнаруживая ошибки до того, как они станут серьезными проблемами.

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

Функции GitLab Duo в стадии бета-тестирования

Итог мердж-реквеста

Итог мердж-реквеста анализирует ваш запрос на объединение и возвращает четкий, лаконичный обзор внесенных вами изменений. Затем этим итогом можно легко поделиться с руководителями проектов, тестировщиками и другими заинтересованными сторонами.

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

Экспериментальные функции GitLab AI

Итог обзора кода

Процесс обзора кода иногда ощущается как передача между авторами и рецензентами. Итог обзора кода преодолевает эту разницу, анализируя изменения и выделяя ключевые области для обзора.

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

Итог обсуждения

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

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

Генерация описания проблемы

Эта способность использует Claude 2.1 для автоматического создания подробного описания проблемы, с которой вы столкнулись, на основе краткого.

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

Объяснение уязвимости

Данный функционал углубляется в любые потенциально слабые места безопасности, обнаруженные в вашем коде. Он объясняет природу уязвимости, ее потенциальное влияние и наилучшие практики по искоренению.

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

Устранение уязвимости

Что предлагает GitLab Duo после обнаружения? Правильно: он делает следующий шаг, а именно автоматизирует процесс исправления.

GitLab Duo может автоматически создать мердж-реквест, включающий изменения кода для очистки входных данных пользователя и предотвращения SQL-инъекции, гарантируя, что ошибка безопасности будет устранена вовремя.

Анализ глубинных причин

Часто устранение неполадок пайплайнов и неудачных сборок CI/CD может вызывать отчаяние. С помощью анализа глубинных причин вы получаете достаточную видимость логов и данных, связанных с ошибкой.

Представьте, что ваш CI/CD-пайплайн неожиданно выходит из строя. GitLab Duo может определить конкретное изменение кода или проблему конфигурации, которая привела к ошибке. Эта целенаправленная информация позволит точно определить проблему и быстро возобновить работу.

Прогнозирование потока создания стоимости

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

Чем помогает GitLab Duo? К примеру, он может определить тенденцию к снижению пропускной способности запросов на объединение. Что в свою очередь может свидетельствовать о необходимости дополнительных рецензентов или обучении работе с новой базой кода. Заранее предвидя это потенциальное препятствие, команда может смягчить ее влияние и обеспечить бесперебойность разработки.

Устраняя языковые барьеры, автоматизируя повторяющиеся задачи и прогнозируя препятствия, GitLab Duo позволяет разработчикам сосредоточиться на том, что они делают лучше всего, — написании инновационного и безопасного кода. В то же время это не единственная мощная система SDLC на базе ИИ; в следующих публикациях нашего блога мы сравним GitLab Duo и GitHub Copilot! А чтобы получить более высокоуровневый обзор, обратитесь к нашей статье о GitHub, GitLab и Bitbucket.

О нас

Cloudfresh предоставляет профессиональные услуги GitLab и является партнером компании с уровнями Professional Services и Select. Заполните форму ниже, чтобы получить бесплатную оценку оптимизации рабочих процессов от наших экспертов. Если же вы до сих пор не знакомы с миром CI/CD, возможно, следует сперва рассмотреть приобретение GitLab-лицензии.

Cвяжитесь с Сloudfresh