Web開発にGoを利用する

概要

GoはWebアプリケーションに速度、セキュリティ、開発者向けツールを提供します

Goは、開発者がスケーラブルで安全なWebアプリケーションを迅速に開発できるように設計されています。Goには、使いやすく、安全で高性能なWebサーバーが付属しており、独自のWebテンプレートライブラリも含まれています。Goは、HTTP/2から、MySQLMongoDBElasticsearchのようなデータベース、そしてTLS 1.3を含む最新の暗号化標準まで、最新のすべての技術を優れたサポートで提供します。GoのWebアプリケーションは、Google App EngineおよびGoogle Cloud Run(容易なスケーリングのため)でネイティブに実行できます。また、Goの極めて高い移植性のおかげで、任意の環境、クラウド、またはオペレーティングシステムで実行できます。

主なメリット

驚異的な速さで複数のプラットフォームにデプロイ

企業にとって、Goは迅速なクロスプラットフォームデプロイメントを提供する点で好まれています。Goのゴルーチン、ネイティブコンパイル、URIベースのパッケージネームスペースにより、Goコードは単一の小さなバイナリにコンパイルされ、依存関係がゼロであるため、非常に高速です。

Goの標準搭載のパフォーマンスを活用し、簡単にスケーリング

Hexact Inc.の共同創設者兼CTOであるTigran Bayburtsyan氏は、彼の会社がGoに切り替えた5つの主な理由をまとめています。

  • 単一のバイナリにコンパイルされる — 「静的リンクを使用することで、GoはOSタイプとアーキテクチャに基づいて、すべての依存ライブラリとモジュールを1つの単一バイナリファイルに結合します。」

  • 静的型システム — 「型システムは大規模アプリケーションにとって非常に重要です。」

  • パフォーマンス — 「Goは、その並行処理モデルとCPUのスケーラビリティにより、より優れたパフォーマンスを発揮しました。内部リクエストを処理する必要があるときはいつでも、Pythonのスレッドよりもリソースが10倍安い個別のGoroutinesで処理しています。」

  • Webフレームワークは不要 — 「ほとんどの場合、サードパーティライブラリは本当に必要ありません。」

  • 優れたIDEサポートとデバッグ — 「すべてのプロジェクトをGoで書き直した後、以前よりも64%少ないコードになりました。」

顧客 簡単な紹介 Goを使用しているプロジェクト
Caddy Caddy Caddy Caddy 2は、Goで書かれた、自動HTTPS機能を備えた強力でエンタープライズ対応のオープンソースウェブサーバーです。Caddyは、C言語で書かれたサーバーよりも優れたメモリ安全性を実現します。Go標準ライブラリを搭載した強化されたTLSスタックは、すべてのインターネットトラフィックのかなりの部分を処理しています。
Cloudflare Cloudflare Cloudflare Cloudflareは、数百万のウェブサイト、API、SaaSサービス、およびインターネットに接続されたその他の資産を高速化し、保護します。「Goは、遅延の大きいHTTP接続の圧縮処理、DNSインフラ全体、SSL、負荷テストなど、CloudFlareのサービスの中心にあります。」
gov.uk gov.uk gov.uk Go言語のシンプルさと安全性は、英国政府のHTTPインフラストラクチャに最適であり、優れたnet/httpパッケージを使った簡単な実験によって、Web開発者は正しい道を進んでいると確信しました。「特に、Goの並行処理モデルは、パフォーマンスの高いI/Oバウンドアプリケーションを驚くほど簡単に構築できるようにします。」

始める

Web開発に関するGoの書籍

  • Echo

    高性能で拡張性のあるミニマリストなGoウェブフレームワーク

  • Flamingo

    クリーンでスケーラブルなアーキテクチャを持つ、Goベースの高速オープンソースフレームワーク

  • Gin

    MartiniライクなAPIを持つ、Goで書かれたウェブフレームワーク。

  • Gorilla

    Goプログラミング言語のためのウェブツールキット。

さらに表示
  • net/http

    標準ライブラリのHTTPパッケージ

  • julienschmidt/httprouter

    軽量で高性能なHTTPリクエストルーター

  • gorilla/mux

    🦍でGoウェブサーバーを構築するための強力なHTTPルーターおよびURLマッチャー

  • Chi

    Go HTTPサービスを構築するための軽量でイディオマティックな構成可能なルーター。

さらに表示
  • html/template

    標準ライブラリのHTMLテンプレートエンジン

  • flosch/pongo2

    Django構文のようなテンプレート言語

さらに表示
  • database/sql

    MySQL、Postgres、Oracle、MS SQL、BigQuery、およびほとんどのSQLデータベースのドライバをサポートする標準ライブラリインターフェース

  • mongo-driver/mongo

    Go用のMongoDBサポートドライバー

  • elastic/go-elasticsearch

    Go用のElasticsearchクライアント

  • GORM

    Go用ORMライブラリ

  • Bleve

    Go用の全文検索とインデックス作成

  • CockroachDB

    データベースの進化 — クラウド向けに設計され、回復力があり、一貫性のある分散SQLを大規模に提供

さらに表示
さらに表示
  • gopherjs

    GoからJavaScriptへのコンパイラで、開発者がGoでフロントエンドコードを書き、それがすべてのブラウザで実行できるようにします。

さらに表示

コース

プロジェクト

  • gopherjs、GoからJavaScriptへのコンパイラで、開発者がGoでフロントエンドコードを書き、それがすべてのブラウザで実行できるようにします。
  • Hugo、世界最速のウェブサイト構築フレームワーク
  • Mattermost、安全なチームコラボレーションを可能にする、柔軟なオープンソースメッセージングプラットフォーム
  • Caddy、Goで書かれた、自動HTTPS機能を備えた強力でエンタープライズ対応のオープンソースウェブサーバー