学習ロードマップ
あなたの目標に合わせて学習パスを選ぼう
🐹
Go基礎
プログラミングの基礎を学ぶ
変数、データ型、制御構文、関数、配列・スライス、構造体とメソッドなど、Goプログラミングの基礎をしっかりと身につけましょう。
学べること
- 変数とデータ型
- 制御構文
- 関数
- 配列・スライス
- 構造体とメソッド
- 文字列操作
コード例
// Goの基本
package main
import "fmt"
func main() {
name := "太郎"
age := 25
hobbies := []string{"読書", "ゲーム", "料理"}
fmt.Printf("%sさん(%d歳)\n", name, age)
for _, hobby := range hobbies {
fmt.Print(hobby + " ")
}
}🌐
Web開発
net/httpでWebアプリケーション開発
HTTPサーバー、REST API、ミドルウェア、JSON処理、テンプレート、データベース連携などWebアプリケーション開発を学びましょう。
学べること
- HTTPサーバー
- REST API
- ミドルウェア
- JSON処理
- テンプレート
- データベース
コード例
// Go HTTP サーバー
package main
import (
"encoding/json"
"net/http"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
http.HandleFunc("/api/users", func(w http.ResponseWriter, r *http.Request) {
users := []User{
{Name: "太郎", Age: 25},
{Name: "花子", Age: 30},
}
json.NewEncoder(w).Encode(users)
})
http.ListenAndServe(":8080", nil)
}🚀
並行処理
ゴルーチンとチャネルを使いこなす
ゴルーチン、チャネル、select文、並行パターン、コンテキスト、syncパッケージなど、Goの強力な並行処理を学びましょう。
学べること
- ゴルーチン
- チャネル
- select文
- 並行パターン
- コンテキスト
- sync
コード例
// ゴルーチンとチャネル
package main
import "fmt"
func producer(ch chan<- int) {
for i := 1; i <= 5; i++ {
ch <- i * i
}
close(ch)
}
func main() {
ch := make(chan int)
go producer(ch)
for val := range ch {
fmt.Printf("受信: %d\n", val)
}
}