GitHub Copilot Tips and Tricks

Czym jest GitHub Copilot i dlaczego warto go używać?

Wyobraź sobie, że masz kumpla/kumpelę programistkę, którzy zawsze są pod ręką, nigdy nie śpią, mają anielską cierpliwość do twoich pytań, każdego dnia uczą się czegoś nowego i znają najlepsze praktyki na pamięć. To właśnie może być GitHub Copilot.

GitHub Copilot to asystent programisty oparty na sztucznej inteligencji, stworzony przez GitHub i OpenAI. Analizując Twoje komentarze oraz kontekst kodu, oferuje sugestie w czasie rzeczywistym, co sprawia, że Twoja praca staje się szybsza i bardziej efektywna. Niezależnie od tego, czy walczysz z napiętymi terminami, czy chcesz uniknąć powtarzalnych zadań, Copilot oszczędza Twój czas i energię, pozwalając Ci skupić się na kreatywnym rozwiązywaniu problemów.

Praca z GitHub Copilot — praktyczne wskazówki

Twój asystent to tylko model językowy. Nie myśli, nie rozumie kodu ani twoich intencji. Został wytrenowany na miliardach przykładów i przewiduje ciągi znaków, które z dużym prawdopodobieństwem odpowiadają na twoje pytanie. Często trafia w punkt, ale bywa, że wygeneruje kompletny chłam. Dlatego warto pamiętać o kilku zasadach:

  1. To ty jesteś kapitanem tego statku, Copilot tylko pomaga.
    Jego sugestie stają się coraz lepsze, gdy poznaje twój kod i „uczy się” twojego stylu, ale to ty decydujesz, co zaakceptować. Zawsze sprawdzaj, czy to, co zaproponował, ma sens i testuj zmiany, które wprowadził. Na końcu to ty odpowiadasz za kod.
  2. Nie jest to narzędzie dla osób, które nie chcą się uczyć.
    Copilot świetnie wspiera naukę: tłumaczy trudniejsze fragmenty kodu, generuje przykłady i pomaga pisać bardziej zwięźle. Ale jeśli nie rozumiesz, co robią jego odpowiedzi, może wpędzić cię w ślepy zaułek. Wykorzystuj go jako wsparcie w nauce, ale to ty musisz przyswoić wiedzę i rozumieć co robisz.
  3. Copilot nie czyta ci w myślach.
    Jeśli nie daje odpowiedzi, której oczekujesz, zastanów się, czy dobrze zadajesz pytanie. Podaj więcej kontekstu, wyjaśnij, co chcesz osiągnąć, i spróbuj ponownie. Komunikacja to umiejętność, którą warto rozwijać.
  4. Pierwsza odpowiedź to tylko punkt wyjścia.
    Copilot się nie nudzi ani nie frustruje. Jeśli wynik ci się nie podoba, dodaj więcej szczegółów, wskaż, co ma być poprawione, lub co chcesz zobaczyć. Daj feedback i wygeneruj wynik jeszcze raz.
  5. Dziel zadania na mniejsze kroki.
    Ponieważ Copilot nie rozumie twoich intencji tak, jak zrobiłby to człowiek, lepiej prowadzić go małymi krokami. Zamiast np. używać komendy /refactor na całym pliku, poproś o uproszczenie konkretnego fragmentu kodu i oceń wyniki przed przejściem do kolejnych.
  6. Ufaj, ale sprawdzaj.
    Przy takich poleceniach jak /refactor sprawdzaj dokładnie, co zostało zmienione, zanim zaakceptujesz zmiany. Pamiętaj też o testach. Przykład? Przy poleceniu „improve readability of the code” oczekiwałam, że Copilot poprawi formatowanie formularza HTML, a skończyło się na tym, że usunął kilka pól. 😅

Z Copilotem można po prostu “rozmawiać” pisząc mu jakie są twoje oczekiwania, w oknie czatu. Można otworzyć okno komendy bezpośrednio w pliku i kazać mu wygenerować kod inline, ale można też korzystać z “komend” Copilot.

Różnice między @, / i # w komendach Copilot

