Identyfikowanie i ocenianie dużych funkcji przy użyciu trybu zapytań w usłudze GitHub Copilot
Korzystanie z trybu zadawania pytań w usłudze GitHub Copilot przypomina posiadanie znajomego współpracownika, który jest zawsze dostępny, aby odpowiedzieć na twoje pytania. GitHub Copilot może odpowiedzieć na pytania dotyczące bazy kodu, bibliotek kodu, najlepszych rozwiązań i środowiska projektowego. Tryb zapytaj nie modyfikuje kodu bezpośrednio, ale udostępnia wyjaśnienia, szczegółowe informacje i sugestie, których można użyć do ulepszania kodu.
Tryb "Ask" w GitHub Copilot jest przydatny podczas pracy z dużymi funkcjami, które są złożone i trudne do zrozumienia. Zadając ukierunkowane pytania, można podzielić dużą funkcję na części możliwe do zarządzania, zidentyfikować obszary pod kątem poprawy i efektywnie zaplanować działania refaktoryzacji kodu.
Ogólne przypadki użycia trybu zapytań w usłudze GitHub Copilot
Tryb pytania GitHub Copilot jest zintegrowany z programem Visual Studio Code za pomocą rozszerzenia GitHub Copilot Chat. Możesz rozpocząć konwersację w trybie zadawania pytań, otwierając panel czatu i wpisując swoje pytania w języku naturalnym. Oto kilka typowych przypadków użycia trybu zapytań:
- Wyjaśnij/podsumuj kod: Wygeneruj podział języka naturalnego na to, co robi kod. Możesz poprosić GitHub Copilot o podsumowanie całej bazy kodu lub dowolnej klasy, metody lub bloku kodu.
- Identyfikowanie sekcji logicznych: Często zwraca ponumerowaną listę odrębnych zadań lub kroków wykonywanych przez kod.
- Wyróżnij problemy: Może wskazywać na powtórzenie lub złożoność.
- Odpowiedz na konkretne pytania: "Co to robi pętla?" lub "Dlaczego te parametry są potrzebne?"
- Sugerowane podejścia refaktoryzacji: "Można wyodrębnić te kroki do oddzielnych funkcji..."
Identyfikowanie i ocenianie dużych funkcji przy użyciu trybu zapytań w usłudze GitHub Copilot
Istnieje kilka scenariuszy, w których tryb ask może pomóc w identyfikowaniu i analizowaniu dużych funkcji:
- Identyfikowanie potencjalnie problematycznych dużych funkcji: Poproś Copilota o znalezienie funkcji przekraczających określoną liczbę wierszy lub próg złożoności.
- Opis funkcji: Zapytaj, co funkcja wykonuje na wysokim poziomie.
- Podział logiki: Poproś o wyjaśnienie krok po kroku logiki funkcji.
- Identyfikowanie problemów: Zapytaj o potencjalne problemy lub niedoskonałości kodu.
- Sugestie dotyczące refaktoryzacji: Zapoznaj się z poradami dotyczącymi refaktoryzacji funkcji, aby uzyskać lepszą czytelność i łatwość konserwacji.
- Eksplorowanie alternatyw: Poproś o różne sposoby implementowania tych samych funkcji.
- Uczenie się najlepszych praktyk: Poproś o najlepsze praktyki kodowania związane z celem funkcji.
Oto ogólny proces, który używa narzędzia GitHub Copilot do identyfikowania i analizowania dużych funkcji:
Identyfikowanie problematycznych dużych funkcji: użyj trybu zapytaj, aby zidentyfikować funkcje, które przekraczają określone progi.
Przejrzyj wyniki narzędzia GitHub Copilot: Przeanalizuj listę zidentyfikowanych funkcji i nadaj im priorytety na podstawie złożoności i wpływu. Użyj osądu, aby wybrać funkcje, które najbardziej skorzystają z refaktoryzacji.
Oceń określoną dużą funkcję: użyj trybu zapytaj, aby szczegółowo przeanalizować funkcję.
Zadaj pytanie przy użyciu monitu języka naturalnego, takiego jak:
- "Przeanalizuj wybraną funkcję i podaj ogólne podsumowanie jej przeznaczenia i głównych obowiązków. Uwzględnij wszelkie obawy dotyczące złożoności lub łatwości konserwacji, które zauważysz.
- "Podziel wybraną funkcję na odrębne zadania logiczne lub obowiązki. Dla każdego zadania wskaż, które wiersze kodu są zaangażowane i czy każde zadanie można wyodrębnić do oddzielnej funkcji.
- "Zidentyfikuj konkretne możliwości refaktoryzacji w wybranej funkcji. Zasugeruj, które bloki kodu można wyodrębnić do oddzielnych metod, jakie metody powinny być nazwane i jakie parametry będą potrzebne.
- "Przeanalizuj złożoność cyklatyczną wybranej funkcji. Zidentyfikuj punkty decyzyjne (instrukcje if, pętle, instrukcje switch), które przyczyniają się najbardziej do złożoności i sugeruj konkretne strategie, aby je zmniejszyć, takie jak klauzule strażnicze, wczesne zwroty lub wzorce strategii.
- "Oceń wybraną funkcję względem zasad SOLID. Które zasady naruszają i jak?"
- Zidentyfikuj wszelkie symptomy złego kodu w wybranej funkcji, takie jak długie listy parametrów, zagnieżdżone instrukcje warunkowe lub powielające się wzorce kodu. Podaj konkretne przykłady".
- "Zasugeruj plan refaktoryzacji krok po kroku dla wybranej funkcji, ustalając priorytety zmian, które miałyby największy wpływ na czytelność i łatwość konserwacji".
Przejrzyj odpowiedź narzędzia GitHub Copilot na panelu czatu:
Zastosuj swoją wiedzę na temat bazy kodu i odpowiednich reguł biznesowych. Skorzystaj z własnej wiedzy, aby zweryfikować analizę narzędzia GitHub Copilot.
Poszukaj użytecznych wniosków w odpowiedzi. Na przykład można znaleźć konkretne zadania lub sekcje kodu, które można wyodrębnić do oddzielnych funkcji.
Zapytaj kontynuację:
- "Przejrzyj wzorce obsługi błędów w wybranej funkcji. Czy istnieją możliwości konsolidacji obsługi błędów, ulepszania komunikatów o błędach lub wyodrębniania obsługi błędów w składnikach wielokrotnego użytku?
- "Ocena wybranej funkcji względem zasady o pojedynczej odpowiedzialności. Jeśli ma wiele obowiązków, zidentyfikuj każdy z nich i zasugeruj, jak można je rozdzielić na ukierunkowane, jednofunkcyjne funkcje.
- "Przejrzyj sugerowany plan refaktoryzacji dla wybranej funkcji. Czy istnieją jakieś konsekwencje związane z zabezpieczeniami, wydajnością lub utrzymaniem możliwości, które należy wziąć pod uwagę? Wyjaśnij".
Zaplanuj refaktoryzację:
Skorzystaj ze szczegółowych informacji, aby przedstawić strategię refaktoryzacji.
Zdecyduj, które części mają być wyodrębnione do oddzielnych funkcji lub klas.
Porady dotyczące efektywnego korzystania z trybu zapytaj
Aby uzyskać największą korzyść z trybu Zapytaj w usłudze GitHub Copilot, rozważ następujące wskazówki:
- Bądź konkretny: W razie potrzeby zapytaj o poszczególne sekcje.
- Zachowaj widoczność kontekstu: Upewnij się, że narzędzie GitHub Copilot może "zobaczyć" całą funkcję. W razie potrzeby dodaj powiązane pliki do kontekstu czatu.
- Nie ufaj ślepo sugestiom: Użyj swojego osądu.
- Użyj wyników trybu pytającego jako modelu: Zaplanuj działania refaktoryzacji kodu na podstawie analizy narzędzia GitHub Copilot.
Uwaga / Notatka
Doświadczeni deweloperzy mogą używać trybu Zapytaj jako drugiej opinii i weryfikować własne plany refaktoryzacji dużych funkcji. Jeśli narzędzie GitHub Copilot zidentyfikuje te same zidentyfikowane funkcje, wiesz, że jesteś we właściwej ścieżce. Jeśli gitHub Copilot sugeruje refaktoryzację innych funkcji, możesz użyć szczegółowych informacji usługi GitHub Copilot, aby ocenić, czego brakowało.
Podsumowanie
Tryb zapytań Copilot w usłudze GitHub to zaawansowane narzędzie do analizowania i rozumienia dużych funkcji. Zadając ukierunkowane pytania, można podzielić złożony kod, zidentyfikować obszary pod kątem ulepszeń i efektywnie zaplanować projekt refaktoryzacji kodu. Przed rozpoczęciem refaktoryzacji użyj trybu Ask jako narzędzia wspomagającego planowanie, aby zapewnić dobrze przemyślane podejście.