Programmering

GitHub tager Visual Studio-kode online

I sin hovedtale ved GitHubs seneste satellitbegivenhed sagde administrerende direktør Nat Friedman: "I en alder af social distancering vender folk sig til social kodning." Vi arbejder hjemmefra ved hjælp af de værktøjer, der er indbygget i GitHub, til at erstatte hullerne i vores arbejdsgang, der tidligere blev fyldt med interaktioner med kolleger. Værktøjer som GitHub er blevet mere end det sted, vi gemmer og deler kode. De er nu vores virtuelle arbejdspladser, der omfatter flere af vores udviklingsarbejdsprocesser.

Forholdet mellem GitHub og Microsoft er interessant. Microsoft ejer GitHub, men det køres som en separat enhed med meget lidt kontakt mellem de to organisationer. Det er en division, der giver mening, da GitHubs rolle som et globalt lager for proprietær og open source-software kræver, at det er et neutralt knudepunkt - et FN-software. Det giver GitHub mulighed for at fortsætte med at køre på sin egen infrastruktur, bygget på sine egne værktøjer og teknologier. I mellemtiden har Microsoft øget sin afhængighed af GitHub, bygget sine egne værktøjer på GitHubs elektronramme og brugt GitHub i sine egne udviklingsprocesser.

Byg det i GitHub Codespaces

Det er interessant at se GitHub bygge en af ​​sine nyeste funktioner oven på en Microsoft-teknologi (omend en med et stærkt open source-fundament). Microsoft ændrede for nylig navnet på sit Visual Studio Online cloud-hostede udviklingsmiljø til Visual Studio Codespaces, og Satellit så GitHub lancere et lignende produkt med samme navn.

Det er vigtigt at bemærke, at selvom både Visual Studio Codespaces og GitHub Codespaces er bygget oven på Microsofts Visual Studio Code editor, er de meget forskellige produkter. Da Visual Studio Code bruger GitHubs elektron, er det et TypeScript-program. Det gør det let at porte til internettet og moderne webbrowsere med sin open source-kilde til Monaco-kodeditor. Microsoft bruger Codespaces som en måde at udvide dit desktop-udviklingsmiljø til skyen og dele det med ad hoc-samarbejdspartnere. GitHub behandler Codespaces ganske forskelligt og giver dig et browserhostet redigeringsmiljø som en del af et kodelager.

Ideen bag GitHub Codespaces er at give samarbejdspartnere adgang til kode, når den ændres, uanset hvor de måtte være: gennemgå kode, arbejde med problemer, der er rejst, eller gennemgå kode, der er indsendt med en pull-anmodning. Det er en måde at hurtigt komme ind på et lager for at redigere kode, hvis du har et gratis minut og en moderne webbrowser. Hvis du foretrækker at bruge en editor, fungerer Visual Studio Codespaces-udvidelsen til VS Code også med GitHub Codespaces.

Bygning af skyudviklingsmiljøer i GitHub Codespaces giver dig mulighed for at definere standardressourcer, som redaktøren bruger som en del af et arkiv ved hjælp af velkendte dotfiles. Brugere kan have deres egne konfigurationer, som indlæses fra deres profil. Der er support til VS Codes eksisterende udvidelsesmodel og Visual Studio Code Marketplace, så du kan installere de udvidelser, du har brug for til at arbejde med et specifikt projekt. Hvis du arbejder med en Go-app, kan du installere de relevante Go-udvidelser. Det samme for Rust, C # og Flutter; GitHub Codespaces-miljøet er lige så fleksibelt som selve koden.

For at fremskynde tingene tilbyder GitHub et lager af forudkonfigurerede versioner af Codespaces-containere med forekomster af Node, Go, .NET Core, C ++ og mere. Disse inkluderer værktøjer til at oprette og fejle kode, der kører i Codespaces-containeren. Ved at levere en hel værktøjskæde i en container er du i stand til at gøre meget mere end at redigere kode, for eksempel at teste og verificere ændringer, før du fletter en pull-anmodning.

Hver Codespaces-editor har en version af VS Code GitHub-udvidelsen til at hjælpe med at håndtere problemer og trække anmodninger samt arbejde med flere grene af din kode. Du kan klone arkiver ved at arbejde med den velkendte Git-arbejdsgang. Der er mulighed for, at Codespaces kan arbejde med private opbevaringssteder, men beta understøtter kun personlige og offentlige opbevaringssteder. Hvis du bruger GitHub Enterprise, kan du bruge andre værktøjer til at arbejde med din kode; måske endda Visual Studio-koderum.

GitHub Codespaces har brug for mange ressourcer til at køre, og selvom tjenesten er gratis under beta, er det sandsynligvis en betalingsfunktion, når den starter. Hver forekomst kræver en container til at være vært for Visual Studio Code-sprogserverne. Brugergrænsefladen er i din browser, men meget af det tunge løft, der kræves for at køre VS Codes udviklerværktøjer, skal køre i Codespaces-containeren. Da mange millioner udviklere bruger GitHub og hver Codespaces-container, der kræver to kerner og 4 GB hukommelse, kan brugen tilføjes meget hurtigt. GitHub planlægger dog at tilbyde pay-as-you-go-priser, hvilket bør holde omkostningerne på et minimum.

Diskuter det i GitHub-diskussioner

Redigering i skyen er kun en del af GitHubs udvidede sociale kodningshistorie. Meget af GitHubs nylige arbejde har gjort det lettere for projektvedligeholdere at arbejde med det samfund, der er samlet omkring deres kode. Selvom det er muligt at have Slack eller andre samarbejdsplatforme som en del af en kombineret workflow, kan open source-projekter ofte ikke betale for planer, der giver dem mulighed for at arkivere diskussioner. At adskille samtale og kode gør det svært at give direkte forbindelser mellem de to, og selvom kommentarer og problemer i GitHub tilbyder en måde at linke dem på, er de stadig meget mere formelle end de fleste sociale medier.

Satellit så lanceringen af ​​GitHub Discussions, en måde at integrere trådede samtaler inde i et lager. Noget der minder om Usenet-nyhedsgrupper fra old school, de er en nyttig måde at opbygge samarbejdsdokumentation omkring et projekt på. Stack Overflow bruger en sådan struktur, men samtaler er mere fri form med mulighed for at stemme på indhold såvel som direkte links til hvert diskussionselement. Vedligeholdere kan bruge links til at bringe indhold fra diskussioner ind i andre dokumenter, så et diskussionselement kan knyttes til et emne for at tillade yderligere samtale.

Samtalestyring er vigtig, og vedligeholdere har mulighed for at låse diskussioner ned, når en nyttig samtale er slut. Rollebaseret adgang kan kontrollere samtaler, for eksempel ved at give en diskussion, som alle kan læse, men kun godkendte samarbejdspartnere kan skrive. Hvis diskussioner kan leve op til sit løfte som et fokuseret, relevant rum til at samarbejde om kode og dokumentation, skal det gå langt for at hjælpe udviklere med at arbejde på GitHub uden at skifte kontekst mellem applikationer og miste fokus samt undgå lange samtaler over rystende usikre videolinks.

Fjernsamarbejde er ikke let, så det er vigtigt for community-orienterede websteder som GitHub at tilbyde så mange forskellige værktøjer og tjenester som muligt med det formål at gøre det let at arbejde sammen, uanset hvor eller hvordan du arbejder. GitHub-koderum og GitHub-diskussioner ser ud til at være vigtige skridt på den rejse, og det vil være interessant at se, hvordan de bruges.