최고의 Go 언어 IDE 및 편집기

Google의 Go 언어 (일명 Golang)는 1 년 동안 2 위를 차지한 Dart 및 Perl의 두 배 이상인 인기 급상승을 기반으로 2016 년 Tiobe의 프로그래밍 언어로 최근 선정되었습니다. Tiobe의 언어 색인은 여러 검색 엔진의 결과를 사용하여 "전 세계의 숙련 된 엔지니어 수, 교육 과정 및 타사 공급 업체"를 기반으로합니다.

이렇게 인기가 높아지면서 프로그래밍 언어 용 개발 도구에 대한 관심도 높아졌습니다. Go 언어는 컴파일러, 도구 및 라이브러리가 포함 된 오픈 소스 형식으로 배포되기 때문에 프로그래머가 직접 찾을 수있는 것은 바로 편집자이든 IDE (통합 개발 환경)이든 상관없이 로컬 또는 구름.

이 기사에서는 사용 가능한 모든 Go-aware 편집 환경을 살펴보고 가치가있는 환경에 집중하려고했습니다. Go 용 IDE 및 플러그인의 공식 목록으로 시작하여 목록에있는 약 35 개 항목을 평가판을받을 가치가있는 항목까지 선정했습니다. 각 카테고리에서 찾은 유용한 제품에 대한 간단한 요약으로 시작하여 최고의 선택 항목을 자세히 살펴 보겠습니다.

Go 언어 개발은 ​​일반적으로 Go 개발 작업 영역의 루트로 설정된 GOPATH 변수에 의존합니다. 이는 항상 환경 설정을 따르지 않는 편집기와 같은 GUI 응용 프로그램의 문제가 될 수 있습니다.

go getGo 자체가 설치되면 명령을 사용 하여 GOPATH 폴더 아래의 디렉토리에 설치할 수있는 Go 언어 도구가 12 개 이상 있습니다 . 내가 평가 한 많은 편집자들은 이러한 도구 중 하나 이상을 사용합니다.

Go IDE

Go를 지원하는 수많은 IDE가 있습니다. 그러나 "지원"의 의미는 다양합니다. 나에게 눈에 띄는 IDE는 Gogland, goclipse가 포함 된 Eclipse, LiteIDE 및 Komodo IDE입니다.

하이 엔드에서 JetBrains의 Gogland는 스마트 완성, 검사 및 빠른 수정, 간단한 리팩토링, 빠른 탐색, 빠른 팝업, 매우 기본적인 코드 생성, 재귀 호출 감지, 표현 유형 팝업, 종료 지점 강조 표시, 사용 검색, 코드 서식 지정, 의미 론적 강조 표시 및 해당 편집기의 매개 변수 힌트. 예, 그것은 어린 언어를 편집하기위한 많은 기능입니다. 다른 Gogland 기능에는 통합 디버거, 커버리지 분석, 테스트 실행, Go 도구 실행을위한 메뉴, IntelliJ IDEA와 같은 다른 JetBrains 제품에서 볼 수있는 것과 유사한 일부 비 Go 관련 기능이 포함됩니다. Gogland는 시스템 GOPATH 환경에만 의존하지 않고 여러 GOPATH 설정을 관리 할 수 ​​있습니다.

Gogland는 현재 초기 액세스 제품으로 무료로 제공됩니다. 결국 다른 JetBrains 제품 라인에 따라 가격이 책정 될 것입니다. 학계 및 오픈 소스 기여자를위한 할인과 함께 자체적으로 또는 나머지 JetBrains 도구와 함께 번들로 연간 구독을 통해 사용할 수 있습니다.

약간 낮은 수준의 복잡도에서 Eclipse with goclipse는 편집기에서 구문 강조, 자동 들여 쓰기 및 개요를 제공하며, 모두 Java와 같은 다른 Eclipse 언어 모듈의 정신을 따릅니다. 통합에는 GDB를 사용한 디버깅, guru 및 godef Go 도구를 사용한 정의 찾기, gocode 도구를 사용한 자동 완성이 포함됩니다. Eclipse 및 goclipse 플러그인은 무료이며 오픈 소스입니다.

