search
Cloud Blog – Czy dwie głowy są lepsze niż jedna, czyli czym jest GitLab Duo?
Gitlab

Czy dwie głowy są lepsze niż jedna, czyli czym jest GitLab Duo?

Sztuczna inteligencja znacznie rozszerzyła swoją obecność w różnych dziedzinach, a rozwój nie jest wyjątkiem. W ankiecie przeprowadzonej w maju 2024 r. wśród 1700 członków społeczności programistów Stack Overflow — największy w branży portal pytań i odpowiedzi — odkrył, że ponad trzy czwarte respondenci korzystają już ze sztucznej inteligencji lub planują to zrobić.

Oprócz badaczy naukowych i oczywiście samych inżynierów AI, rolami wykazującymi najwyższy poziom adopcji są programiści front-end (75%), badacze danych (67%) i programiści mobilni (60%).

Rodzaj narzędzia AI, którego używają, nazywa się CodeGen i jest przeznaczony specjalnie dla asystentów kodowania. W tym artykule krótko przyjrzymy się jednemu z tych narzędzi i odpowiemy na następujące pytania: czym jest GitLab Duo i jakie są jego obecne funkcje?

Zalety takich narzędzi CodeGen jak GitLab Duo

McKinsey, jedna z firm doradczych MBB, ostatnio zbadała wpływ CodeGen na produktywność programisty. Wyniki były następujące:

  • Redukcja o 45-50% czasu spędzonego na pisanie dokumentacji.
  • Zmniejszenie o 35-45% czasu realizacji zadań generowania kodu.
  • Oszczędność czasu o 20-30% podczas refaktoryzacji.
  • Oszczędność czasu ~10% przy złożonych celach.

Warto zauważyć, że głównymi czynnikami decydującymi o tym, ile korzyści czasowych może osiągnąć zespół, jest złożoność wykonywanego zadania i doświadczenie programistyczne. McKinsey zaobserwował kilka przypadków, w których młodsi programiści musieli spędzać więcej czasu, gdy dostępne były narzędzia CodeGen.

Sztuczna inteligencja w DevSecOps jest całkiem możliwa. Zarezerwuj bezpłatną konsultację z certyfikowanym ekspertem GitLab, aby dowiedzieć się, jak to zrobić. Zarejestruj się teraz →

Czym jest GitLab Duo?

GitLab Duo to narzędzie do tworzenia kodu oparte na sztucznej inteligencji firmy GitLab, które według G2 jest jednym z najlepszych narzędzi CI/CD na rynku. Dla każdej indywidualnej funkcji wykorzystuje najbardziej odpowiedni LLM; z dwoma najczęściej używanymi dużymi modelami językowymi Vertex AI Codey firmy Google Cloud i Claude firmy Anthropic.

Ponadto ani GitLab, ani jego dostawcy nie udostępniają Twoich prywatnych (tj. niepublicznych) danych w celu uczenia modeli. Skoro już to mamy za sobą, przyjrzyjmy się bliżej, w jaki sposób każda z tych funkcji sztucznej inteligencji może wpłynąć na proces programowania. Na początek firma podzieliła wszystkie funkcje na trzy osobne kategorie: publiczne, beta i eksperymentalne.

Funkcje publiczne GitLab Duo

Chat

Chat to wirtualny asystent AI, który jest zawsze gotowy odpowiedzieć na pytania i wyjaśnić złożone koncepcje techniczne w naturalnym, konwersacyjnym języku.

Można argumentować, że istnieje mnóstwo popularnych asystentów kodowania, więc jaka jest główna zaleta GitLab Duo w tym kontekście? Czat może pomóc programistom zmniejszyć dług techniczny, poprawić łatwość konserwacji kodu i poprawić ogólną czytelność poprzez refaktoryzację.

Code Explanation

Załóżmy, że pracujesz na przestarzałej bazie danych ze słabo udokumentowanymi funkcjami. Code Explanation analizuje funkcję i zapewnia jasny opis jej celu, parametrów i zwracanych wartości. W ten sposób ręczne dekodowanie logiki pozwoli zaoszczędzić czas i wysiłek.

Code Suggestions

