Go言語初体験!Hello WorldからWebサーバーまで作ってみた

Programming

こんにちは!今回、初めてGo言語(Golang)を使ってプログラミングをしてみました。Windows環境でVisual Studio Code(以下、VSCode)を使用し、簡単な「Hello World」プログラムからWebサーバーを動かすまでを試したので、その手順と感想を共有します。

Go言語の魅力とは?

Go言語はGoogleによって開発されたシンプルで高速なプログラミング言語です。特に以下の特徴に惹かれて始めてみました:

  • 高いパフォーマンス: コンパイル型で実行速度が速い。
  • シンプルな構文: 学びやすく、読みやすいコードを書くことができる。
  • 並行処理が簡単: goroutine という軽量スレッドで並行処理が簡単。

準備:Go言語のインストール

  1. 公式サイトからダウンロード
    Go言語は公式サイト(Go公式ダウンロードページ)からインストーラーをダウンロードできます。
  2. インストール
    ダウンロードしたインストーラーを実行し、指示に従ってインストールします。
  3. インストール確認
    コマンドプロンプトまたはPowerShellを開き、以下を実行:
go version

インストールされていれば、Goのバージョン情報が表示されます。

1. 初めての「Hello World!」

最初に書いたプログラムは、Go言語のお決まり「Hello World!」です。

コード

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

手順

  1. ファイルを作成
    VSCodeで hello_world.go というファイルを作成。
  2. 実行
    ターミナルで以下を実行
go run hello_world.go

# 下記が実行結果
Hello, World!

短いコードで簡単に結果が得られるのが嬉しいですね!


2. 簡単なWebサーバを作る

次に、Go言語で簡単なWebサーバを作成しました。ブラウザでアクセスすると、「Hello, Go Web Server!」と表示されるものです。

コード

package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "Hello, Go Web Server!")
}

func main() {
	http.HandleFunc("/", handler)
	fmt.Println("サーバーがポート8080で起動しています...")
	http.ListenAndServe(":8080", nil)
}

手順

  1. ファイルを作成
    VSCodeでgo_server.go というファイルを作成(web_server.go にすればよかったと後から後悔)。
  2. 実行
    ターミナルで以下を実行
go run go_server.go

結果として以下のようなメッセージが表示されます


3. ブラウザで確認

  • http://localhost:8080 にアクセスすると、「Hello, Go Web Server!」と表示されます。

コードの解説

  • http.HandleFunc("/", handler)
    “/”(ルートパス)にアクセスした際に handler 関数を実行します。
  • handler 関数
    クライアントに「Hello, Go Web Server!」と返します。
  • http.ListenAndServe(":8080", nil)
    ポート8080でHTTPサーバを起動します。
VSCode
VS Code 上の表示
http://localhost:8080「Hello, Go Web Server!」が表示されている。
ブラウザ上での表示結果

3.実際に試して感じたこと

  • 簡単に動く!
    Goの標準ライブラリがとても充実しており、追加のパッケージをインストールせずにWebサーバを作れたのは驚きでした。
  • シンプルで読みやすい
    初めてでもコードがすぐに理解できました。特に、エラー処理がわかりやすい点が初心者にはありがたいです。
  • VSCodeとの相性が良い
    VSCodeのGo拡張機能を使えば、コード補完やエラー表示があり快適に開発できました。

これからの展望

Go言語は軽量なWebサーバやツールを作成するのに向いていると感じました。次は以下のようなプロジェクトに挑戦してみたいです:

  • APIの開発
    REST APIを構築してデータを操作するアプリケーションを作りたい。
  • 並行処理
    Goならではの特徴である goroutine を活用してみたい。

まとめ

初めてのGo言語体験は、とても楽しいものでした。「Hello World」から始まり、簡単なWebサーバまで作ることができたことで、Go言語のシンプルさと強力さを実感しました。これからもっとGoを学び、いろいろなプロジェクトに挑戦していきたいと思います!

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です