Kod

Sieć neuronowa pisze za mnie kod: jak korzystam z wersji beta Copilota

Sieć neuronowa pisze za mnie kod: jak korzystam z wersji beta Copilota

Bezpłatny kurs: „Szybki start w Python»

Dowiedz się więcej

Igor Kamyshev to uznana postać w swojej dziedzinie, posiadająca bogate doświadczenie i wiedzę. Jego praca koncentruje się na osiąganiu wysokich rezultatów i wdrażaniu innowacyjnych rozwiązań. Dzięki profesjonalizmowi i zaangażowaniu w rozwój, Igor stał się autorytetem wśród współpracowników i klientów.

W swojej pracy Igor aktywnie wykorzystuje nowoczesne technologie i metody, co pozwala mu utrzymać konkurencyjność na rynku. Dąży do ciągłego uczenia się i doskonalenia, co czyni go ekspertem w swojej dziedzinie.

Igor Kamyshev aktywnie dzieli się swoim doświadczeniem z innymi, prowadząc kursy mistrzowskie i seminaria szkoleniowe. Jego podejście do pracy inspiruje wielu, a osiągane rezultaty potwierdzają jego wysoki poziom profesjonalizmu.

Współpraca z Igorem Kamyshevem otwiera nowe horyzonty dla biznesu i pomaga w osiąganiu celów. Jego reputacja i osiągnięcia mówią same za siebie, czyniąc go cennym partnerem i specjalistą w swojej dziedzinie. pole.

Ekspert w swojej dziedzinie posiada głęboką wiedzę i doświadczenie, co pozwala mu na dostarczanie wysokiej jakości rekomendacji i rozwiązań. Jego kompetencje obejmują szeroki zakres zagadnień związanych z aktualnymi trendami i najlepszymi praktykami. Ciągłe dokształcanie się i udział w wydarzeniach branżowych czynią go cennym źródłem informacji dla klientów i współpracowników. Aktywnie dzieli się swoją wiedzą poprzez publikacje i wystąpienia. zaangażowania, zwiększając świadomość w swojej dziedzinie. Wykorzystując swoje praktyczne doświadczenie, pomaga klientom osiągać ich cele, oferując spersonalizowane strategie i podejścia. W Aviasales pracuje w zespole platformy internetowej, usprawniając przepływy pracy w obszarze front-end. Prowadzi bloga i kanał Telegram poświęcony tworzeniu oprogramowania. Dzieli się tam przydatnymi wskazówkami, nowymi technologiami i aktualnymi trendami w tworzeniu stron internetowych, pomagając programistom rozwijać umiejętności i upraszczać zadania. Linki odgrywają kluczową rolę w nawigacji w sieci i są ważnym elementem SEO. Pomagają użytkownikom znaleźć potrzebne informacje i ułatwiają przejścia między stronami, witrynami i zasobami. Dobrze ustrukturyzowane i wysokiej jakości linki poprawiają widoczność witryny w wyszukiwarkach i przyczyniają się do jej popularności. Ważne jest, aby zwracać uwagę zarówno na linki wewnętrzne, jak i zewnętrzne. Linki wewnętrzne łączą strony witryny, ułatwiając użytkownikom nawigację i pomagając wyszukiwarkom indeksować treści. Linki zewnętrzne kierujące do witryny zwiększają jej autorytet i zaufanie w oczach wyszukiwarek. Optymalizacja linków, w tym stosowanie odpowiednich tekstów kotwic i poprawnych adresów URL, również pomaga w poprawie pozycji w wynikach wyszukiwania. Skuteczne linki stanowią podstawę skutecznej strategii SEO i pomagają przyciągnąć do Twojej witryny więcej odbiorców docelowych. Strona internetowa.

Copilot to inteligentny asystent integrujący się ze środowiskami programistycznymi (IDE). To narzędzie potrafi konwertować mowę angielską na kod, dostarczać pomocnych wskazówek, pozostawiać komentarze i generować nazwy funkcji. System osiąga najlepsze rezultaty w pracy z językami programowania takimi jak Python, JavaScript, TypeScript, Ruby i Go, ale obsługuje również wiele innych języków programowania. Copilot znacznie upraszcza proces tworzenia oprogramowania, zwiększając wydajność i produktywność programistów.

GitHub opracował Copilot, sieć neuronową wytrenowaną na kodzie open source dostępnym na platformie. System ten może również uczyć się z plików lokalnych, rozszerzając swoją funkcjonalność i czyniąc go bardziej elastycznym w stosunku do potrzeb programistów. Copilot pomaga przyspieszyć proces kodowania, oferując inteligentne sugestie i autouzupełnianie, co znacznie zwiększa produktywność programistów.

