GitHub는 Visual Studio Code를 온라인으로 가져옵니다.

GitHub의 최근 Satellite 이벤트에서 기조 연설을 한 CEO Nat Friedman은 "사회적 거리감 시대에 사람들은 소셜 코딩으로 눈을 돌리고 있습니다."라고 말했습니다. 우리는 GitHub에 내장 된 도구를 사용하여 동료와의 상호 작용으로 채워 졌던 워크 플로의 공백을 대체하여 집에서 작업하고 있습니다. GitHub와 같은 도구는 우리가 코드를 저장하고 공유하는 공간 그 이상이되었습니다. 이제 더 많은 개발 워크 플로를 포함하는 가상 작업 공간이되었습니다.

GitHub와 Microsoft의 관계는 흥미 롭습니다. Microsoft는 GitHub를 소유하고 있지만 두 조직 간의 접촉이 거의없는 별도의 엔터티로 실행됩니다. 독점 및 오픈 소스 소프트웨어의 글로벌 저장소로서 GitHub의 역할을 수행하려면 중립적 인 허브 인 UN 소프트웨어가되어야하므로 이는 말이되는 부서입니다. 이를 통해 GitHub는 자체 도구와 기술을 기반으로 구축 된 자체 인프라에서 계속 실행될 수 있습니다. 한편 Microsoft는 GitHub에 대한 종속성을 증가시켜 GitHub의 Electron 프레임 워크에 자체 도구를 구축하고 자체 개발 프로세스에서 GitHub를 사용했습니다.

GitHub 코드 스페이스에서 빌드

GitHub가 Microsoft 기술 (강력한 오픈 소스 기반이긴하지만) 위에 최신 기능 중 하나를 구축하는 것을 보는 것은 흥미 롭습니다. Microsoft는 최근 Visual Studio Online 클라우드 호스팅 개발 환경의 이름을 Visual Studio Codespaces로 변경했으며 Satellite는 GitHub가 동일한 이름을 사용하여 유사한 제품을 출시하는 것을 확인했습니다.

Visual Studio 코드 스페이스와 GitHub 코드 스페이스는 모두 Microsoft의 Visual Studio 코드 편집기를 기반으로 구축되었지만 매우 다른 제품이라는 점에 유의해야합니다. Visual Studio Code는 GitHub의 Electron을 사용하므로 TypeScript 애플리케이션입니다. 따라서 Monaco 코드 편집기 오픈 소스를 사용하여 웹 및 최신 웹 브라우저로 쉽게 이식 할 수 있습니다. Microsoft는 데스크톱 개발 환경을 클라우드로 확장하고 임시 공동 작업자와 공유하는 방법으로 코드 스페이스를 사용하고 있습니다. GitHub는 코드 공간을 매우 다르게 취급하여 코드 저장소의 일부로 브라우저에서 호스팅되는 편집 환경을 제공합니다.

GitHub 코드 스페이스의 기본 개념은 코드 검토, 제기 된 문제에 대한 작업 또는 풀 요청으로 제출 된 코드 검토와 같이 코드가 변경 될 때마다 공동 작업자에게 코드에 대한 액세스 권한을 부여하는 것입니다. 무료 시간과 최신 웹 브라우저가있는 경우 코드를 편집하기 위해 리포지토리로 빠르게 이동하는 방법입니다. 편집기 사용을 선호하는 경우 VS Code 용 Visual Studio Codespaces 확장은 GitHub Codespaces에서도 작동합니다.

GitHub Codespaces에서 클라우드 개발 환경을 구축하면 익숙한 도트 파일을 사용하여 편집기가 저장소의 일부로 사용하는 기본 리소스를 정의 할 수 있습니다. 사용자는 자신의 프로필에서로드되는 자체 구성을 가질 수 있습니다. VS Code의 기존 확장 모델 및 Visual Studio Code Marketplace에 대한 지원이 있으므로 특정 프로젝트에서 작업하는 데 필요한 확장을 설치할 수 있습니다. Go 앱으로 작업하는 경우 적절한 Go 확장 프로그램을 설치할 수 있습니다. Rust, C #, Flutter도 마찬가지입니다. GitHub Codespaces 환경은 코드 자체만큼 유연합니다.

속도를 높이기 위해 GitHub는 Node, Go, .NET Core, C ++ 등에 대한 인스턴스와 함께 사전 구성된 코드 스페이스 컨테이너 버전의 리포지토리를 제공합니다. 여기에는 Codespaces 컨테이너에서 실행되는 코드를 빌드하고 디버그하는 도구가 포함됩니다. 컨테이너에 전체 도구 체인을 제공하면 코드를 편집하는 것 이상을 수행 할 수 있습니다 (예 : pull 요청 병합 전에 변경 사항 테스트 및 확인).

