Golangガイド。 A List of Top Golang Frameworks, IDEs & Tools

導入以来、Google の Go Programming Language (Golang) は主流のユーザーの間で人気が高まりつつあります。 2016 年 12 月の調査では、回答者 3,595 人のうち 89% が、仕事中または仕事外で Go でプログラミングしていると主張しています。

さらに、Goは専門性と嗜好性の点でプログラミング言語の中で最上位にランクされています。 今年2017年7月、GoはTiobeのProgramming Language of the Yearで10位にランクインし、昨年の55位から急上昇しました。

明らかに、Goはさまざまな分野の多くのプログラマーやソフトウェア開発アウトソーシングの専門家を引きつけています。 そして、それは Go の使いやすさに起因していると言ってよいでしょう。

コンパイルされたオープンソースのプログラミング言語である Go は、開発者がシンプルで信頼できる効率的なソフトウェアを簡単に構築できるようにします。 これは、C や C++ などの保守的な言語の革新と進化の産物です。

Go により、コードのタイピングの量が減り、そのパフォーマンスを犠牲にすることなく堅牢な API を書くことが容易になりました。 スケーラビリティと並行性のために設計された Go は、最適化を可能にします。 コンパイラーは、実行前にすべてのコード検査作業を行うことができます。

Golang 用のトップ フレームワーク、IDE、およびツールのリストを作成しましたので、素早く参照することが可能です。 ブラウザにブックマークして、Go で作業するときはいつでも戻ってこられるようにしましょう!

Frameworks for Golang

ウェブ フレームワークは、開発者ができるだけ簡単かつ迅速にアプリケーションを構築できるよう支援します。 Go はまだ比較的新しいので、十分なドキュメントのあるフレームワークを使用することが重要です。

Go 言語を使用したプロジェクトの構築に役立つ 9 つのフレームワークを紹介します。

Revel

Go の高生産性フレームワークとして、Revel にはホット コード リロード ツールがあり、ファイルの変更ごとにプロジェクトを再構築することが可能です。 また、包括的で高性能なさまざまな機能が含まれているので、フレームワークに統合するための外部ライブラリを探す必要はありません。

Beego

Beego は、独自のロギングライブラリや ORM、Web フレームワークが含まれる本格的な MVC フレームワークです。 サードパーティのライブラリを見つけてインストールする必要はありません。 コードの変更を監視し、変更が検出されたときにタスクを実行するBeeツールというビルトインツールを備えています。

Beego は、特にロギングフレームワークやアプリケーション構造を把握するプロジェクトの初期段階において、多くの時間を節約してくれるでしょう。 Golang でモジュール化された Web アプリケーションとサービスを書くために開発されました。

迅速かつ簡単に使用できる非侵入型のデザインを特徴とし、幅広いハンドラとミドルウェアを含んでいます。 基本的なルーティング、例外処理、および HTML5 モードの AngularJS アプリのデフォルトのドキュメント提供を実行できます。

Martini の最大の特徴は、リフレクションの使用で、開発者は動的にデータをハンドラ関数に挿入し、新しいサービスを追加することができます。 また、Martini は http.HandlerFunc インターフェースと完全な互換性を持っています。 しかし、欠点は、Martini フレームワークはもはや保守されていないことです。

Gin Gonic

Gin Gonic は martini に似た API を持つ Web フレームワークですが、はるかに優れたパフォーマンスを持っています。 もしあなたが以前にマルティニを使ったことがあるなら、Gin Gonicになじみがあることでしょう。 そうでなければ、Ginを学ぶのに10分しかかからないでしょう。 とても簡単です!

Gin Gonic は、最も必要なライブラリと機能のみを含む最小限のフレームワークです。 そのため、高性能な REST API を開発するのに最適なフレームワークです。 さらに、Martini よりも 40 倍高速です。

ミドルウェア、ネストされたグループ、JSON 検証、およびレンダリングを追加しても、最適なパフォーマンスを維持することが可能です。 Gin Gonic は、Go 用の最速 HTTP ルーターである httprouter を使用しています。

Buffalo