Twórcy Copilot zapewniają, że Twój kod o zamkniętym kodzie źródłowym nie zostanie przesłany na serwery GitHub. Podzielam tę opinię, ponieważ gdyby GitHub chciał uzyskać dostęp do Twojego kodu, istniałyby prostsze sposoby, aby to zrobić. Bezpieczeństwo Twoich danych jest dla platformy ważne i dlatego podejmują środki w celu zapewnienia poufności Twojego kodu.

Copilot uwalnia mnie od rutynowych obowiązków.

Jestem członkiem zespołu tworzącego narzędzia dla programistów. Moja praca obejmuje programowanie backendu i frontendu, a także pisanie skryptów Bash. Miałem szczęście uczestniczyć w programie testowym Copilot, który daje mi dostęp do jego darmowej wersji beta. Moi znajomi zazdroszczą, ponieważ ich wnioski o udział nie zostały jeszcze zatwierdzone. Ta usługa działa jako wtyczka do programu Visual Studio Code, co czyni ją wygodnym narzędziem dla programistów.

Na początku korzystania z Copilota byłem niezadowolony. Obawiałem się, że wskazówki będą uciążliwe i będą wymagały ponownego czytania w celu sprawdzenia jakości kodu, co prowadziłoby do niepotrzebnego zużycia energii. W swojej pracy staram się oszczędzać energię i minimalizować wysiłek umysłowy.

Copilot znacznie uprościł moją pracę, uwalniając mnie od żmudnych zadań. Aktywnie korzystałem ze Storybook, narzędzia, które pozwala tworzyć komponenty interfejsu użytkownika w izolacji i natychmiast wyświetlać je w przeglądarce. Wcześniej Storybook miał wtyczkę o nazwie Storybook Addon Knobs, która pokazywała właściwości elementów, takie jak kolor czy rozmiar przycisku. Została ona jednak wyłączona i zastąpiona nową wtyczką o zmodyfikowanej składni. W rezultacie musiałem ręcznie przepisać 200 plików, a procesu tego nie dało się zautomatyzować za pomocą narzędzi do migracji.

Po przetworzeniu pierwszych 15 plików Copilot znacznie poprawił swoją wydajność, pozwalając mi polegać głównie na autouzupełnianiu. Po prostu naciskałem Tab i od czasu do czasu wprowadzałem drobne poprawki. Chociaż nie mam głębokiej wiedzy na temat sieci neuronowych i ich działania, jest jasne, że Copilot szybko opanował zadanie i był w stanie samodzielnie wykonać większość zadań. To podkreśla skuteczność narzędzi opartych na sztucznej inteligencji w automatyzacji rutynowych procesów.

Copilot jest przydatny przede wszystkim do pisania w JavaScript i TypeScript. Jednak wykazuje niewystarczającą wydajność w Bash, ponieważ sieć neuronowa nie otrzymała wystarczającej ilości danych do trenowania w tym obszarze. Jeśli programujesz w Bash, korzystanie z Copilota nie jest jeszcze uzasadnione.

TypeScript to rozszerzenie JavaScript, które dodaje typowanie statyczne. Ta funkcja zapewnia ulepszone podpowiedzi w edytorach i umożliwia walidację kodu w czasie kompilacji. Zastosowanie TypeScript znacznie upraszcza standaryzację programowania, co jest szczególnie ważne dla dużych zespołów. Korzystając z TypeScript, programiści mogą zmniejszyć liczbę błędów, poprawić czytelność kodu i zwiększyć ogólną produktywność zespołu.

Czasami piszę w Go, ale nie mogę ocenić jakości sugestii Copilota, ponieważ dopiero zaczynam się go uczyć. Byłem rozczarowany autouzupełnianiem w Scali. Język jest dość specyficzny i zawsze wydawał mi się zagadką, którą lepiej rozwiązać samemu. Chociaż jest przyjemny, nie planuję już używać Scali w środowisku produkcyjnym. Jest zbyt akademicki do praktycznego zastosowania.

Próbowałem Haskella i moje doświadczenia były jeszcze gorsze niż ze Scalą. Mam trudności z zapamiętaniem wszystkich typów kontrawariantnych, monoidów, monad i innych koncepcji. Te trudności odciągają mnie od wykonywania moich zwykłych zadań.