각 Codespaces 편집기에는 VS Code GitHub 확장 버전이있어 문제 및 pull 요청을 관리하고 코드의 여러 분기로 작업하는 데 도움이됩니다. 익숙한 Git 워크 플로를 사용하여 리포지토리를 복제 할 수 있습니다. 코드 스페이스가 개인 리포지토리와 함께 작동 할 수있는 범위가 있지만 베타는 개인 및 공용 리포지토리 만 지원합니다. GitHub Enterprise를 사용하는 경우 다른 도구를 사용하여 코드로 작업 할 수 있습니다. Visual Studio 코드 공간 일 수도 있습니다.

GitHub 코드 스페이스를 실행하려면 많은 리소스가 필요하며 베타 기간 동안 서비스는 무료이지만 출시되면 유료 기능이 될 가능성이 높습니다. 각 인스턴스에는 Visual Studio Code 언어 서버를 호스팅하기위한 컨테이너가 필요합니다. UI는 브라우저에 있지만 VS Code의 개발자 도구를 실행하는 데 필요한 많은 작업은 Codespaces 컨테이너에서 실행해야합니다. 수백만 명의 개발자가 GitHub 및 2 개의 코어와 4GB의 메모리를 필요로하는 각 코드 스페이스 컨테이너를 사용하므로 사용량이 매우 빠르게 증가 할 수 있습니다. 그러나 GitHub는 비용을 최소한으로 유지해야하는 종량제 가격을 제공 할 계획입니다.

GitHub 토론에서 토론 

클라우드에서 편집하는 것은 GitHub의 확장 된 소셜 코딩 스토리의 일부일뿐입니다. 많은 GitHub의 최근 작업은 프로젝트 관리자가 코드를 중심으로 통합 된 커뮤니티와 더 쉽게 작업 할 수 있도록했습니다. 결합 된 워크 플로우의 일부로 Slack 또는 기타 협업 플랫폼을 사용할 수 있지만 오픈 소스 프로젝트는 종종 토론을 보관할 수있는 계획에 대한 비용을 지불 할 수 없습니다. 대화와 코드를 분리하면 둘 사이에 직접적인 링크를 제공하기가 어렵고 GitHub 내부의 댓글과 이슈가 이들을 연결하는 한 가지 방법을 제공하지만 여전히 대부분의 소셜 미디어보다 훨씬 더 형식적입니다.

Satellite는 저장소에 스레드 된 대화를 임베드하는 방법 인 GitHub 토론을 시작했습니다. 구식 유즈넷 뉴스 그룹을 다소 연상시키는 이들은 프로젝트에 대한 공동 문서를 작성하는 데 유용한 방법입니다. Stack Overflow는 이와 같은 구조를 사용하지만 대화는 콘텐츠에 대한 투표 옵션과 각 토론 요소에 대한 직접 링크가있는보다 자유로운 형식입니다. 유지 관리자는 링크를 사용하여 토론의 콘텐츠를 다른 문서로 가져올 수 있으므로 토론 요소를 문제에 연결하여 추가 대화를 할 수 있습니다.

대화 관리는 중요하며 관리자는 유용한 대화가 끝나면 토론을 잠글 수있는 옵션이 있습니다. 역할 기반 액세스는 대화를 제어 할 수 있습니다. 예를 들어 모든 사람이 읽을 수 있지만 승인 된 공동 작업자 만 게시 할 수있는 토론을 제공합니다. 토론이 코드와 문서를 중심으로 협업 할 수있는 집중적이고 관련성있는 공간으로 약속에 부응 할 수 있다면 개발자가 애플리케이션간에 컨텍스트를 전환하고 집중을 잃지 않고 GitHub에서 작업하는 데 도움이 될뿐만 아니라 흔들리는 긴 대화를 피할 수 있습니다. , 안전하지 않은 비디오 링크.

원격 공동 작업은 쉽지 않으므로 GitHub와 같은 커뮤니티 지향 사이트에서 작업 장소 나 방법에 관계없이 쉽게 함께 작업 할 수 있도록 최대한 다양한 도구와 서비스를 제공하는 것이 중요합니다. GitHub Codespaces 및 GitHub 토론은 그 여정에서 중요한 단계로 보이며 어떻게 사용되는지 보는 것이 흥미로울 것입니다.