Zwiększanie produktywności deweloperów dzięki sztucznej inteligencji
W tej lekcji dowiemy się, w jaki sposób narzędzie GitHub Copilot usprawnia przepływy pracy programowania, dzięki czemu deweloperzy mogą skupić się na rozwiązywaniu złożonych problemów, a nie w rutynowych zadaniach kodowania.
Podczas tej lekcji zdobędziesz następujące umiejętności:
- Dowiedz się, w jaki sposób narzędzia oparte na sztucznej inteligencji, takie jak GitHub Copilot, mogą zmniejszyć powtarzające się wysiłki związane z kodowaniem.
- Zidentyfikuj kluczowe obszary przepływu pracy, w których narzędzie GitHub Copilot może mieć największy wpływ.
Typowe przypadki użycia sztucznej inteligencji na potrzeby usprawniania produktywności deweloperów
Narzędzie GitHub Copilot oferuje wiele sposobów przyspieszania i upraszczania typowych zadań programistycznych. Przyjrzyjmy się niektórym kluczowym obszarom, w których narzędzie GitHub Copilot okazuje się szczególnie korzystne:
Przyspieszanie uczenia się nowych języków programowania i struktur
Uczenie się nowych języków programowania lub struktur może być trudne, ale GitHub Copilot sprawia, że ten proces jest łagodniejszy i szybszy, dzięki czemu deweloperzy mogą szybko zrozumieć nowe pojęcia i zastosować je w praktyce. GitHub Copilot pomaga wypełnić lukę między nauką a rzeczywistą implementacją za pomocą następujących elementów:
- Sugestie dotyczące kodu: oferuje sugestie fragmentów kodu z obsługą kontekstu, które ilustrują użycie nieznanych funkcji i bibliotek, prowadząc deweloperów do prawidłowego użycia i implementacji podczas pracy z nowymi strukturami.
- Obsługa języka: obsługuje szeroką gamę języków, co ułatwia bezproblemowe przechodzenie z jednego języka do drugiego.
- Integracja dokumentacji: dzięki udostępnieniu wbudowanych sugestii dotyczących użycia interfejsu API i parametrów funkcji usługa GitHub Copilot zmniejsza potrzebę ciągłego odwoływania się do dokumentacji zewnętrznej.
Przyjrzyjmy się jednemu z przykładów. Wyobraź sobie, że pracujesz nad projektem Golang w języku, z którym nie znasz. Narzędzie GitHub Copilot może wygenerować kod. Następnie możesz użyć opcji "Wyjaśnij to" w menu kontekstowym, aby wyjaśnić, co robi kod.
Minimalizacja przełączania kontekstu
Przełączanie kontekstu jest znaczącym drenażem produktywności dla deweloperów i może zakłócić przepływ pracy i zmniejszyć fokus. GitHub Copilot pomaga zachować fokus, dostarczając odpowiednie sugestie dotyczące kodu w bieżącym kontekście, co pozwala skoncentrować się na rozwiązywaniu złożonych problemów. Poniżej przedstawiono sposoby, w jaki usługa GitHub Copilot pomaga w osiągnięciu tego celu:
- Pomoc w edytorze: GitHub Copilot udostępnia sugestie dotyczące kodu bezpośrednio w środowisku IDE, minimalizując potrzebę wyszukiwania rozwiązań w trybie online.
- Krótkie odwołania: Podczas pracy z interfejsami API lub bibliotekami narzędzie GitHub Copilot może sugerować poprawne wywołania metod i parametry, co zmniejsza potrzebę zapoznania się z dokumentacją.
- Uzupełnianie kodu: dzięki autouzupełniania powtarzających się wzorców kodu narzędzie GitHub Copilot umożliwia deweloperom utrzymanie ich uczenia myśli bez przerwy.
W poniższym przykładzie zwróć uwagę, że możesz pracować z zasobami zewnętrznymi (takimi jak interfejsy API/biblioteki) w kodzie bez konieczności opuszczania edytora w celu zapoznania się z dokumentacją. Pozwala to zaoszczędzić cenny czas i pozwala skupić się na bardziej strategicznych zadaniach, zwiększając ogólną produktywność i umożliwiając szybsze dostarczanie projektów.
Rozszerzone pisanie dokumentacji
Narzędzie GitHub Copilot znacznie usprawnia proces pisania i obsługi dokumentacji kodu:
- Komentarze wbudowane: generuje kontekstowo istotne komentarze wbudowane objaśniające złożone sekcje kodu.
- Opisy funkcji: Automatycznie sugeruje opisy funkcji, w tym wyjaśnienia parametrów i szczegóły wartości zwracanej.
- Generowanie readME: pomaga w tworzeniu plików README projektu, sugerując strukturę i zawartość na podstawie bazy kodu projektu.
- Spójność dokumentacji: pomaga zachować spójny styl dokumentacji w projekcie.
GitHub Copilot może asymilować kod i pomóc w pisaniu odpowiednich komentarzy lub dokumentacji funkcji lub całego kodu.
Automatyzowanie nudnych rzeczy
GitHub Copilot wyróżnia się w obsłudze rutynowych zadań kodowania, zwalniając czas dla deweloperów, aby skupić się na bardziej złożonych i kreatywnych aspektach swojej pracy. Oto sposoby wykorzystania narzędzia GitHub Copilot do automatyzacji:
- Generowanie kodu kociołowego: Narzędzie GitHub Copilot może szybko tworzyć standardowy kod dla typowych funkcji, takich jak konfigurowanie interfejsu API REST lub tworzenie struktury klas.
- Przykładowe tworzenie danych: podczas testowania narzędzie GitHub Copilot może generować realistyczne przykładowe dane, co pozwala zaoszczędzić czas na ręcznym tworzeniu danych.
- Pisanie testów jednostkowych: GitHub Copilot może sugerować przypadki testowe, a nawet generować całe testy jednostkowe na podstawie sugerowanego kodu.
- Tłumaczenie kodu i refaktoryzacja: GitHub Copilot pomaga w refaktoryzacji kodu, sugerując ulepszone wzorce lub bardziej wydajne implementacje, a nawet konwertowanie języków programowania.
Proces programowania można przyspieszyć za pomocą narzędzia GitHub Copilot w celu wygenerowania kodu kociołowego, który następnie można dostosować do konkretnych potrzeb.
Zaawansowane scenariusze automatyzacji szablonów
Narzędzie GitHub Copilot może obsługiwać bardziej zaawansowane zadania automatyzacji, które zwykle wymagają znacznego nakładu pracy ręcznej:
- Schemat bazy danych i konfiguracja ORM: Generowanie kompletnych modeli baz danych, plików migracji i konfiguracji ORM na podstawie prostych opisów jednostek.
- Tworzenie szkieletu punktu końcowego interfejsu API: Utwórz całe punkty końcowe interfejsu API REST z odpowiednią obsługą błędów, walidacją i komentarzami do dokumentacji.
- Zarządzanie konfiguracją: Generowanie plików konfiguracji dla różnych środowisk (programowanie, przemieszczanie, produkcja) przy użyciu odpowiednich ustawień.
- Infrastruktura testowa: Skonfiguruj kompletne struktury testowe, w tym dane przykładowe, fikstury oraz funkcje pomocnicze dla złożonych scenariuszy testowych.
Na przykład podczas tworzenia nowej mikrousługi Copilot może wygenerować całą strukturę projektu, w tym konfiguracje Docker, pliki potoku CI/CD oraz podstawową konfigurację monitorowania na podstawie kilku opisowych komentarzy o wymaganiach dotyczących usługi.
Uwaga / Notatka
Złożone generowanie wielu plików zużywa więcej jednostek PRU (~3–5 PRU na kompletne tworzenie szkieletu projektu). Proste zadania szablonowe zwykle używają 1–2 PRU. Dowiedz się więcej o jednostkach żądań Premium.
Automatyzacja tworzenia scenariuszy
GitHub Copilot wyróżnia się w przekształcaniu prostych scenariuszy użytkowników i wymagań funkcji bezpośrednio w kompletne implementacje gotowe do produkcji:
- Tworzenie szkieletów funkcji: Przekonwertuj ogólne opisy funkcji na pełne struktury kodu z odpowiednim rozdzieleniem problemów, w tym modeli baz danych, punktów końcowych interfejsu API i składników frontonu.
- Implementacja logiki biznesowej: Generuj podstawowe funkcje na podstawie reguł biznesowych opisanych w języku prostym, automatycznie obsługują typowe wzorce, takie jak walidacja, przekształcanie danych i logika przepływu pracy.
- Wzorce integracji: Utwórz standardowe wzorce łączenia różnych części ekosystemu aplikacji, w tym uwierzytelniania, rejestrowania i integracji usług zewnętrznych.
- Kompleksowa automatyzacja: W jednym scenariuszu użytkownika wygeneruj pełny stos funkcji, w tym logikę zaplecza, zmiany bazy danych, dokumentację interfejsu API i podstawową implementację frontonu.
- Wbudowana jakość: Automatyczne uwzględnianie obsługi błędów, walidacji danych wejściowych, rejestrowania i podstawowych zagadnień dotyczących zabezpieczeń w ramach początkowej implementacji.
Takie podejście umożliwia szybką iterację od koncepcji do działającego prototypu, umożliwiając zespołom szybkie weryfikowanie pomysłów i zbieranie opinii na wczesnym etapie procesu programowania.
Przyspieszanie przepływów pracy żądań ściągnięcia
GitHub Copilot przekształca proces żądania ściągnięcia, generując zmiany gotowe do przeglądu i skracając czas od programowania do wdrożenia:
Generowanie kodu gotowego do ściągnięcia
Podczas pracy nad funkcjami lub poprawkami błędów Copilot pomaga tworzyć kompleksowe zmiany, które skracają cykle przeglądu.
- Pełne implementacje: Generowanie pełnych implementacji funkcjonalności z odpowiednią obsługą błędów, rejestrowaniem i pokryciem przypadków brzegowych.
- Spójne wzorce kodu: Upewnij się, że nowy kod jest zgodny z ustalonymi konwencjami projektu i wzorcami architektury.
- Integracja dokumentacji: Dołącz komentarze wbudowane, dokumentację funkcji i aktualizacje README w ramach początkowej generacji kodu.
- Pokrycie testowe: Generuj odpowiednie testy jednostkowe, testy integracji i przykładowe użycie wraz z nowymi funkcjami.
Inteligentna pomoc dotycząca przeglądu kodu
Copilot może pomóc przygotować kod do przeglądu, a nawet pomóc podczas samego procesu przeglądu:
- Testy jakości przed przesłaniem: Przed utworzeniem PR użyj narzędzia Copilot, aby zidentyfikować potencjalne problemy, zasugerować ulepszenia i zapewnić spełnienie standardów jakości kodu.
- Sporządzanie komentarzy do przeglądu: Generuj konstruktywne, konkretne komentarze do przeglądu, które jasno wyjaśniają problemy i sugerują konkretne ulepszenia za pomocą przykładów kodu.
- Szybka iteracja: Gdy recenzenci żądają zmian, Copilot może natychmiast wygenerować wiele alternatyw implementacji, dzięki czemu autorzy mogą wybrać najlepsze podejście bez obszernego ponownego pisania.
- Uściślenie dokumentacji: Automatyczne ulepszanie komentarzy i dokumentacji kodu na podstawie pytań i opinii recenzentów, zapewniając przejrzystość dla przyszłych konserwatorów.
- Rozwiązywanie konfliktów: Pomoc w rozwiązywaniu konfliktów scalania poprzez zrozumienie intencji obu gałęzi kodu i sugerowanie optymalnych metod integracji.
Takie usprawnione podejście znacznie zmniejsza liczbę wymaganych rund przeglądu, umożliwiając szybsze dostarczanie funkcji przy zachowaniu wysokich standardów jakości kodu.
Uwaga / Notatka
Proszenie Copilot o wiele wersji roboczych refaktoryzacji w żądaniu ściągnięcia może zużywać 2–3 PRU na wersję roboczą. Dowiedz się więcej o jednostkach żądań Premium.
Przepływy pracy zespołowego tworzenia
Copilot zwiększa współpracę zespołu, zapewniając spójność i jakość w różnych projektach deweloperów:
- Standaryzacja kodu: Pomaga zachować spójne style kodowania i wzorce między członkami zespołu.
- Udostępnianie wiedzy: Generowanie kodu, który jest zgodny z najlepszymi rozwiązaniami zespołu, pomagając deweloperom młodszym uczyć się od starszych wzorców.
- Zachowywanie kontekstu: W przypadku przejęcia pracy innej osoby Copilot może pomóc zrozumieć istniejący kod i kontynuować programowanie w tym samym stylu.
- Rozwiązywanie konfliktów scalania: Pomoc w rozwiązywaniu złożonych konfliktów scalania poprzez zrozumienie intencji obu gałęzi kodu.
Organizowanie przepływów pracy sztucznej inteligencji
Nowoczesne programowanie coraz częściej korzysta z skoordynowanej pomocy w zakresie sztucznej inteligencji w różnych aspektach procesu programowania. Narzędzie GitHub Copilot może działać w ramach zorganizowanych przepływów pracy, w których wiele funkcji sztucznej inteligencji uzupełnia siebie nawzajem:
Wzorce programowania dla wielu agentów
Rozważ przepływ pracy, w którym różni agenci sztucznej inteligencji obsługują różne aspekty tworzenia funkcji:
- Agent wersji roboczej: Copilot generuje początkowe implementacje kodu na podstawie wymagań funkcji
- Agent przeglądowy: Pomocnicza sztuczna inteligencja przegląda wersję roboczą pod kątem jakości kodu, problemów z zabezpieczeniami i zgodności ze standardami projektu
- Agent dokumentacji: Automatycznie generuje lub aktualizuje dokumentację na podstawie zmian kodu
- Agent testowy: Tworzy kompleksowe zestawy testów dla nowych funkcji
To zaaranżowane podejście zapewnia kompleksowy zakres zadań programistycznych przy zachowaniu wysokich standardów jakości. Każdy agent koncentruje się na swojej domenie, co skutkuje bardziej szczegółowym i gotowym do produkcji kodem.
Uwaga / Notatka
Każde przekazanie zużywa około 1 PRU. 2-agentowy przepływ roboczy przeglądu zazwyczaj korzysta z 2-3 PRU.
Zaawansowane możliwości rozumowania
W przypadku złożonych scenariuszy programowania narzędzie GitHub Copilot oferuje tryby rozumowania w warstwie Premium, które zapewniają dokładniejszą analizę i bardziej zaawansowane generowanie kodu:
- Ulepszone zrozumienie kontekstu: Analizuje większe bazy kodu i bardziej złożone relacje między składnikami
- Zaawansowane sugestie dotyczące architektury: Zawiera zalecenia dotyczące wzorców projektowania i integracji systemu
- Złożona pomoc w refaktoryzacji: Obsługuje zaawansowane przekształcenia kodu przy zachowaniu funkcjonalności
- Koordynacja wielu plików: Orkiestruje zmiany w wielu plikach przy zachowaniu spójności
Uwaga / Notatka
Uruchomienia w trybie Premium często podwajają zużycie jednostek PRU (~4+ na jedno żądanie), dodając więcej kontekstu i rozumowania.
Zautomatyzowane przepływy pracy uzupełniania scenariuszy
Narzędzie GitHub Copilot może przekształcać scenariusze i wymagania użytkowników w kompletne funkcje możliwe do wdrożenia za pośrednictwem zautomatyzowanych przepływów pracy:
- Analizowanie wymagań: Analizowanie scenariuszy użytkowników i kryteriów akceptacji w celu wygenerowania planów implementacji
- Tworzenie szkieletów funkcji: Tworzenie kompletnych struktur funkcji, w tym kontrolerów, usług, modeli i testów
- Konfiguracja integracji: Generowanie kodu niezbędnego do zintegrowania nowych funkcji z istniejącymi składnikami systemu
- Automatyzacja zapewniania jakości: Uwzględnij kompleksową obsługę błędów, rejestrowanie i monitorowanie nowych funkcji
Takie podejście umożliwia szybki postęp od koncepcji do działającego oprogramowania, co znacznie skraca czas między pomysłem a implementacją.
Spersonalizowane uzupełnianie kodu
GitHub Copilot dostosowuje się do poszczególnych stylów kodowania i kontekstów projektu, zapewniając coraz bardziej istotne sugestie w czasie i zwiększając wydajność kodu. Oto jak narzędzie GitHub Copilot osiąga spersonalizowane uzupełnianie kodu:
- Kontekstowe zrozumienie: GitHub Copilot analizuje środowisko projektowe i strukturę projektu, aby oferować dokładniejsze i odpowiednie uzupełnienia kodu.
- Nauka na podstawie wzorców: gdy deweloperzy pracują nad projektem, usługa GitHub Copilot uczy się na podstawie wzorców i preferencji kodowania, odpowiednio dostosowując sugestie.
W poniższym przykładzie zwróć uwagę, jak gitHub Copilot zasugerował styl pisania funkcji, ale gdy został użyty preferowany styl, został dostosowany i dalsze sugestie z preferowanym stylem.
Dzięki wykorzystaniu narzędzia GitHub Copilot w ten sposób deweloperzy mogą znacznie skrócić czas spędzony na rutynowych zadaniach, przyspieszyć uczenie się nowych technologii i utrzymać lepsze skupienie się w całym dniu roboczym. Ta zwiększona produktywność pozwala poświęcić więcej czasu na rozwiązywanie złożonych problemów i wprowadzanie innowacji w swoich projektach.
W następnej lekcji dowiemy się, jak funkcja GitHub Copilot jest zgodna z typowymi preferencjami i przepływami pracy deweloperów.