Copilot stał się skutecznym narzędziem do pracy z Docker Compose. Na przykład po poleceniu „docker compose” od razu proponuje przekierowanie portu, co jest rozsądnym podejściem. Chociaż nie zawsze dokładnie przewiduje wartości liczbowe, jego rekomendacje są zazwyczaj pomocne i znacznie upraszczają proces konfiguracji. Korzystanie z Copilot w Docker Compose zwiększa produktywność i pomaga uniknąć typowych błędów.

Ma wiele zastosowań.

Pokażę, jak Copilot pomaga w wykonywaniu funkcji, generowaniu nazw i automatyzowaniu rutynowych zadań. Jako przykład wykorzystam mój ulubiony projekt na GitHubie.

Copilot automatycznie wykonuje funkcje w TypeScript. Na przykład, jeśli otworzysz plik i zaczniesz wpisywać „formatDate”, Copilot wykona całą funkcję. Aby zapisać kod, wystarczy nacisnąć klawisz Tab.

Usługa oferuje inteligentny podpis funkcji. Podczas dodawania tekstu Copilot nie będzie w stanie przewidzieć pełnej funkcji, ale spróbuje uzupełnić jej podpis. Na przykład, jeśli będę musiał obliczyć sumę kilku wartości, zaproponuje własne rozwiązanie. Jeśli wprowadzę zmiany, system natychmiast poda alternatywne sugestie.

Wolę zwięzłe podpowiedzi, ponieważ łatwiej się z nimi pracuje. Często naciskam klawisz Tab, aby sprawdzić, czy moje IDE podświetla kod. Jeśli nie, wszystko jest w porządku.

Copilot generuje nowe funkcje w TypeScript. Po wpisaniu „funkcja” automatycznie sugeruje nazwę i kod na podstawie kontekstu. Na przykład może zasugerować „handleChange”, co jest logicznym wyborem. Copilot często podpowiada dobre sugestie, co dowodzi jego skuteczności w analizie sąsiadującego kodu i kontekstu. Znacznie upraszcza to proces tworzenia oprogramowania i zwiększa produktywność programistów.

Copilot działa nawet w pustym pliku. Jeśli utworzę nowy plik YML i określę „services”, Copilot automatycznie zasugeruje poprawny kod. Na początku wystąpił błąd – na dole okna pojawił się czerwony wskaźnik sygnalizujący, że Copilot nie działa, ale wkrótce został aktywowany. Ten asystent potrafi generować całe pliki, pozostawiając mi jedynie zadanie ustawienia niezbędnych wartości.

Czasami Copilot zaczyna się zacinać na pewnym fragmencie kodu, sugerując te same linijki. Dzieje się tak, dopóki użytkownik nie zainterweniuje i nie wprowadzi zmian w kodzie.

Copilot generuje funkcje o różnej długości. W przypadku krótkich funkcji narzędzie zazwyczaj daje dobre rezultaty, ale przy tworzeniu bardziej złożonych i długich funkcji jego sugestie mogą być mniej skuteczne. Na przykład, gdy poproszono je o przetasowanie tablicy, wygenerowało działającą funkcję składającą się z siedmiu wierszy. Podkreśla to zarówno możliwości, jak i ograniczenia narzędzia w rozwiązywaniu bardziej złożonych problemów programistycznych.

Dodaję testy dla mojej funkcji „format_number”, aby sprawdzić, czy działa ona w ustawieniach regionalnych USA. Sformułuję test jako „powinien formatować w ustawieniach regionalnych USA”, a kreator automatycznie wygeneruje niezbędny kod. Rezultatem jest logiczna struktura, porównywalna z tą, którą sam bym opracował.

Podpowiedzi Copilota dostosowują się do konkretnego projektu, nad którym pracuję. Sieć neuronowa wydaje się analizować kontekst i dostosowywać się do niego. Jednak jeśli Copilot oferuje zbyt długie podpowiedzi, często łatwiej jest je zignorować i napisać kod samodzielnie. To może zaoszczędzić czas i poprawić koncentrację, zwłaszcza gdy podpowiedź nie odpowiada moim potrzebom.

Copilot ma cztery istotne wady

We wrześniu 2021 roku piszę ten artykuł o Copilocie, który wówczas był jeszcze w fazie beta. Ma on kilka oczywistych wad. Czasami koliduje ze zintegrowanym środowiskiem programistycznym (IDE), a także pojawiają się pytania dotyczące licencjonowania i jakości generowanego kodu. Mimo to Copilot to innowacyjne narzędzie, które może znacząco uprościć proces programowania, pomagając programistom pisać kod i zwiększając ich produktywność.

