IDE dan editor bahasa Go terbaik

Bahasa Google Go, alias Golang, baru-baru ini dipilih sebagai bahasa pengaturcaraan Tiobe pada tahun 2016, berdasarkan pertumbuhan populariti yang pesat sepanjang tahun, lebih dari dua kali ganda daripada naib juara Dart dan Perl. Indeks bahasa Tiobe didasarkan pada "jumlah jurutera mahir di seluruh dunia, kursus, dan vendor pihak ketiga," menggunakan hasil beberapa mesin pencari.

Pertumbuhan populariti yang begitu besar ini membawa peningkatan minat terhadap alat pengembangan untuk bahasa pengaturcaraan. Oleh kerana bahasa Go diedarkan dalam bentuk sumber terbuka lengkap dengan penyusun, alat, dan perpustakaan, apa yang tersisa untuk dicari oleh pengaturcara adalah persekitaran penyuntingan Go-sedar, sama ada editor lurus atau persekitaran pembangunan bersepadu (IDE), dihoskan di dalam negara atau di awan.

Untuk artikel ini, saya telah berusaha untuk melihat semua persekitaran penyuntingan Go-sedar yang ada dan sifar pada yang kelihatan bermanfaat. Saya bermula dengan senarai rasmi IDE dan Plugin untuk Go dan memenangi kira-kira 35 item dalam senarai itu hingga yang mungkin layak mendapat percubaan. Saya akan mulakan dengan maklumat ringkas mengenai produk berguna yang saya dapati dalam setiap kategori dan diakhiri dengan melihat pilihan utama saya.

Perhatikan bahawa pengembangan bahasa Go biasanya bergantung pada pemboleh ubah GOPATH yang ditetapkan ke akar ruang kerja pengembangan Go anda. Itu boleh menjadi masalah untuk aplikasi GUI seperti editor, yang tidak selalu menghormati pengaturan persekitaran.

Terdapat lebih daripada selusin alat bahasa Go yang boleh anda pasang di direktori di bawah folder GOPATH dengan go getarahan, setelah Go itu sendiri dipasang. Sebilangan besar editor yang saya nilai menggunakan satu atau lebih alat ini.

Pergi IDE

Terdapat sebilangan besar IDE yang menyokong Go. Walau bagaimanapun, makna "sokongan" berbeza. Empat IDE menonjol untuk saya: Gogland, Eclipse with goclipse, LiteIDE, dan Komodo IDE.

Pada akhir yang tinggi, Gogland dari JetBrains mempunyai penyelesaian pintar, pemeriksaan dan pembaikan cepat, pemfaktoran semula mudah, navigasi cepat, pop timbul cepat, beberapa penjanaan kod yang sangat asas, pengesanan panggilan berulang, penambahan jenis ekspresi, penyorotan titik keluar, penemuan penggunaan, pemformatan kod, penekanan semantik, dan petunjuk parameter dalam penyuntingnya. Ya, itu banyak fungsi untuk menyunting bahasa muda. Ciri-ciri Gogland lain termasuk debugger bersepadu, analisis liputan, ujian berjalan, menu untuk menjalankan alat Go, dan beberapa fungsi khusus bukan Go yang serupa dengan yang anda dapati dalam produk JetBrains lain, seperti IntelliJ IDEA. Gogland dapat menguruskan beberapa tetapan GOPATH, daripada bergantung sepenuhnya pada persekitaran sistem GOPATH.

Gogland kini tersedia percuma sebagai produk akses awal. Ia mungkin akan dijual pada harga produk JetBrains yang lain akhirnya. Jangkakan ia akan tersedia dengan langganan tahunan sama ada secara sendiri atau dalam kumpulan dengan alat JetBrains yang lain, dengan potongan untuk ahli akademik dan penyumbang sumber terbuka.