Code Sugestions działa jako partner w rozwoju sztucznej inteligencji (coś w rodzaju Copilot dla GitLab), przewidując Twoje potrzeby i oferując bezpieczne rozwiązania w zakresie kodowania w 14 językach programowania.

Na przykład pisząc nową funkcję, mogą rozpoznać wzorzec i zasugerować gotowy fragment, którego możesz użyć, skracając czas cyklu i postępując zgodnie z najlepszymi praktykami branżowymi.

Git Suggestions

Każdemu z nas zdarzały się chwile, w których zapominaliśmy, jakie polecenie Git jest nam potrzebne. Git Suggestions to przydatne przypomnienie kontekstowe, które sugeruje odpowiednie polecenia w zależności od bieżącej sytuacji.

Wyobraź sobie: w trakcie złożonej operacji z brzęczyki, Git Suggestions mogą sprawdzić Twoją obecną strukturę i zasugerować odpowiednie polecenie, które Ci pomoże pozostać produktywnie i unikaj przerw w pracy.

Suggested Reviewers

Przydzielanie recenzentów do żądań połączenia może być zadaniem czasochłonnym. Co robi GitLab Duo, aby złagodzić ten problem? Platforma wykorzystuje modele uczenia maszynowego, które są unikalne dla każdego projektu analizującego zmiany w kodzie i rekomenduje programistom posiadającym odpowiednią wiedzę specjalistyczną, aby sprawdzili Twoją pracę.

Załóżmy, że dokonałeś znaczących zmian w module związanym z interakcją z bazą danych. GitLab Duo zidentyfikuje inżynierów, którzy mają doświadczenie z tą konkretną technologią baz danych, zapewniając bardziej dokładny proces.

Test Generation

Test Generation automatyzuje powtarzalne zadania testowe, pozwalając Ci skupić się na pisaniu czystego kodu. Ta funkcja identyfikuje nieobjęte obszary i generuje automatyczne testy obejmujące te scenariusze, wyłapując błędy, zanim staną się poważnymi problemami.

Na przykład pracujesz nad funkcją obsługującą dane wejściowe użytkownika. Test Generation może analizować kod i automatycznie generować testy, które testują różne scenariusze danych wejściowych użytkownika, zapewniając, że funkcja obsługuje przypadki brzegowe i nieoczekiwane dane. Jaka jest przewaga konkurencyjna GitLab Duo? Jest kompatybilny z wieloma rodzajami testów QA jednocześnie.

Funkcje GitLab Duo w fazie testów beta

Merge Request Summary

Merge Request Summary analizuje żądanie połączenia i zwraca jasny, zwięzły przegląd wprowadzonych zmian. Podsumowanie to można następnie łatwo udostępnić menedżerom projektów, testerom i innym zainteresowanym stronam.

Na przykład, po naprawieniu złożonego błędu, możesz użyć Merge Request Summary, aby automatycznie wygenerować posumowanie w którym będzie opis szczegółowy naprawionego błędu, wprowadzone zmiany w kodzie i oczekiwany wynik. Ta przejrzystość komunikacji gwarantuje, że każdy zrozumie wpływ Twojego naprawienia i nie będzie żadnych nieporozumień.

Eksperymentalne funkcje GitLab AI

Code Review Summary

Proces przeglądu kodu czasami przypomina wymianę zdań pomiędzy autorami i recenzentami. Code Review Summary wypełnia tę lukę, analizując zmiany i podkreślając kluczowe obszary do przeglądu.

Załóżmy, że programista przesyła duże żądanie scalania z wieloma zmianami. Code Review Summary pomoże zidentyfikować krytyczne zmiany, potencjalne regresje i obszary wymagające dalszej dyskusji, dając recenzentom konkretny punkt wyjścia, który prowadzi do bardziej wydajnego i produktywnego procesu.

Discussion Summary

Utrzymanie wszystkich na tym samym poziomie podczas długiej rozmowy może być trudne. Discussion Summary zagłębia się w obszerne dyskusje i oferuje zwięzłe podsumowanie kluczowych punktów i podjętych decyzji.