Konflikty ze środowiskiem IDE mogą negatywnie wpływać na produktywność programistów. Copilot czasami zakłóca działanie wbudowanych podpowiedzi oferowanych przez IDE. Pracuję głównie z językami o silnej typizacji i po wpisaniu kropki IDE wyświetla dostępne pola obiektów. Wbudowany autouzupełnianie aktywuje się po 0,2 sekundy, podczas gdy podpowiedź Copilota pojawia się dopiero po 2 sekundach. Powoduje to opóźnienie i utrudnia szybkie kodowanie, co może stanowić wyzwanie dla programistów dążących do wysokiej wydajności. Optymalizacja interakcji ze środowiskiem IDE i korzystanie z narzędzi autouzupełniania muszą być zrównoważone, aby zapewnić płynny przepływ pracy.

Kod obcy w projekcie. Copilot może dodawać fragmenty kodu stron trzecich do projektów. Istnieją obawy, że usługa może wykorzystywać elementy oprogramowania ze szkodliwą licencją, co wymagałoby licencjonowania całego projektu. Jednak Microsoft oficjalnie oświadczył, że ponosi wszelkie ryzyko prawne związane z korzystaniem z takiego kodu. To oświadczenie pomaga programistom czuć się pewniej korzystając z Copilota w swoich projektach, ale ważne jest, aby być świadomym potencjalnych konsekwencji integracji kodu stron trzecich.

Opublikowano tweeta o użytkowniku wprowadzającym klucz SSH, a Copilot zasugerował uzupełnienie klucza zaczerpnięte z innego projektu. Autor jednak później usunął wątek i wyjaśnił, że sieć neuronowa zasugerowała losowy klucz. Ten incydent podkreśla wagę świadomości potencjalnych zagrożeń związanych z korzystaniem z narzędzi opartych na sztucznej inteligencji, zwłaszcza w kontekście bezpieczeństwa danych i informacji poufnych. Użytkownicy powinni być świadomi sposobu, w jaki obchodzą się z kluczami SSH i innymi krytycznymi elementami bezpieczeństwa, aby uniknąć potencjalnych zagrożeń.

Jeśli Copilot sugeruje kod, który prawdopodobnie został napisany przez człowieka, należy zachować ostrożność. Do tej pory nie odnotowano takich przypadków.

Niezamknięte nawiasy mogą stanowić problem podczas programowania. Nowoczesne zintegrowane środowiska programistyczne (IDE) automatycznie zamykają nawiasy, upraszczając proces kodowania. Po dodaniu nawiasu otwierającego, IDE automatycznie wstawia nawias zamykający, minimalizując ryzyko wystąpienia błędów. Jeśli jednak używasz narzędzi takich jak Copilot i odrzucisz ich sugestie, może to spowodować, że nawiasy pozostaną otwarte, zmuszając programistę do ich ręcznego zamknięcia. Choć może się to wydawać drobnym szczegółem, takie drobne problemy mogą być irytujące i odciągać uwagę od głównego procesu programowania.

Błędy typograficzne. Chcę, aby Copilot poprawnie interpretował system typów w moim języku programowania. Często sugeruje on nieprawidłowe typy, co prowadzi do błędów kompilacji. To stwarza dodatkowe trudności w rozwoju i zmniejsza produktywność. Potrzebne jest lepsze wsparcie typologiczne, aby Copilot mógł generować poprawne typy i minimalizować liczbę błędów w kodzie.

Zawsze będę używać Copilota

Po półtora miesiącu korzystania z Copilota tak się do niego przyzwyczaiłem, że stał się moim standardowym narzędziem do uzupełniania kodu w IDE. Często naciskam Tab, aby szybko uzupełnić kod. Ponieważ piszę głównie proste programy, Copilot znacznie upraszcza rutynowe zadania, pozwalając mi skupić się na efekcie końcowym i uniknąć powtarzalnego pisania podobnego kodu.

System oczywiście czasami popełnia błędy i w takich przypadkach wymagane są poprawki kodu, ale oszczędza to programistom znaczną ilość czasu. Kiedy usługa przestaje działać, od razu uświadamiam sobie, jak ważna jest dla mojego procesu pracy. Gdyby Copilot nie był darmowy, chętnie bym za niego zapłacił.

Przydałoby się, gdyby Copilot automatycznie wykrywał typy danych, weryfikował swoje wskazówki i sugerował rozwiązania w przypadku niezgodności typów. To znacznie zwiększyłoby wydajność i usprawniło współpracę z programistami. Mamy nadzieję, że takie funkcje zostaną dodane w przyszłych aktualizacjach.