新しい Web アプリケーションを Go で構築するには Buffalo を使うとすばやく、簡単に構築できます。 新しいプロジェクトを開始するとき、フロントエンドからバックエンドの開発まで、Buffalo はすでにすべてのセットアップを完了しています。

ホット リロード機能を備えており、dev コマンドが .go と .html ファイルを自動的に監視します。 そして、あなたのためにバイナリを再構築し、再起動します。 開発コマンドを実行するだけで、変更が反映されるのを目の前で見ることができます!

Buffalo は単なるフレームワークではなく、アプリケーションの構築に専念できる総合的な Web 開発エコシステムです。 net/http.ServeMux のように、Goji は最小限の HTTP リクエストマルチプレクサです。 Einhorn のサポートも含まれており、Goji で Web ソケットをサポートすることができます。

その他の機能としては、URL パターン、再構成可能なミドルウェア スタック、グレースフル シャットダウンなどがあります。 Goji は実稼働環境で使用でき、いくつかの組織で何十億ものリクエストに対応しています。

Tiger Tonic

Dropwizard に触発されて、Tiger Tonic は JSON Web サービス開発および高性能 REST API を構築する Go フレームワークとなりました。 5936>

Tiger Tonic の欠点は、大規模なバックエンドアプリケーションの構築に関しては不十分であることです。 これは、標準ライブラリから net/http パッケージにルーティングを追加します。

Gocraft は Go の mux およびミドルウェア パッケージで、静的にコードをタイプすることができるように、キャストとリフレクションの機能を備えています。 また、組み込みのミドルウェアでオプションの機能を追加したり、自分で書いたりすることもできます。

パフォーマンスは常に開発者の最大の関心事の 1 つなので、Gocraft は開発者にとって素晴らしい選択肢となります。 Gocraft フレームワークを使ってバックエンドの Web アプリケーションを書くのはとても簡単です。

Mango

Mango はその作成者の Paul Bellamy によって活発にメンテナンスされていませんが、多くの Go ユーザーがまだそれを使っています。 Mango の素晴らしいところは、そのモジュール性です。 あなたのプロジェクトに含めるために、さまざまなライブラリから選ぶことができます。

Mango は、HTTP 機能の再利用可能なモジュールをできるだけ早く、簡単に構築することができます。 ミドルウェアとアプリケーションのリストを単一の http サーバーオブジェクトにコンパイルし、コードを自己完結させます。

Integrated Development Environment (IDEs) for Golang

IDEs for Golang は Go 言語とともに人気を集めています。 多くの開発者はまだテキストエディタの使用を好みますが、多くの開発者は IDE の使用も好みます。

広大なコードベースを持つ大規模なプロジェクトに取り組んでいる場合、IDE はコードを整理し、簡単にナビゲートするのに役立つことがあります。 さらに、IDE はコードをテストし、それに応じて編集するのに役立ちます。

Golang と相性の良いトップ IDE を紹介します。

Gogland

ソフトウェア開発会社 JetBrains は信頼できる別の IDE、ただし今回は Golang 用のものをリリースしました。 Goglandは、Go開発者のために堅牢な人間工学的環境を提供する商用IDEです。 また、コーディング支援、デバッガ、統合ターミナルを備えている。

定評ある企業が Gogland を作成したため、Gogland には広範な IntelliJ プラグイン エコシステムがあり、さらにツールが必要な場合は追加で入手することができます。 IntelliSense によるスマートな補完、ブレークポイント、コールスタック、およびインタラクティブなコンソールを使用したデバッグ、組み込みの Git 統合、および階層型のフォルダーとファイルエクスプローラーを特徴としています。

もうひとつの人気の IDE である Visual Studio Code には、定期的に貢献する Go 開発者のサポートコミュニティがあります。 Visual Studio Code では、利用可能なプラグインの配列で機能を拡張できます。

LiteIDE

LiteIDE は最初の Golang 中心、オープンソースの IDE で、5 年以上前に作られました。 ユニークなルック アンド フィールの C++ Qt アプリケーションとして、LiteIDE はコード管理、設定可能なビルド コマンド、gdb と Delve デバッガ、自動補完、WordApi によるテーマ設定、MIME タイプベースのシステム、その他を提供します。 また、JSONとGolangのサポートも提供します。

