GitHub pobiera Visual Studio Code w trybie online

W swoim przemówieniu na niedawnym wydarzeniu satelitarnym GitHub dyrektor generalny Nat Friedman powiedział: „W dobie dystansu społecznego ludzie zwracają się ku kodowaniu społecznemu”. Pracujemy z domu, używając narzędzi wbudowanych w GitHub, aby zastąpić luki w naszym przepływie pracy, które były wypełnione interakcjami ze współpracownikami. Narzędzia takie jak GitHub stały się czymś więcej niż miejscem, w którym przechowujemy i udostępniamy kod. Są teraz naszymi wirtualnymi miejscami pracy, obejmującymi więcej naszych przepływów pracy nad rozwojem.

Relacja między GitHubem a Microsoftem jest interesująca. Firma Microsoft jest właścicielem GitHub, ale działa jako odrębna jednostka z bardzo niewielkim kontaktem między dwiema organizacjami. Jest to dział, który ma sens, ponieważ rola GitHub jako globalnego repozytorium oprogramowania zastrzeżonego i oprogramowania open source wymaga, aby był neutralnym centrum - organizacją Narodów Zjednoczonych oprogramowania. To pozwoliło GitHub na dalsze działanie na własnej infrastrukturze, zbudowanej na własnych narzędziach i technologiach. W międzyczasie Microsoft zwiększył swoje zależności od GitHub, budując własne narzędzia na platformie Electron GitHub i używając GitHub we własnych procesach programistycznych.

Zbuduj go w przestrzeni kodowej GitHub

Ciekawie jest zobaczyć, jak GitHub buduje jedną z najnowszych funkcji na bazie technologii Microsoft (aczkolwiek z silną podstawą open source). Firma Microsoft niedawno zmieniła nazwę swojego środowiska programistycznego hostowanego w chmurze Visual Studio Online na Visual Studio Codespaces, a firma Satellite zobaczyła, że ​​GitHub uruchomił podobny produkt pod tą samą nazwą.

Należy zauważyć, że chociaż zarówno przestrzenie kodowe programu Visual Studio, jak i przestrzenie kodowe GitHub są zbudowane na podstawie edytora kodu Visual Studio firmy Microsoft, są to bardzo różne produkty. Ponieważ Visual Studio Code używa języka Electron GitHub, jest to aplikacja TypeScript. Ułatwia to przenoszenie do Internetu i nowoczesnych przeglądarek internetowych dzięki otwartemu edytorowi kodu Monaco. Firma Microsoft używa Codespaces jako sposobu na rozszerzenie środowiska programistycznego pulpitu do chmury i udostępnianie go współpracownikom ad hoc. GitHub traktuje Codespaces zupełnie inaczej, udostępniając hostowane przez przeglądarkę środowisko edycji jako część repozytorium kodu.

Ideą GitHub Codespaces jest zapewnienie współpracownikom dostępu do kodu w miarę jego zmian, gdziekolwiek się znajdują: przeglądanie kodu, praca z podniesionymi problemami lub przeglądanie kodu, który został przesłany za pomocą żądania ściągnięcia. Jest to sposób na szybkie wrzucenie do repozytorium w celu edycji kodu, jeśli masz wolną minutę i nowoczesną przeglądarkę internetową. Jeśli wolisz używać edytora, rozszerzenie Visual Studio Codespaces dla VS Code będzie również działać z GitHub Codespaces.

Budowanie środowisk programistycznych w chmurze w GitHub Codespaces daje możliwość zdefiniowania domyślnych zasobów, których redaktor używa jako części repozytorium, przy użyciu znajomych dotfiles. Użytkownicy mogą mieć własne konfiguracje, które ładują się z ich profilu. Dostępna jest obsługa istniejącego modelu rozszerzeń VS Code i Visual Studio Code Marketplace, dzięki czemu można zainstalować rozszerzenia potrzebne do pracy z określonym projektem. Jeśli pracujesz z aplikacją Go, możesz zainstalować odpowiednie rozszerzenia Go. To samo dla Rust, C # i Flutter; Środowisko GitHub Codespaces jest tak samo elastyczne jak sam kod.