Pada tahap kerumitan yang sedikit lebih rendah, Eclipse dengan goclipse memberikan sorotan sintaksis, lekukan automatik, dan garis besar dalam penyuntingnya, semuanya berdasarkan semangat modul bahasa Eclipse lain seperti Java. Integrasi merangkumi penyahpepijatan dengan GDB, penemuan definisi dengan alat guru dan godef Go, dan pelengkapan automatik dengan alat gocode. Eclipse dan plugin goclipse adalah sumber terbuka dan bebas.

LiteIDE menggunakan penyemak imbas pakej, paparan dan garis besar kelas, penyemak imbas dokumen, navigasi kod, mencari penggunaan, dan pemodelan semula kod dalam penyuntingnya. Integrasi mempunyai sokongan gocode, indeks API GOPATH, penyahpepijatan dengan GDB, dan taman permainan Go. LiteIDE adalah sumber percuma dan terbuka.

Komodo IDE menyokong pemeriksaan sintaks Go (linting) dan penekanan, pewarnaan sintaks, lipatan kod, dan ciri peningkatan produktiviti lain. Komodo juga menyokong kecerdasan kod Go dengan penyelesaian, petua panggilan, garis besar, dan definisi yang sesuai. Refactoring merangkumi penamaan semula pemboleh ubah dan ahli kelas dan pengekstrakan kaedah. Komodo menyokong pengujian unit Go, kolaborasi kod, kawalan versi, cangkang interaktif, dan profil kod. Tuntutan utama Komodo yang terkenal adalah bahawa ia menyokong semua bahasa sumber terbuka utama, termasuk Python, Node.js, Ruby, Go, Perl, dan Tcl.

Komodo IDE adalah produk komersial. Komodo Editor, yang mempunyai subset kemampuan IDE, adalah percuma.

Pergi editor

Walaupun IDE dapat menyediakan semua fungsi yang anda mahukan untuk mengembangkan kod, IDE sering merasa "berat". Dengan kata lain, mereka memerlukan waktu yang lama untuk memulai, menggunakan banyak memori, dan kadang-kadang merasa tidak responsif ketika anda mengetik kod kerana mereka terlalu banyak melakukan latar belakang. Penyunting kod kadang kala lebih disukai, terutama untuk sesi pendek, selagi anda tidak terganggu dengan harus beralih ke tetingkap shell baris perintah yang terpisah untuk disusun.

Plugin kadang-kadang dapat menambahkan ciri seperti IDE untuk penyunting kod. Itu biasanya baik, selagi overhead berkala untuk memastikan plugin sentiasa terkini dan overhead berterusan plugin yang menjalankan proses di latar belakang tidak melambatkan penyuntingan anda.

Atom, Bracket, dan Visual Studio Code adalah tiga editor yang menonjol bagi saya kerana bekerja dalam bahasa Go. Semua adalah sumber percuma dan terbuka. Walaupun begitu, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate, dan Vim semuanya berintegrasi dengan plugin bahasa Go, dan semuanya mempunyai penyokongnya. Emacs, Notepad ++, dan Vim adalah sumber terbuka dan bebas. BBEdit adalah komersial, tetapi adiknya TextWrangler adalah percuma.

Editor Atom dari GitHub menghantar pakej bahasa-bahasa, yang menyokong tatabahasa Go dan potongan. Pakej tambahan untuk Go membawa lebih banyak fungsi. Sebagai contoh, go-plus berintegrasi dengan banyak alat Go standard (untuk pelengkap automatik, pemformatan, penyaringan, pengujian) untuk menyediakan persekitaran seperti IDE, dan go-debug berintegrasi dengan debveger delve.

Editor Kurungan dari Adobe mempunyai beberapa peluasan komuniti untuk sokongan Go. Ini termasuk Go-IDE, yang digunakan gocodeuntuk pelengkapan automatik; Go-Syntax, yang menggunakan CodeMirror untuk sorotan sintaks; dan Peningkatan Go Formatter, yang menggunakan gofmtuntuk memformat kod dan goimportsuntuk menguruskan import.