Wide

WideはGolangプログラマのためのWebベースのIDEです。 共同開発のために設計されており、チームやWeb開発会社のために最適に動作します。 Wide の機能には、コードのハイライト、デバッグ、Git 統合などがあります。

Wide は中国の開発者によって作成および保守されているため、そのドキュメントとサポートのほとんどは中国語です。 go-plus を使用すると、構文やビルドのエラーについて、即座にリアルタイムのフィードバックを得られます。

go-plus パッケージは Atom のほぼすべての Golang サポートを提供します。 また、ツール、ビルドフロー、リンター、ベットおよびカバレッジツールにも使用できます。

Go-plus には、gocode によるオートコンプリート、gofmt、goreturns、または goimports によるコードフォーマットなど、さまざまなコードスニペットや機能も含まれています。

Eclipse で GoClipse

Eclipseは広く普及したIDEなので、数多くのプラグインが作成されました。 GoClipse は Golang 用の Eclipse プラグインで、設定可能な構文強調表示、自動インデントおよびブレース補完を備えた Go ソース コード編集を提供します。

また、GoClipse はプロジェクト ウィザードおよびビルダーとして機能し、構文エラーやビルド エラーが即座に報告されます。 GoClipse のその他の機能には、デバッグ機能とコード アシストが含まれます。

Sublime Text with GoSublime

Sublime Text は、貢献者と開発者の大きなコミュニティを持つもうひとつの洗練されたテキスト エディターです。 そのため、この IDE のためにさまざまなプラグインが作成されています。

GoSublime は Sublime Text 3 用の Golang プラグインで、Gocode からのコード補完、コード配線中の lint/syntax チェック、パッケージインポートの自動追加および削除などを提供します。 もしあなたが Golang プログラマーなら、Fatih Arslan が作成した vim-go プラグインで Vim を使用することができます。 Vim-go は、Golang 用のスムーズな Vim 統合に必要なすべてのバイナリを自動的にインストールします。

Vim-go は、Go を書き、開発するための強力なプラグイン・スイートです。 その機能には、高度なソースコード解析、インポートパスの追加と削除、複数のサードライナーのサポート、goto定義、迅速なファイル実行、その他多数が含まれます。

Vim-go は、必要に応じて有効または無効にできる個々の機能により、高度なカスタマイズが可能です。

Komodo

Komodo はフル装備の Go 言語 IDE で、Node.js や Python、Ruby、Perl などの他のプログラミング言語もサポートされています。 この Go IDE を使用すると、簡単にきれいなコードを書くことができます。 その機能には、高度なコード エディター、インテリジェントなコード補完、構文チェック、バージョン管理、ユニット テスト、およびコード ブラウジングとコード ヒンティングを可能にする Go Code Intelligence があります。

Komodo の素晴らしいところは、複数の開発者が同時にドキュメントを編集できるため、チーム コラボレーションに最適な機能であることです。 Komodo は、1 つのライセンスで Mac、Windows、または Linux にインストールできます。

IntelliJ IDEA with Go Language (golang.org) Support Plugin

IntelliJ IDEA (JetBrains と同じ会社) は IDE で、Go 言語サポート プラグインにより Golang で使用可能です。 Golang で IntelliJ IDEA を使用したい場合、Gogland とは対照的に限られた機能ではありますが、このプラグインをインストールする必要があります。

Tools for Golang

Golangツールは幅広いプロジェクトとWebアプリケーションに使用することが可能です。 開発者は、これらの役立つツールを使って、できるだけ早く、簡単にコードを書き、アプリケーションを構築できます。

以下は、参考のためのトップ Golang ツールのリストです。

Apicompat

Apicompat は新しい Go 言語ツールで、開発者が下位、非互換の変更およびエクスポートした宣言を検出できるようにしています。

Apicompat を使用すると、誤検出を回避することができます。 しかし、すべての後方互換性のない変更を Apicompat で検出できるわけではありません。 引数パラメーターのスワッピングやその他の変更は、ライブラリ作成者によって考慮される必要があります。

Checkstyle

