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-ліцензії.

Зв'яжіться з Сloudfresh