Visual Studio Code menyokong sorotan Go sorotan di luar kotak. Ciri tambahan disediakan oleh plugin vscode-go, yang berintegrasi dengan lebih daripada sedozen alat Go standard. Sekiranya anda tidak menetapkan GOPATH anda, plugin akan meminta anda untuk menetapkannya sebaik sahaja anda cuba mengedit fail bahasa Go; anda boleh menetapkannya untuk projek dan / atau persekitaran sistem. Sekiranya anda tidak memasang alat Go, plugin akan meminta untuk memasangnya di tempat standard seperti yang ditentukan oleh GOPATH anda.

Go IDE berasaskan awan

IDE berasaskan awan adalah inovasi yang agak baru di ruang pengembangan perisian. Mereka mempunyai dua kelebihan yang ada: Mereka tidak memerlukan penyediaan tempatan selain penyemak imbas yang serasi, dan mereka mungkin membenarkan penyuntingan oleh beberapa pembangun jika dirancang untuknya. Pada sisi negatifnya, IDE berasaskan awan sering mengalami kelewatan, yang dapat mendorong pengembang dan mengganggu "aliran" yang membolehkan pengekod menjadi paling produktif. Tiga IDE berasaskan cloud pada masa ini menyokong bahasa Go: Cloud9, CodeEnv, dan Wide.

Cloud9 adalah IDE berasaskan pelbagai bahasa yang menyokong Go out of the box. Ia bersambung dengan GitHub, Bitbucket, dan repositori Google Cloud Platform, dan ia mempunyai ruang kerja yang boleh anda kongsi dan klon. Sebagai tambahan kepada editor kod dengan set fitur yang luas dan sistem fail dalam talian, ia mempunyai MySQL dan pangkalan data lain, terminal dan tetingkap segera, dan pengikatan papan kekunci yang dapat disesuaikan, dengan mod Teks yang disediakan Vim, Emacs, dan Sublime Text. Penyelesaian automatik dan penyahpepijatan untuk Go masih eksperimen, tetapi sorotan sintaksis, panel jalankan, paparan garis besar, dan penyatuan semua disokong sepenuhnya.

CodeEnv juga merupakan IDE berasaskan awan berbilang bahasa. Terdapat gambar lingkungan dasar Go untuk persekitaran peribadi, serta gambar persekitaran Go umum. Setiap persekitaran terdiri daripada sistem fail, penyunting kod sederhana dengan sorotan sintaks, dan tetingkap terminal. Pada masa ini terdapat lapan pilihan gambar asas dan enam pilihan gambar latar belakang.

Wide adalah IDE berasaskan web untuk pasukan yang ditulis dalam dan untuk bahasa pengaturcaraan Go. Ia menggunakan editor pengaturcaraan bertema CodeMirror dengan penyorotan sintaks berbantuan gocode, pelengkapan automatik, pemformatan kod, dan kolaborasi masa nyata. Wide mengutip LiteIDE sebagai pergantungan.

Gogland

JetBrains Gogland, saat ini dalam keadaan pratinjau awal, nampaknya Go IDE terlengkap yang tersedia, walaupun belum diluncurkan secara komersial. Debugger bersepadu, analisis liputan, dan ujian berjalan jauh untuk membezakannya dengan editor editor yang mempunyai beberapa integrasi alat.

Dalam tangkapan skrin di bawah, di mana saya menggunakan Gogland untuk memeriksa beberapa kod sumber projek bahasa Go, anda dapat melihat beberapa ciri penyuntingan Gogland, termasuk pokok projek, petunjuk pemeriksaan (bola lampu), penyorotan titik keluar, dan penyemakan cepat menggunakan bar navigasi di sebelah kanan (kotak kod dengan nombor baris tidak teratur). Untuk lebih banyak tangkapan skrin yang menunjukkan apa yang dapat dilakukan oleh Gogland, saya akan merujuk anda ke panduan ciri JetBrains.

