0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Golang 基礎 - 環境設定からプロジェクト管理まで

Posted at

Golangのインストールと環境設定

Golang(通称Go)は、効率的なコンパイル言語で、並行処理やネットワークサービスの開発に適しています。まず、Golangの公式サイトから対応するOSに合わせてインストーラをダウンロードし、インストールします。インストール後は、コマンドラインでgo versionを実行して、インストールが正しく完了したか確認しましょう。

Macユーザーの場合、Goのバイナリへのパスをシェルの設定ファイルに追加する必要があります:

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bash_profile
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.zshrc

プロジェクトの初期設定

プロジェクトディレクトリを作成し、そこでGoのモジュールを初期化します:

mkdir go-test
cd go-test
go mod init go-test

モジュールとは何か?

Goのモジュールは、一連のパッケージを含むプロジェクトの単位です。go mod init [name]コマンドを実行することで、そのプロジェクトのrootとなり、go.modファイルが生成されます。このファイルには、プロジェクト名と使用しているGoのバージョンが記述されます。また、外部パッケージの依存関係も管理されます。

Visual Studio CodeでのGo開発

Visual Studio Code(VSCode)でGo言語を効率良く扱うには、以下の設定をsettings.jsonに追加します:

"[go]": {
   "editor.defaultFormatter": "golang.go",
   "editor.formatOnSave": true
}

これにより、ファイルを保存する度に自動的にコードが整形されます。

静的解析ツール

staticcheckはGoのコードに対する静的解析ツールで、コードの品質やパフォーマンス問題を指摘してくれます。詳細なルールはstaticcheckの公式ドキュメントを参照してください。

シンプルなプログラムの作成

main.goファイルを作成し、基本的なプログラムを記述してみましょう:

package main

import "fmt"

func main() {
    fmt.Println("Hello world")
}

このプログラムはgo run main.goで実行可能です。また、バイナリファイルとしてビルドする場合はgo build -o app main.goを使用します。

外部パッケージの利用

外部のパッケージを利用する例として、.envファイルから環境変数を読み込むgodotenvパッケージを使ってみましょう:

package main

import (
    "fmt"
    "os"
    "github.com/joho/godotenv"
)

func main() {
    godotenv.Load()
    fmt.Println(os.Getenv("GO_ENV"))
}

もしパッケージが見つからない場合(エディタに赤線が表示されるなど)、go mod tidyを実行して依存関係を解決し、必要なパッケージをインストールします。このコマンドはgo.mod

go.sumを更新します。go.sumファイルは、ダウンロードされた依存関係のチェックサムを保持し、データの改竄を防ぎます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?