LiteIDE는 패키지 브라우저, 클래스보기 및 개요, 문서 브라우저, 코드 탐색, 사용법 찾기 및 편집기에서 코드 리팩토링을 지원합니다. 통합에는 gocode 지원, GOPATH API 색인, GDB를 사용한 디버깅 및 Go 플레이 그라운드가 있습니다. LiteIDE는 무료이며 오픈 소스입니다.

Komodo IDE는 Go 구문 검사 (린팅) 및 강조 표시, 구문 색상 지정, 코드 접기 및 기타 생산성 향상 기능을 지원합니다. Komodo는 완성, 통화 팁, 개요 및 정의로 이동과 함께 Go 코드 인텔리전스도 지원합니다. 리팩토링에는 변수 및 클래스 멤버 이름 변경과 메서드 추출이 포함됩니다. Komodo는 Go 단위 테스트, 코드 공동 작업, 버전 제어, 대화 형 셸 및 코드 프로파일 링을 지원합니다. Komodo의 명성에 대한 주요 주장은 Python, Node.js, Ruby, Go, Perl 및 Tcl을 포함한 모든 주요 오픈 소스 언어를 지원한다는 것입니다.

Komodo IDE는 상용 제품입니다. IDE 기능의 하위 집합을 포함하는 Komodo 편집기는 무료입니다.

Go 편집자

IDE는 코드 개발에 필요한 모든 기능을 제공 할 수 있지만 IDE는 종종 "무거운"느낌을받을 수 있습니다. 즉, 시작하는 데 오랜 시간이 걸리고 많은 메모리를 사용하며 때로는 백그라운드에서 너무 많은 작업을 수행하기 때문에 코드를 입력 할 때 응답하지 않는 느낌이들 수 있습니다. 컴파일을 위해 별도의 명령 줄 셸 창으로 전환 할 필요가없는 한 코드 편집기는 특히 짧은 세션의 경우 선호 될 수 있습니다.

플러그인은 때때로 코드 편집기에 IDE와 유사한 기능을 추가 할 수 있습니다. 플러그인을 최신 상태로 유지하는주기적인 오버 헤드와 백그라운드에서 프로세스를 실행하는 플러그인의 지속적인 오버 헤드가 편집 속도를 늦추지 않는 한 일반적으로 좋습니다.

Atom, Brackets 및 Visual Studio Code는 Go 언어로 작업하는 데있어 저에게 눈에 띄는 세 가지 편집기입니다. 모두 무료이며 오픈 소스입니다. 그럼에도 불구하고 BBEdit, Emacs, Notepad ++, Sublime Text, TextMate 및 Vim은 모두 Go 언어 플러그인과 통합되며 모두 지지자가 있습니다. Emacs, Notepad ++ 및 Vim은 무료이며 오픈 소스입니다. BBEdit는 상업용이지만 동생 TextWrangler는 무료입니다.

GitHub의 Atom 편집기는 Go 문법 및 스 니펫을 지원하는 language-go 패키지와 함께 제공됩니다. Go 용 추가 패키지는 더 많은 기능을 제공합니다. 예를 들어 go-plus는 많은 표준 Go 도구 (자동 완성, 서식 지정, Linting, 테스트 용)와 통합되어 IDE와 유사한 환경을 제공하고 go-debug는 delve 디버거와 통합됩니다.

Adobe의 Brackets 편집기에는 Go 지원을위한 여러 커뮤니티 확장이 있습니다. 여기에는 gocode자동 완성에 사용되는 Go-IDE가 포함됩니다 . 구문 강조를 위해 CodeMirror를 사용하는 Go-Syntax; gofmt코드 형식 goimports을 지정하고 가져 오기를 관리 하는 데 사용 하는 향상된 Go Formatter .