Gogland menggunakan ekosistem plugin JetBrains yang sama dengan IntelliJ IDEA dan WebStorm, dan ia sudah merangkumi banyak ciri relevan yang diwarisi dari produk tersebut. Contohnya, anda boleh menggunakan Gogland untuk bekerja dengan HTML dan bahasa dan kerangka depan, sama seperti WebStorm. Gogland juga membolehkan anda bekerja dengan pangkalan data SQL, seperti IntelliJ IDEA dan DataGrip. Sekiranya anda perlu menggabungkan sokongan Node.js dengan pengekodan Go anda atau memerlukan sokongan Subversi selain integrasi Git, ini adalah masalah cepat untuk menambahkan pemalam.

Kod Visual Studio

Visual Studio Code dengan plugin vscode-go adalah editor Go yang bagus yang berfungsi dengan baik dan mempunyai integrasi Git yang baik. Visual Studio Code memang memerlukan kemas kini dan dimulakan semula sekurang-kurangnya setiap bulan, tetapi jarang terasa lambat semasa penyuntingan. Dalam tangkapan skrin di bawah ini kita melihat penjelajah di sebelah kiri, pemasangan alat Go di kanan bawah, dan penyuntingan kod di kanan atas.

Alat Go mengaktifkan plugin vscode-go, yang menyediakan banyak ciri penyuntingan dan pemeriksaan kod. Ini termasuk senarai penyelesaian (menggunakan gocode), bantuan tanda tangan (menggunakan gogetdocatau godeftambah godoc), potongan, maklumat cepat (menggunakan gogetdocatau godeftambah godoc), pergi ke definisi (menggunakan gogetdocatau godeftambah godoc), mencari rujukan (menggunakan guru), garis besar fail (menggunakan go-outline), carian simbol ruang kerja (menggunakan go-symbols), ganti nama (menggunakan gorename), build-on-save (menggunakan go builddan go test), lint-on-save (menggunakan golintatau gometalinter), format (menggunakan goreturnsatau goimportsatau gofmt), menghasilkan kerangka ujian unit (menggunakan gotests), tambah import (menggunakan gopkgs), dan sebahagian penyahpepijatan yang dilaksanakan (menggunakandelve).

Itu banyak fungsi berguna, walaupun tidak sebanyak yang anda dapat di Gogland IDE. Screencast dalam fail readme vscode-go berfungsi dengan baik untuk menunjukkan bagaimana kebanyakan ciri berfungsi.

Awan 9

Dari tiga IDE awan yang menyokong Go, yang paling menarik pada masa ini adalah Cloud9. Ia mempunyai editor pengaturcaraan yang paling berfungsi dari ketiga dan menyokong sekitar 17 bahasa selain Go. Walaupun penyelesaian kod bahasa Go ditandai sebagai eksperimen, saya dapati ia berfungsi dengan baik dan tidak menyebabkan kelewatan menaip.

Editor Cloud9's Ace pada masa ini menyokong penyorotan sintaks untuk lebih daripada 100 bahasa pengaturcaraan. Nombor 17 di atas adalah untuk bahasa yang juga mempunyai sokongan lain, seperti menjalankan kod, mengintip, menguraikan, menyelesaikan kod, dan menyahpepijat.

Ruang kerja Cloud9 kini menjalankan Ubuntu 14.04 dan Go 1.7.3. Anda boleh mengemas kini pemasangan Go anda dari shell Bash (lihat bahagian bawah tangkapan layar), serta menjalankan Go dan program lain dari Bash.

Seperti yang telah kita lihat, anda mempunyai banyak kemungkinan pilihan lingkungan pengaturcaraan untuk pengembangan Go. Walaupun saya memilih Gogland sebagai Go IDE dengan ciri lengkap terbaik, Visual Studio Code dengan vscode-go sebagai editor Go terbaik, dan Cloud9 sebagai Go cloud IDE terbaik untuk saya , terdapat lebih dari 30 kemungkinan lain. Memandangkan seberapa peribadi pilihan persekitaran pengembangan perisian, anda harus mencuba beberapa dan melihat mana yang paling sesuai dengan keperluan dan pilihan anda.