Go Wiki: LearnServerProgramming

このページでは、Go でのサーバープログラミング(Web サービスとモバイルバックエンドの両方)について学習するためのリソースにリンクしています。項目はトピック別にセクションに整理されています。

はじめに

ミドルウェア

頻繁に議論されるトピックの 1 つに「ミドルウェア」があります。この用語に馴染みがない場合は、これらの記事をいくつか読むことから始めることをお勧めします。

ツールキットとフレームワーク

サードパーティの Web フレームワークやツールキットを採用する前に、Go の標準ライブラリが洗練された最新の Web アプリケーションを構築するために必要なすべてのツールを提供していることを覚えておいてください。複雑さや魔法よりもシンプルさと構成可能性を好む Go の流儀に従い、標準ライブラリでどこまでできるかを確認することをお勧めします。

もう少しインフラストラクチャが必要だと判断した場合は、利用可能なツールキットとライブラリのいくつかから始めてください。

ツールキット & ライブラリ & マイクロフレームワーク

フレームワーク

  • BeeGo Framework
  • Frodo - Laravel(php)、Slim(php)、ExpressJS(node.js) にインスパイアされた Go ミニ Web フレームワーク
  • GinGonic
  • Macaron - Go の生産的でモジュール化された Web フレームワーク。
  • Revel Web Framework
  • Ringo - Rails、Gin にインスパイアされた軽量 MVC Web フレームワーク。
  • Utron - Web アプリケーション用の軽量 MVC フレームワーク。
  • Iris - Web アプリケーション用の高速 MVC フレームワーク。

通信

  • パッケージ net/http は HTTP クライアントおよびサーバーの実装を提供します。
  • パッケージ encoding/json は RFC 4627 で定義されている JSON オブジェクトのエンコーディングとデコーディングを実装します。
  • パッケージ net/rpc はネットワークまたはその他の I/O 接続を介したオブジェクトのエクスポートされたメソッドへのアクセスを提供します。
  • パッケージ os/exec は外部コマンドを実行します。

プレゼンテーション

  • パッケージ text/template はテキスト出力を生成するためのデータ駆動型テンプレートを実装します。
  • パッケージ html/template はコードインジェクションに対して安全な HTML 出力を生成するためのデータ駆動型テンプレートを実装します。

プロファイリングとパフォーマンス

トレース、監視、ロギング、および構成

  • パッケージ expvar はサーバー内の操作カウンターなどのパブリック変数への標準化されたインターフェースを提供します。
  • パッケージ flag はコマンドラインフラグの解析を実装します。
  • パッケージ log はシンプルなロギングパッケージを実装します。
  • パッケージ glog は Google 社内の C++ INFO/ERROR/V セットアップに類似したロギングを実装します。

ストレージ

  • パッケージ os はオペレーティングシステム機能へのプラットフォーム独立のインターフェースを提供します。
  • パッケージ path/filepath はターゲットオペレーティングシステムで定義されたファイルパスと互換性のある方法でファイル名パスを操作するためのユーティリティルーチンを実装します。
  • パッケージ database/sql は SQL (または SQL ライクな) データベースを囲む汎用インターフェースを提供します。

プラットフォーム

Google Cloud Platform

Amazon Web Services

Microsoft Azure

  • Microsoft OpenTech のazure-sdk-for-go は、Microsoft Azure Services の利用と管理を容易にする Golang パッケージを提供します。
  • Azure のパッケージを検索する

Openstack / Rackspace

IBM BlueMix


このコンテンツはGo Wikiの一部です。