1 of 8

Go はじめました!!

Kanazawa.rb #148

宮川 剛

2 of 8

自己紹介

宮川 剛

x : @miyakawa2449�bluesky : @miyakawa.me

住んだことがあるところ�金沢→新潟→札幌→神戸→金沢

キャリア�パソコン講師→プログラマ→システムエンジニア→�プロジェクトマネージャ→プロデューサー

好きなもの�コーヒー、テレビゲーム、読書、映画

趣味�「プログラミングが趣味」と言えるように頑張ろうと最近、始めています。

Gopher

ホリネズミ

3 of 8

Go言語とは

  • Goの基本情報:
    • シンプルでモダンなプログラミング言語
    • Googleが2009年に開発し、現在も広く使われている
    • 高速なコンパイルと並列処理が強み
  • Goが使われる分野:
    • Webサーバー開発、クラウドサービス、インフラツール(例:Docker、Kubernetes)

4 of 8

初心者目線での魅力

# 簡潔な構文が好き — 例:シンプルなiffor構文

# 並列処理が簡単 — goroutineのコード例

# ビルドが速いらしい

  • 実行ファイルの生成が簡単。
  • 例:1コマンドで完結(go build)。
  • デモ感覚で成果をすぐに確認できる。

for i := 0; i < 5; i++ {

  fmt.Println(i)

}

C言語に似ているため馴染みやすい

go func() {

  fmt.Println("Hello from goroutine!")

}()

goキーワードだけで並列処理が開始できる手軽さ。

5 of 8

go で試したこと

package main

import "fmt"

�func main() {

fmt.Println("Hello, World!")

}

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)

}

go run hello_world.go

# 下記が実行結果

Hello, World!

http://localhost:8080

「Hello, Go Web Server!」と表示

6 of 8

goで試したこと

Goと Google Books APIsを利用して、ISBN番号を入力して書影情報を取得するコードを準備しました。

この後、スマホカメラでISBN番号を読み取れる仕組みを JavaScript で実装予定

7 of 8

学び始めた感想

  • 他の言語と比較して「これがいい!」と思った点:
    • Python:簡潔だが、Goの構文も直感的でわかりやすい。
    • C言語:文法が似ているため、Goの学習がスムーズ。
    • 並列処理:Goはシンプルな方法で実現できる。
  • 補足情報:
    • C言語経験があることでGoの「中堅言語的」な魅力を感じた。
    • 新しい分野への挑戦が良い気分転換になった。

8 of 8

まとめ

「シンプルだけど奥が深い」Go言語。

並列処理や高速な実行で、現代のニーズに応える力がある。

現在、挑戦中のこと

実際のプロジェクトや小さなツール開発。