Go言語で超簡単なアプリケーションを開発してみた

公開日: 2023/8/4

こんにちは、今回はGo言語を使用したアプリケーションの作成を行っていきます。

Go言語はGoogleが開発したプログラミング言語で、C言語のようなシンプルな構文とJavaのような並行処理のサポートが特徴です。

Go言語を使用することで、高速で安全なアプリケーションを作成することができます。それでは、実際にアプリケーションを作成する手順を見ていきましょう。

1. Go言語のインストール


まずは、Go言語をインストールする必要があります。

Go言語の公式サイトから、自分の環境に合ったインストーラーをダウンロードし、インストールしてください。


インストールが完了したら、コマンドラインから以下のコマンドを実行し、バージョンを確認してください。

go version

バージョンが表示されたら、Go言語のインストールは完了です。

2. アプリケーションの作成


まずは、アプリケーションのファイルを作成します。

以下のような内容で、main.goというファイルを作成してください。

package main

import "fmt"

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

このプログラムは、画面に"Hello, World!"という文字列を表示するだけの簡単なプログラムです。

次に、以下のコマンドを実行し、プログラムを実行してください。

go run main.go

すると、画面に"Hello, World!"という文字列が表示されるはずです。

3. アプリケーションの機能追加


次に、アプリケーションに機能を追加してみましょう。

例えば、Webアプリケーションを作成する場合は、HTTPサーバーを起動する必要があります。


以下のような内容で、HTTPサーバーを起動するプログラムを作成してみましょう。

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}

このプログラムは、8080ポートでHTTPサーバーを起動し、"/"というURLにアクセスされた場合に"Hello, World!"という文字列を表示します。

以下のコマンドを実行し、HTTPサーバーを起動してみましょう。

go run main.go

すると、コマンドライン上でHTTPサーバーが起動し、ブラウザから"http://localhost:8080/"にアクセスすると、"Hello, World!"という文字列が表示されます。

4. データベースの操作


次に、データベースを使用してデータを操作する方法を紹介します。

ここでは、SQLiteを使用してデータを操作するプログラムを作成してみましょう。


以下のような内容で、データベースに接続し、データを挿入するプログラムを作成してください。

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "./test.db")
    if err != nil {
        panic(err)
    }
    defer db.Close()

    _, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)")
    if err != nil {
        panic(err)
    }

    stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)")
    if err != nil {
        panic(err)
    }
    defer stmt.Close()

    _, err = stmt.Exec("John")
    if err != nil {
        panic(err)
    }

    rows, err := db.Query("SELECT id, name FROM users")
    if err != nil {
        panic(err)
    }
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        err = rows.Scan(&id, &name)
        if err != nil {
            panic(err)
        }
        fmt.Println(id, name)
  

5. アプリケーションのパッケージ化


最後に、作成したアプリケーションをパッケージ化して、実行ファイルとして配布する方法を紹介します。

以下のような内容で、main.goと同じディレクトリにgo.modというファイルを作成してください。

module example.com/myapp

go 1.17

require (
    github.com/mattn/go-sqlite3 v1.14.8
)

このファイルは、アプリケーションのモジュール情報を記述するためのファイルです。

次に、以下のコマンドを実行し、アプリケーションをビルドしてみましょう。

go build

すると、main.goと同じディレクトリに、myappという名前の実行ファイルが生成されます。

このファイルを別のコンピュータにコピーして実行することができます。


また、以下のようなコマンドを実行することで、実行ファイルをクロスコンパイルすることも可能です。

GOOS=linux GOARCH=amd64 go build

このコマンドは、Linux上で動作するアプリケーションをビルドするためのものです。

GOOSには、ビルドするOSの種類、GOARCHには、ビルドするCPUの種類を指定します。

クロスコンパイルすることで、複数のOSやCPUで動作する実行ファイルを生成することができます。

6. まとめ


今回は、Go言語を使用したアプリケーション作成のハンズオンを紹介しました。

Go言語は、シンプルで高速な言語であり、Webアプリケーションやシステム開発など、さまざまな用途に利用することができます。


また、豊富な標準ライブラリやサードパーティライブラリが存在し、開発効率を向上させることができます。

今後も、Go言語を使った開発に挑戦してみてください。