Podczas pracy z GitHub Copilot możesz natknąć się na polecenia i makra zaczynające się od @, / lub #. Każdy z tych prefiksów ma swoje unikalne zastosowanie, pomagając zorganizować sposób interakcji z Copilotem:

  • @ – Odnosi się do akcji systemowych lub zasobów, takich jak interakcja z terminalem, przestrzenią roboczą lub repozytorium Git.
    • Przykład: @terminal: Run tests otwiera terminal i uruchamia skrypt testowy. Używaj go do interakcji z narzędziami zewnętrznymi lub zasobami powiązanymi z Twoim środowiskiem kodowania.
  • / – Aktywuje akcje związane z kodem, takie jak refaktoryzacja, naprawa błędów lub generowanie wyjaśnień. Te komendy są bezpośrednio związane z analizą i ulepszaniem kodu.
    • Przykład: /refactor sugeruje ulepszenia w strukturze kodu.
  • # – Odnosi się do operacji kontekstowych na kodzie, takich jak zaznaczanie określonych fragmentów, debugowanie lub automatyzacja zadań związanych z wybranymi sekcjami.
    • Przykład: #select podświetla wszystkie wystąpienia konkretnej zmiennej w pliku.

Znajomość zastosowania tych prefiksów pomaga efektywnie korzystać z Copilot i organizować przepływ pracy.

Przydatne Makra i Komendy

Komenda

Opis

/refactor

Automatycznie sugeruje lepsze sposoby strukturyzowania kodu.

#select

Zaznacza określone elementy kodu, np. wszystkie zmienne globalne.

@workspace

Wyszukuje lub modyfikuje pliki w całej przestrzeni roboczej projektu.

/test

Generuje testy jednostkowe dla Twojego kodu.

/fix

Proponuje poprawki dla błędów lub ostrzeżeń w kodzie.

@terminal

Wykonuje polecenia terminalowe bezpośrednio z VS Code.

/explain

Oferuje wyjaśnienia fragmentów kodu, aby były łatwiejsze do zrozumienia.

#terminalLastCommand

Powtarza ostatnie wykonane polecenie terminalowe. Przydatne przy iteracyjnych zadaniach.

/doc

Przydatne do generowania dokumentacji kodu. Można go używać do automatycznego tworzenia komentarzy dla funkcji, klas, czy metod, na podstawie ich struktury i kontekstu. 

Dlaczego warto korzystać z GitHub (lub innego) Copilot?

To nie jest kwestia wyboru. Jeśli nie idziesz na przód, to zostajesz w tyle. Szczególnie w świecie technologii.

Praca z narzędziami AI pozwala przyśpieszyć niektóre proste czynności i powtarzalne zadania.

Komunikowanie się za pomocą promptów, może pomóc ci poprawić sposób w jaki się komunikujesz. Komendy, które wydajesz sztucznej inteligencji muszą być klarowne, zawierać wystarczającą ilość kontekstu, żebyś otrzymała oczekiwany wynik i powinny być zwięzłe. Sama zabawa tymi narzędziami może ci pomóc w budowaniu skilsetu przyszłości.

Bonus

Nie wiem jak wy, ale ja nie znoszę pisać commit msg. Dobre wieści, Copilot może zrobić to za ciebie na kilka sposobów!

  • W Visual Studio Code możesz użyc wbudowanego przycisku

  • Użyj /doc lub /explain

Wprowadź polecenie jako komentarz, np.:

/doc Generate commit message for the changes in this file

lub

/explain Summarize these changes into a commit message

Copilot wygeneruje podpowiedź na podstawie zmian w plikach.

Praca to (nie) wyrok.

Ta książka to strzał w dziesiątkę, jeśli czujesz, że praca Cię męczy i chcesz coś zmienić. „Praca to (nie) wyrok” uczy, jak ogarnąć zespół, lepiej się komunikować i rozwijać siebie. Prosty język, konkretne rady, wciągająca fabuła.

What Is GitHub Copilot and Why Use It?

Imagine having a programmer friend who’s always available, never sleeps, has infinite patience for your questions, learns something new every day, and knows best practices by heart. That’s GitHub Copilot.