Visual Studio Code는 기본적으로 Go 구문 강조 표시를 지원합니다. 12 개 이상의 표준 Go 도구와 통합되는 vscode-go 플러그인에서 추가 기능을 제공합니다. GOPATH를 설정하지 않은 경우 플러그인은 Go 언어 파일을 편집하자마자 설정하도록 요청합니다. 프로젝트 및 / 또는 시스템 환경에 맞게 설정할 수 있습니다. Go 도구가 설치되어 있지 않은 경우 플러그인은 GOPATH에서 결정한 표준 위치에 설치하도록 요청합니다.

클라우드 기반 Go IDE

클라우드 기반 IDE는 소프트웨어 개발 분야에서 비교적 최근의 혁신입니다. 두 가지 고유 한 장점이 있습니다. 호환되는 브라우저 외에는 로컬 설정이 필요하지 않으며 이를 위해 설계된 경우 여러 개발자가 편집 수 있습니다. 단점으로 클라우드 기반 IDE는 종종 지연으로 인해 개발자를 괴롭 히고 코더의 생산성을 극대화하는 "흐름"을 방해 할 수 있습니다. 현재 세 가지 클라우드 기반 IDE (Cloud9, CodeEnv 및 Wide)가 Go 언어를 지원합니다.

Cloud9는 Go out of the box를 지원하는 다국어 클라우드 기반 IDE입니다. GitHub, Bitbucket, Google Cloud Platform 저장소와 연결되며 공유 및 복제 할 수있는 작업 공간이 있습니다. 광범위한 기능 세트와 온라인 파일 시스템이있는 코드 편집기 외에도 MySQL 및 기타 데이터베이스, 터미널 및 즉각적인 창, 사용자 지정 가능한 키보드 바인딩이 있으며 Vim, Emacs 및 Sublime Text 모드가 표준으로 제공됩니다. Go에 대한 자동 완성 및 디버깅은 아직 실험 단계이지만 구문 강조, 실행 패널, 개요보기 및 Linting이 모두 완벽하게 지원됩니다.

CodeEnv는 다국어 클라우드 기반 IDE이기도합니다. 비공개 환경에 대한 Go 기본 환경 이미지와 공개 Go 환경 이미지가 있습니다. 각 환경은 파일 시스템, 구문 강조 표시가있는 간단한 코드 편집기 및 터미널 창으로 구성됩니다. 현재 8 개의 기본 이미지와 6 개의 백엔드 이미지가 있습니다.

Wide는 Go 프로그래밍 언어로 작성된 팀을위한 웹 기반 IDE입니다. Gocode 지원 구문 강조, 자동 완성, 코드 서식 지정 및 실시간 공동 작업이 포함 된 CodeMirror 기반 테마 프로그래밍 편집기를 사용합니다. Wide는 LiteIDE를 종속성으로 인용합니다.

고글 랜드

현재 초기 프리뷰 상태에있는 JetBrains Gogland는 아직 상용화되지는 않았지만 사용 가능한 가장 완벽한 Go IDE 인 것으로 보입니다. 통합 디버거, 커버리지 분석 및 테스트 실행은 몇 가지 도구 통합이있는 평범한 편집기와 구별하는 데 큰 도움이됩니다.

Gogland를 사용하여 Go 언어 프로젝트의 소스 코드 중 일부를 검사하는 아래 스크린 샷에서 프로젝트 트리, 검사 힌트 (전구), 종료 지점 강조 표시, 오른쪽의 탐색 모음 (순서가 잘못된 줄 번호가있는 코드 상자). Gogland가 무엇을 할 수 있는지 보여주는 더 많은 스크린 샷을 보려면 JetBrains의 기능 가이드를 참조하십시오.