Wyobraź sobie długą linię komentarzy w GitLabie omawiających techniczne podejście do nowej funkcji. Discussion Summary może prześledzić temat i dostarczyć wypunktowaną listę opisującą ostateczną decyzję, uzasadnienie i wszelkie kolejne kroki, promując przejrzystość dla interesariuszy i eliminując zamieszanie dla członków zespołu, którzy mogli nie być zaangażowani w dyskusję od początku.

Issue Description Generation

Ta zdolność wykorzystuje Claude 2.1 do automatycznego generowania szczegółowego opisu napotkanego problemu na podstawie krótkiego.

Po pojawieniu się nieoczekiwanego komunikatu o błędzie funkcja ta pomaga szybko rozwiązać problem, torując drogę do dalszej diagnozy i rozwiązania.

Vulnerability Explanation

Ta funkcjonalność analizuje wszelkie potencjalne luki w zabezpieczeniach znalezione w kodzie. Wyjaśnia naturę luki, jej potencjalny wpływ i najlepsze praktyki usuwania.

Na przykład może zidentyfikować potencjalną lukę w zabezpieczeniach związaną z iniekcją SQL w fragmencie kodu przetwarzającym dane wejściowe użytkownika i powiedzieć, w jaki sposób osoba atakująca może ją wykorzystać.

Vulnerability Resolution

Co oferuje GitLab Duo po odkryciu? Zgadza się: następuje kolejny krok, czyli automatyzacja procesu naprawy.

GitLab Duo może automatycznie wygenerować żądanie scalania, które zawiera zmiany w kodzie, aby oczyścić dane wprowadzone przez użytkownika i zapobiec wstrzykiwaniu SQL, zapewniając, że błąd bezpieczeństwa zostanie naprawiony w odpowiednim czasie.

Root Cause Analysis

Często rozwiązywanie problemów związanych z awariami potoków i nieudanymi kompilacjami CI/CD jest frustrujące. Dzięki Root Cause Analysis uzyskujesz wystarczający wgląd w dzienniki i dane związane z błędem.

Wyobraź sobie, że Twój potok CI/CD nieoczekiwanie przestaje działać. GitLab Duo może zidentyfikować konkretną zmianę kodu lub problem z konfiguracją, który spowodował błąd. Te ukierunkowane informacje pozwolą Ci zlokalizować problem i szybko przywrócić działanie.

Value Stream Forecasting

GitLab Duo też wykorzystuje statystyki do analizy danych historycznych Twojego zespołu i przewidywania potencjalnych wąskich gardeł lub obszarów wymagających poprawy. Uzbrojony w tę wiedzę, możesz proaktywnie rozwiązywać problemy i optymalizować proces rozwoju w celu uzyskania maksymalnej wydajności.

Jak GitLab Duo pomaga? Może na przykład zidentyfikować tendencję do zmniejszania się przepustowości w przypadku żądań scalania. Co z kolei może wskazywać na potrzebę dodatkowych recenzentów lub szkolenia w zakresie pracy z nową bazą kodu. Przewidując z wyprzedzeniem tę potencjalną przeszkodę, zespół może złagodzić jej wpływ i zapewnić płynny rozwój.

Usuwając bariery językowe, automatyzując powtarzalne zadania i przewidując przeszkody, GitLab Duo pozwala programistom skoncentrować się na tym, co robią najlepiej – pisaniu innowacyjnego i bezpiecznego kodu. Jednocześnie nie jest to jedyny potężny system SDLC oparty na sztucznej inteligencji; w naszych kolejnych postach na blogu, my Porównamy GitLab Duo i GitHub Copilot! Aby uzyskać bardziej ogólny przegląd, zapoznaj się z naszym artykułem na temat GitHub, GitLab i Bitbucket.

O nas

Cloudfresh zapewnia Profesjonalne usługi GitLab i jest partnerem firmy z poziomami Professional Services i Select. Wypełnij poniższy formularz, aby otrzymać bezpłatną ocenę optymalizacji przepływu pracy od naszych ekspertów. Jeśli jesteś nowy w świecie CI/CD, możesz najpierw rozważyć zakup Licencji GitLab.

Skontaktuj się z Сloudfresh