GitHub Copilot is an AI-powered programming assistant developed by GitHub and OpenAI. By analyzing your comments and the context of your code, it offers real-time suggestions, making your work faster and more efficient.

Whether you’re fighting tight deadlines or want to avoid repetitive tasks, Copilot saves your time and energy, allowing you to focus on creative problem-solving.

Working with GitHub Copilot — Practical Tips

Your assistant is just a language model. It doesn’t think, understand code, or know your intentions. It’s trained on billions of examples and predicts sequences of characters that are likely to answer your query. Often, it’s spot-on, but sometimes it generates complete nonsense. That’s why it’s essential to keep a few principles in mind:

 

  1. You’re the captain of the ship; Copilot just assists. Its suggestions improve as it gets to know your code and “learns” your style, but you decide what to accept. Always verify if the suggestions make sense and test any changes it introduces. Ultimately, you’re responsible for the code.
  2. It’s not a tool for those unwilling to learn. Copilot is great for learning: it explains complex code fragments, generates examples, and helps you write more concisely. However, if you don’t understand its responses, it can lead you astray. Use it as support while learning, but you need to acquire knowledge and understand what you’re doing.
  3. Copilot doesn’t read your mind. If it doesn’t give the expected answer, consider whether you’re asking the question correctly. Provide more context, explain what you want to achieve, and try again. Communication is a skill worth developing.
  4. The first answer is just a starting point. Copilot doesn’t get bored or frustrated. If you don’t like the result, add more details, specify what should be improved, or explain what you want to see. Give feedback and generate a new result.
  5. Break tasks into smaller steps. Since Copilot doesn’t understand your intentions as a human would, it’s better to guide it step by step. Instead of using a /refactor command on an entire file, ask it to simplify a specific piece of code and evaluate the results before moving on.
  6. Trust but verify. With commands like /refactor, carefully review what’s been changed before accepting it. Don’t forget about tests. For example, when I used the command “improve readability of the code,” I expected Copilot to enhance HTML form formatting, but it ended up removing a few fields. 😅

 

With Copilot, you can simply “talk” by writing your expectations in the chat window. You can open the command window directly in a file to generate inline code, or use Copilot commands.

Differences Between @, /, and # in Copilot Commands

When working with GitHub Copilot, you might encounter commands and macros starting with @, /, or #. Each has its unique application, helping you organize how you interact with Copilot:

 

  • @ – Refers to system-level actions or resources, such as interacting with the terminal, workspace, or Git repository.
  • / – Activates code-related actions such as refactoring, fixing errors, or generating explanations. These commands are directly tied to analyzing and improving the code.
  • # – Refers to contextual operations on code, such as selecting specific fragments, debugging, or automating tasks for selected sections.

 

Understanding these prefixes helps you use Copilot more effectively and organize your workflow.

Useful Macros and Commands

Commands and Description

/refactor 

Suggests better ways to structure your code.

#select 

Highlights specific code elements, such as all global variables.

@workspace 

Searches or modifies files across your project workspace.

/test

Generates unit tests for your code.

/fix

Proposes fixes for errors or warnings in the code.

@terminal 

Executes terminal commands directly from VS Code.

/explain

Offers explanations for code snippets to make them easier to understand.

#terminalLastCommand 

Repeats the last executed terminal command.

/doc 

Useful to generate documentation

Why Use GitHub Copilot?

This isn’t a matter of choice. If you’re not moving forward, you’re falling behind, especially in the tech world.

Working with AI tools speeds up simple tasks and repetitive actions.

Communicating through prompts can also improve your communication skills. Commands issued to AI need to be clear, provide sufficient context to get the expected result, and should be concise. Even playing with these tools can help you build a skill set for the future.


Bonus: Generating Commit Messages

I don’t know about you, but I hate writing commit messages. Good news: Copilot can do it for you in several ways.

In Visual Studio Code, you can use the built-in button.

Use /doc or /explain

Enter the command as a comment, e.g.:

 /doc Generate commit message for the changes in this file 

Or

/explain Summarize these changes into a commit message. 

Copilot will generate a suggestion based on the changes in your files.