はじめに

Goのインストール

Goのダウンロードとインストールに関する手順。

チュートリアル: はじめに

はじめにのための簡単なHello, Worldチュートリアル。Goのコード、ツール、パッケージ、モジュールについて少し学びます。

チュートリアル: モジュールの作成

関数、エラーハンドリング、配列、マップ、ユニットテスト、コンパイルを紹介する短いトピックのチュートリアル。

チュートリアル: マルチモジュールワークスペースの使い方

Goにおけるマルチモジュールワークスペースの作成と使用の基本を紹介します。マルチモジュールワークスペースは、複数のモジュールにまたがる変更を行うのに便利です。

チュートリアル: GoとGinを使ったRESTful APIの開発

GoとGin Webフレームワークを使用してRESTfulウェブサービスAPIを書く基本を紹介します。

チュートリアル: ジェネリクスの使い方

ジェネリクスを使用すると、呼び出しコードによって提供される任意の型のセットで動作するように書かれた関数や型を宣言して使用できます。

チュートリアル: ファジングの使い方

ファジングは、テストに対してエッジケースやセキュリティ問題をキャッチできる入力を生成することができます。

ウェブアプリケーションの作成

シンプルなウェブアプリケーションを構築します。

Goコードの書き方

このドキュメントでは、モジュール内でシンプルなGoパッケージのセットを開発する方法を説明し、パッケージをビルドおよびテストするためにgoコマンドを使用する方法を示します。

Goのツアー

Goのインタラクティブな紹介を4つのセクションに分けて行います。最初のセクションでは基本的な構文とデータ構造をカバーし、2番目のセクションではメソッドとインターフェースについて、3番目はジェネリクスについて、4番目はGoの並行性プリミティブを紹介します。各セクションの最後には、学んだことを練習するためのいくつかの演習があります。オンラインでツアーを受けるか、次のコマンドでローカルにインストールできます:

  1. $ go install golang.org/x/website/tour@latest

これにより、tourバイナリがGOPATHbinディレクトリに配置されます。

Goの使用と理解

効果的なGo

明確で慣用的なGoコードを書くためのヒントを提供する文書。新しいGoプログラマーには必読です。ツアーと言語仕様を補完し、どちらも最初に読むべきです。

よくある質問 (FAQ)

Goに関する一般的な質問への回答。

エディタプラグインとIDE

Goサポートの一般的に使用されるエディタプラグインとIDEを要約した文書。

診断

Goプログラムの問題を診断するためのツールと方法論を要約します。

Goガベージコレクタのガイド

Goがメモリを管理する方法と、それを最大限に活用する方法を説明する文書。

依存関係の管理

コードが外部パッケージを使用する場合、それらのパッケージ(モジュールとして配布される)は依存関係になります。

ファジング

Goファジングの主要なドキュメントページ。

Goアプリケーションのカバレッジ

Goアプリケーションのカバレッジテストの主要なドキュメントページ。

プロファイルガイド最適化

Goアプリケーションのプロファイルガイド最適化(PGO)の主要なドキュメントページ。

参考文献

パッケージドキュメント

Go標準ライブラリのドキュメント。

コマンドドキュメント

Goツールのドキュメント。

言語仕様

公式のGo言語仕様。

Goモジュールリファレンス

Goの依存関係管理システムに関する詳細なリファレンスマニュアル。

go.modファイルリファレンス

go.modファイルに含まれるディレクティブのリファレンス。

Goメモリモデル

あるゴルーチンで変数を読み取る条件を指定する文書で、別のゴルーチンで同じ変数に対する書き込みによって生成された値を観察できることが保証されます。

貢献ガイド

Goへの貢献。

リリース履歴

Goリリース間の変更の概要。

データベースへのアクセス

チュートリアル: リレーショナルデータベースへのアクセス

Goと標準ライブラリのdatabase/sqlパッケージを使用してリレーショナルデータベースにアクセスする基本を紹介します。

リレーショナルデータベースへのアクセス

Goのデータアクセス機能の概要。

データベースハンドルのオープン

Goデータベースハンドルを使用してデータベース操作を実行します。データベース接続プロパティでハンドルを開くと、そのハンドルはあなたの代わりに管理する接続プールを表します。

データを返さないSQL文の実行

データベースを変更する可能性のあるSQL操作(SQL INSERTUPDATEDELETEを含む)には、Execメソッドを使用します。

データのクエリ

SELECT文がクエリからデータを返す場合、QueryまたはQueryRowメソッドを使用します。

