PROGスクールナビ

Go言語入門・中級ガイド|Webバックエンド・クラウド開発での活用

Go言語(Golang)はGoogleが開発したシンプルで高速なプログラミング言語です。マイクロサービス・クラウドインフラ・高パフォーマンスAPIで急速に普及しています。

Goの特徴

  • コンパイル速度が速い:大規模プロジェクトでも高速ビルド
  • 実行速度が速い:C/C++に近いパフォーマンス
  • Goroutine:軽量な並列処理で高い並行性
  • シンプルな文法:学習コストが低い
  • 静的型付け:コンパイル時にエラーを検出

基本文法

package main

import (
    "fmt"
    "strings"
)

func main() {
    // 変数宣言
    name := "太郎"          // 型推論
    var age int = 25        // 明示的な型
    
    fmt.Printf("名前: %s、年齢: %d\n", name, age)
    
    // 配列・スライス
    fruits := []string{"りんご", "みかん", "バナナ"}
    for i, fruit := range fruits {
        fmt.Printf("%d: %s\n", i, fruit)
    }
    
    // マップ
    scores := map[string]int{
        "数学": 85,
        "英語": 92,
    }
    fmt.Println(scores["数学"]) // 85
    
    // 文字列操作
    upper := strings.ToUpper(name)
    fmt.Println(upper) // 太郎(日本語は変わらない)
}

// 関数
func add(a, b int) int {
    return a + b
}

// 複数戻り値
func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("0で割ることはできません")
    }
    return a / b, nil
}

Goroutine(並列処理)

package main

import (
    "fmt"
    "sync"
    "time"
)

func worker(id int, wg *sync.WaitGroup) {
    defer wg.Done()
    fmt.Printf("Worker %d 開始\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Worker %d 完了\n", id)
}

func main() {
    var wg sync.WaitGroup
    
    for i := 1; i <= 5; i++ {
        wg.Add(1)
        go worker(i, &wg) // goroutineで並列実行
    }
    
    wg.Wait() // 全goroutineの完了を待つ
    fmt.Println("全ワーカー完了")
}

GinでWebAPI作成

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()
    
    // GETルート
    r.GET("/users", func(c *gin.Context) {
        users := []gin.H{
            {"id": 1, "name": "太郎"},
            {"id": 2, "name": "花子"},
        }
        c.JSON(http.StatusOK, users)
    })
    
    // パスパラメータ
    r.GET("/users/:id", func(c *gin.Context) {
        id := c.Param("id")
        c.JSON(http.StatusOK, gin.H{"id": id})
    })
    
    r.Run(":8080") // localhost:8080で起動
}

Goエンジニアの需要と年収

経験年数年収目安
Go経験1〜2年550〜700万円
Go中堅(3〜5年)700〜1,000万円
GoシニアエンジニアA1,000〜1,500万円

まとめ

Goは高パフォーマンス・シンプルな文法・Goroutineによる並列処理が強みの言語です。バックエンド・クラウドインフラ・マイクロサービスで需要が高く、習得するとキャリアの選択肢が大幅に広がります。

📚 プログラミング初心者におすすめの本

🛒 楽天で人気のプログラミング入門書