Aby przyspieszyć działanie, GitHub oferuje repozytorium wstępnie skonfigurowanych wersji kontenerów Codespaces z instancjami dla Node, Go, .NET Core, C ++ i nie tylko. Obejmują one narzędzia do tworzenia i debugowania kodu, działające w kontenerze Codespaces. Dostarczając cały łańcuch narzędzi w kontenerze, możesz zrobić znacznie więcej niż tylko edytować kod, na przykład testować i weryfikować zmiany przed scaleniem żądania ściągnięcia.

Każdy edytor Codespaces będzie miał wersję rozszerzenia VS Code GitHub, aby pomóc w zarządzaniu problemami i żądaniami ściągnięcia, a także w pracy z wieloma gałęziami kodu. Możesz klonować repozytoria, korzystając ze znanego przepływu pracy Git. Przestrzenie kodów mogą współpracować z prywatnymi repozytoriami, ale wersja beta będzie obsługiwać tylko repozytoria osobiste i publiczne. Jeśli korzystasz z GitHub Enterprise, możesz używać innych narzędzi do pracy z kodem; może nawet przestrzenie kodowe Visual Studio.

Przestrzenie kodowe GitHub wymagają do działania wielu zasobów i chociaż usługa jest bezpłatna w fazie beta, prawdopodobnie będzie to funkcja płatna po uruchomieniu. Każde wystąpienie wymaga kontenera do hostowania serwerów języka Visual Studio Code. Interfejs użytkownika znajduje się w przeglądarce, ale większość ciężkiej pracy wymaganej do uruchomienia narzędzi programistycznych VS Code musi działać w kontenerze Codespaces. Przy wielu milionach programistów korzystających z GitHub i każdego kontenera Codespaces wymagającego dwóch rdzeni i 4 GB pamięci, użycie może się bardzo szybko sumować. Jednak GitHub planuje oferować ceny płatności zgodnie z rzeczywistym użyciem, co powinno ograniczyć koszty do minimum.

Omów to w dyskusjach GitHub 

Edycja w chmurze to tylko część rozszerzonej historii kodowania społecznościowego GitHub. Wiele niedawnych prac GitHub ułatwiło opiekunom projektów współpracę ze społecznością, która skupiła się wokół ich kodu. Chociaż możliwe jest posiadanie Slacka lub innych platform współpracy jako części połączonego przepływu pracy, projekty open source często nie są w stanie zapłacić za plany, które pozwalają im archiwizować dyskusje. Oddzielenie konwersacji od kodu utrudnia zapewnienie bezpośrednich połączeń między nimi i chociaż komentarze i problemy w GitHub oferują jeden sposób ich łączenia, nadal są one znacznie bardziej formalne niż większość mediów społecznościowych.

Firma Satellite była świadkiem uruchomienia GitHub Discussions, sposobu osadzania wątków konwersacji w repozytorium. Przypominają nieco stare grupy dyskusyjne Usenet i są użytecznym sposobem tworzenia wspólnej dokumentacji wokół projektu. Stack Overflow wykorzystuje taką strukturę, ale konwersacje są bardziej swobodne z opcją głosowania na zawartość, a także bezpośrednimi linkami do każdego elementu dyskusji. Opiekunowie mogą używać linków do przenoszenia treści z Dyskusji do innych dokumentów, więc element Dyskusji może być powiązany z problemem, aby umożliwić dalszą rozmowę.

Zarządzanie konwersacjami jest ważne, a opiekunowie mają możliwość zablokowania dyskusji po zakończeniu przydatnej rozmowy. Dostęp oparty na rolach może kontrolować konwersacje, na przykład zapewniając dyskusję, którą każdy może przeczytać, ale tylko zatwierdzeni współpracownicy mogą publikować. Jeśli Dyskusje spełni swoją obietnicę jako skoncentrowana, odpowiednia przestrzeń do współpracy wokół kodu i dokumentacji, powinna znacznie pomóc programistom w pracy na GitHub bez przełączania kontekstu między aplikacjami i utraty koncentracji, a także unikania długich rozmów na niepewnych niezabezpieczone linki wideo.

Współpraca zdalna nie jest łatwa, dlatego ważne jest, aby witryny społecznościowe, takie jak GitHub, oferowały jak najwięcej różnych narzędzi i usług w celu ułatwienia współpracy, bez względu na to, gdzie i jak pracujesz. Przestrzenie kodowe GitHub i dyskusje GitHub wyglądają na ważne kroki w tej podróży i ciekawie będzie zobaczyć, jak są używane.