プリペアドステートメントの使用

繰り返し使用するためにプリペアドステートメントを定義すると、データベース操作を行うたびにステートメントを再作成するオーバーヘッドを回避することで、コードの実行速度が少し向上する可能性があります。

トランザクションの実行

sql.Txは、CommitRollbackを含むトランザクション固有のセマンティクスを表すメソッドをエクスポートし、一般的なデータベース操作を実行するために使用するメソッドも提供します。

進行中のデータベース操作のキャンセル

context.Contextを使用すると、アプリケーションの関数呼び出しやサービスが早期に停止し、処理がもはや必要ない場合にエラーを返すことができます。

接続の管理

一部の高度なプログラムでは、接続プールのパラメータを調整したり、接続を明示的に操作したりする必要があるかもしれません。

SQLインジェクションリスクの回避

SQLパラメータ値をsqlパッケージ関数の引数として提供することで、SQLインジェクションリスクを回避できます。

モジュールの開発

モジュールの開発と公開

関連するパッケージをモジュールにまとめて、他の開発者が使用できるようにモジュールを公開できます。このトピックでは、モジュールの開発と公開の概要を説明します。

モジュールのリリースとバージョン管理ワークフロー

他の開発者が使用するためのモジュールを開発する際には、モジュールを使用する開発者に信頼性が高く一貫した体験を提供するためのワークフローに従うことができます。このトピックでは、そのワークフローの高レベルのステップを説明します。

モジュールソースの管理

他の人が使用できるように公開するためにモジュールを開発している場合、このトピックで説明されているリポジトリの慣習に従うことで、他の開発者がモジュールを使用しやすくすることができます。

Goモジュールの整理

典型的なGoプロジェクトのファイルとディレクトリを整理する正しい方法は何ですか?このトピックでは、モジュールの種類に応じた一般的なレイアウトについて説明します。

メジャーバージョンの更新の開発

メジャーバージョンの更新は、破壊的な変更を含むため、モジュールのユーザーにとって非常に混乱を招く可能性があります。このトピックで詳しく学びましょう。

モジュールの公開

他の開発者が使用できるようにモジュールを公開する場合、Goツールに表示されるようにします。モジュールを公開すると、そのパッケージをインポートする開発者は、go getのようなコマンドを実行することでモジュールへの依存関係を解決できるようになります。

モジュールバージョン番号

モジュールの開発者は、モジュールのバージョン番号の各部分を使用して、バージョンの安定性と後方互換性を示します。新しいリリースごとに、モジュールのリリースバージョン番号は、前回のリリース以降のモジュールの変更の性質を具体的に反映します。

トーク

Goのビデオツアー

Goを速く、楽しく、生産的にする3つの要素: インターフェース、リフレクション、並行性。これらを示すためにおもちゃのウェブクローラーを構築します。

優雅に成長するコード

Goの主要な設計目標の1つは、コードの適応性です。シンプルな設計を取り入れ、それをクリーンで自然な方法で構築することが容易であるべきです。このトークでは、Andrew Gerrandが、受信したTCP接続のペアをマッチングするシンプルな「チャットルーレット」サーバーを説明し、Goの並行性メカニズム、インターフェース、標準ライブラリを使用してウェブインターフェースやその他の機能を追加します。プログラムの機能は劇的に変化しますが、Goの柔軟性は成長するにつれて元の設計を保持します。

Goの並行性パターン

並行性は、高性能ネットワークサービスを設計するための鍵です。Goの並行性プリミティブ(ゴルーチンとチャネル)は、並行実行を表現するためのシンプルで効率的な手段を提供します。このトークでは、複雑な並行性の問題をシンプルなGoコードで優雅に解決する方法を見ていきます。

高度なGoの並行性パターン

このトークは、Goの並行性パターンのトークを拡張し、Goの並行性プリミティブについてさらに深く掘り下げます。

その他

Go Talksサイトウィキページで、さらに多くのGoトークを確認してください。

コードウォーク

Goプログラムのガイド付きツアー。

言語

パッケージ

モジュール

ツール

ウィキ

Goウィキは、Goコミュニティによって維持され、Go言語、ツール、およびその他のリソースに関する記事を含んでいます。

ウィキ学ぶページで、さらに多くのGo学習リソースを確認してください。

非英語のドキュメント

ウィキ非英語ページで、ローカライズされたドキュメントを確認してください。

新しいウィンドウで開きます。