logo

Goを学ぶ前に環境を整えよう!

2024-12-27
3 months ago

開発環境

  • go 1.23.3 darwin/arm64

前提

マシーンはMac、エディタはVSCodeを利用しているユーザーが対象になります。

本題

お仕事ではフロントエンド(Nextjs)を担当することが多く、もっぱらTypeScriptを書いています。

TypeScriptを活かすことを考えると自分の中でのバックエンドの選択肢は、ExpressNestjs、最近だとHonoなんかが有力かなと考えています。

ただ、他の言語も触ってみたい気持ちもあり、TypeScript以外で考えると、「マイクロサービス」「クリーンアーキテクチャ」「並行処理」あたりの文脈でよく出てくるGoに興味を持ちました。

今回はGoの簡単な紹介とコードを書き始める前のセットアップ例をご紹介します。

なぜGoが選ばれるのか

  • 並列処理が簡単に扱える
  • シンプルな言語仕様
  • パフォーマンスの良さ
  • スケーラブルなアプリケーション開発が可能

ざっくりこの辺りが特徴と語られることが多いです。

また、Googleはもちろん、UberやNetflix、メルカリなど大規模なアプリケーションでも採用されている点も魅力的です。

Rustではなく、Go?

Rustもここ最近ではよく聞きます。求人数も増えているので、注目度の高さが伺えます。

ただ、学習コストや現時点(2024/12)でのエコシステムの充実度、コードのシンプルさからしても、Goに軍配が上がると、個人的には考えています。

上記を踏まえると、個人的な見解ですが、Rustは個人開発のような小規模開発にはあまり向かないという点で、Goを優先して学習しようと思いました。

asdfを利用してGoをインストールする手順

前置きが長くなりましたが、ここから具体的な手順に入ります。

※ asdfは、多くのプログラミング言語やツールのバージョン管理を一元的に行えるバージョン管理ツールです。例えば、Python、Node.js、Ruby、Goなど、複数の言語を使うプロジェクトで、それぞれ異なるバージョンを簡単に切り替えたり管理することができます。

① asdfのインストール

$ brew install asdf

② 必要なプラグインの設定

$ asdf plugin add golang

③ 最新版のGoをインストール

$ asdf install golang latest

④ asdfのグローバル設定

$ asdf global golang latest

⑤ version確認

go version
> go version 1.23.23 darwin/arm64

version確認に関してはそれぞれ違う値になると思いますので、適宜読み替えてください。

VSCodeでGo公式プラグインをインストールする手順

① VSCodeの拡張機能アイコンをクリック

Goと検索し、Go公式の拡張機能をインストール(https://marketplace.visualstudio.com/items?itemName=golang.go

③ 関連するプラグインをまとめてインストール

 コマンドパレット(Ctrl+Shift+P)を開いてGO: Install/Update toolsで検索します。

 選択肢として出てくる全ての項目をチェックしてインストール。

プラグインを入れることで得られるメリット

以下のメリットがあるので、開発効率がめちゃくちゃ上がります。

  • コード補完   → 標準ライブラリやインストール済みのパッケージの補完が可能。
  • Lint       → goplsを使ったリアルタイムのコード品質チェック。
  • デバッグ    → ビルトインのデバッグツールで効率的な問題解決。
  • フォーマッター → 自動でコードを整形してくれる(gofmt連携)。
  • テスト実行   → 内部でユニットテストを手軽に実行可能。

おまけ:コードの自動フォーマットが効かない場合

自分は上記の設定だけではコード保存時の自動フォーマットが効きませんでした。

この場合、コマンドパレット(Ctrl+Shift+P)を開いてsettingで検索し、ユーザー設定を開きます。

以下のようにgoの設定を加えると自動でフォーマットするようになりました。

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

さいごに

新しく言語を学ぶときは色々と勝手が分からなくて、初めは苦労しますね。。

そんな時、コードフォーマット系や補完が常に効いている状態でコードを書けると、一般的に読みやすいコードを書く癖が自然とつきやすいと思います。

まずは環境を整えるところから始めるのをお勧めします。

参照