Java Checkstyle に触発されて、Golang 用 Checkstyle はコーディングスタイルの提案を出力します。 また、開発者はファイルの行/関数と行/パラメータ番号をチェックすることができます。

Depth

Depth は、Web 開発者が Go ソースコードの依存関係を取得し視覚化できる、別の便利な Golang ツールです。 これは、スタンドアロンのコマンドライン アプリケーションとして、または独自のプロジェクト内の特定のパッケージとして使用できます。 解決する前にツリーに適切なフラグを設定するだけで、カスタマイズを追加できます。

Go-Swagger

このツールキットは、幅広い特徴と機能を備えています。 Go-Swagger は Swagger 2.0 の実装であり、swagger 仕様をシリアライズおよびデシリアライズすることができます。 これは、RESTful API の最小限の、しかし強力な表現です。

Go-Swagger を使用すると、swagger 仕様ドキュメント、jsonschema に対する検証、およびその他の追加ルールが可能になります。 その他の機能には、コード生成、swagger spec に基づく API 生成、コードに基づく spec ドキュメント生成、拡張文字列フォーマットなどがあります。

Go Meta Linter

同時に Go lint ツールとその出力を正規化する必要があるなら、まさに Go Meta Linter で実現することができます。 Go Meta Linter はテキストエディタ、または Sublime Linter プラグイン、Atom go-plus パッケージ、Emacs Flycheck チェッカー、Vim/Neovim、Go for Visual Studio Code などの IDE 統合と一緒に使用するよう意図されています。 また、様々なリンターやJSONなどの設定ファイルにも対応しています。

Go-callvis

Go-callvis は、Go プログラムのコールグラフを Graphviz のドットフォーマットで視覚化できる Web 開発ツールです。 このツールは、複雑なコードベースを持つ大規模なプロジェクトを構築する際に特に役立ちます。 また、他の開発者のコード構造を理解したり、他の人のプロジェクトを再構築したりする場合にも便利です。

Go-callvis を使用すると、開発者はプログラム内の特定のパッケージに焦点を当てたり、パッケージに従って関数をグループ化したり、タイプに従ってメソッドをグループ化したり、パッケージをカスタム パス プレフィックスに制限したり、それを含むパッケージを無視したりすることができます。

Gonative

Gonative はシンプルな Golang ツールであり、ネイティブ リブで Go ツールチェインをビルドし、標準ライブラリ パッケージの Cgo 対応バージョンを利用しながらクロスコンパイルできます。

Gonative は各プラットフォーム用のバイナリ配布物をダウンロードし、それらのライブラリを適切な場所にコピーします。 同時に、Gonative は不必要なリビルドを避けるために正しい mod 時間を設定します。

残念ながら、Gonative は Windows では未検証のままです。 さらに、Linux/arm のサポートも提供されていません。

Grapes

Grapes は ssh で簡単にコマンドを配布するために設計された、軽量の Golang ツールです。 Yaron Sumel によって書かれ、活発にメンテナンスされています。

Grapes はまもなく完全なホスト鍵の検証をサポートする予定なので、開発者はこれに注目すべきです。

Gosimple

この Golang リンターの素晴らしい点は、Go ソースコードを単純化することに焦点を当てているということです。 Gosimple は常に最新の Go バージョンをターゲットにしているため、Go バージョン 1.6 以降が必要です。

新しい Go リリースがあると、gosimple は複雑な構造を避けるために最も簡単で単純な方法を提案します。

Go Vendor

Go Vendor は標準 Vendor フォルダで動作する Golang ツールです。 これは開発者がgovendor add/updateで$GOPATHから既存の依存関係をコピーすることを可能にします。 また、govendor fetch で新しい依存関係を直接取得したり、既存の依存関係を更新したり、govendor migrate でレガシーシステムを移動したりできます。

Wrapping It Up

もし JS/Node のバックグラウンドから来たなら、いくつかの新しいプログラミング概念を学ぶ必要があります: コルーチン、チャネル、コンパイルを伴う厳密な型付け、インタフェース、構造体、ポインタ、および他のいくつかの相違。 しかし、一旦グルーブに入れば、Golangがより簡単で速く使えることがわかるでしょう。

コメントを残す

メールアドレスが公開されることはありません。