Gogland는 IntelliJ IDEA 및 WebStorm과 동일한 JetBrains 플러그인 에코 시스템을 사용하며 이미 해당 제품에서 상속 된 많은 관련 기능을 포함하고 있습니다. 예를 들어 Gogland를 사용하여 WebStorm과 똑같은 HTML 및 프런트 엔드 언어 및 프레임 워크를 사용할 수 있습니다. Gogland를 사용하면 IntelliJ IDEA 및 DataGrip과 같은 SQL 데이터베이스로 작업 할 수도 있습니다. Node.js 지원을 Go 코딩과 결합해야하거나 Git 통합 외에도 Subversion 지원이 필요한 경우 플러그인을 추가하면됩니다.

Visual Studio 코드

vscode-go 플러그인이 포함 된 Visual Studio Code는 잘 작동하고 Git 통합이 우수한 멋진 Go 편집기입니다. Visual Studio Code는 업데이트가 필요하고 적어도 한 달에 한 번 다시 시작해야하지만 편집 중에 느리게 느껴지는 경우는 거의 없습니다. 아래 스크린 샷에서 왼쪽에는 탐색기, 오른쪽 하단에는 Go 도구 설치, 오른쪽 상단에는 코드 편집이 있습니다.

Go 도구는 많은 편집 및 코드 검사 기능을 제공하는 vscode-go 플러그인을 활성화합니다. 여기에는 완성 목록 (사용 gocode), 서명 도움말 ( gogetdoc또는 godef더하기 사용 godoc), 스 니펫, 빠른 정보 ( gogetdoc또는 godef더하기 사용 godoc), 정의로 이동 ( gogetdoc또는 godef더하기 godoc사용 guru), 참조 찾기 (사용 ), 파일 개요 (사용 go-outline), 작업 공간 기호 검색이 포함됩니다. (사용 go-symbols바꾸기 (사용)을 gorename빌드 온 저장 (사용) go buildgo test(하여 저장 보풀 온) golint또는 gometalinter) 포맷 (사용 goreturns하거나 goimports또는 gofmt단위 테스트 골격 (하여 생성) gotests(사용 수입을 추가) gopkgs), 부분적으로 구현 된 디버깅 (사용delve).

Gogland IDE에서 얻는 것만 큼은 아니지만 그것은 많은 유용한 기능입니다. vscode-go readme 파일의 스크린 캐스트는 대부분의 기능이 작동하는 방식을 잘 보여줍니다.

클라우드 9

Go를 지원하는 세 가지 클라우드 IDE 중 현재 가장 흥미로운 것은 Cloud9입니다. 세 가지 중 가장 기능적인 프로그래밍 편집기를 가지고 있으며 Go 외에도 약 17 개 언어를 지원합니다. Go 언어 코드 완성이 실험적으로 표시되었지만 꽤 잘 작동하고 입력 지연을 많이 일으키지 않는다는 것을 알았습니다.

Cloud9의 Ace 편집기는 현재 100 개 이상의 프로그래밍 언어에 대한 구문 강조 표시를 지원합니다. 위의 숫자 17은 코드 실행, linting, 개요, 코드 완성 및 디버깅과 같은 다른 지원도있는 언어를위한 것입니다.

Cloud9 작업 영역은 현재 Ubuntu 14.04 및 Go 1.7.3을 실행합니다. Bash 셸 (스크린 샷 하단 참조)에서 Go 설치를 업데이트하고 Bash에서 Go 및 기타 프로그램을 실행할 수 있습니다.

지금까지 살펴본 바와 같이 Go 개발을위한 프로그래밍 환경을 다양하게 선택할 수 있습니다. 내가 가진 최고의 완벽한 기능을 갖춘 이동 IDE, Visual Studio를 코드로 고글란 트 섬을 집어 동안 최고의 이동 편집기로 vscode - 이동, 그리고 최고의 이동 클라우드 IDE로 Cloud9 나를 위해 , 30 개 이상의 다른 가능성이있다. 소프트웨어 개발 환경의 선택이 얼마나 개인적 일 수 있는지를 감안할 때 몇 가지를 시도하고 어떤 것이 자신의 요구와 선호에 가장 적합한 지 확인해야합니다.