2026.07.11(土) / 18:37

【Go】買い物リスト作成アプリ

ID
39922
Published
2026-07-11 18:37
Modified
2026-07-11 18:44
Author
khiro
Categories
デフォルト

Renderで公開しています(待ち時間が発生します)

https://go-rnnx.onrender.com

機能

追加

取り消し線

削除

↓ ゴミ箱ボタンを押した後の状態

作成開始

5月23日(土) 14:27、求人で見かけるGoに触れてみたいと思い、ChatGPTに相談した

goの勉強をしたい goで買い物リスト作成アプリを作るとどうなりますか?

一度作ってみて、ブラウザで実行したいです

main.goを作成した

package main

import (
	"fmt"
	"net/http"
)

var items []string

func main() {
	http.HandleFunc("/", showList)
	http.HandleFunc("/add", addItem)

	fmt.Println("http://localhost:8080 で起動中")
	http.ListenAndServe(":8080", nil)
}

func showList(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, `
		<h1>買い物リスト</h1>
		<form action="/add" method="POST">
			<input name="item" placeholder="商品名を入力">
			<button type="submit">追加</button>
		</form>
		<ul>
	`)

	for _, item := range items {
		fmt.Fprintf(w, "<li>%s</li>", item)
	}

	fmt.Fprint(w, `
		</ul>
	`)
}

func addItem(w http.ResponseWriter, r *http.Request) {
	item := r.FormValue("item")
	if item != "" {
		items = append(items, item)
	}

	http.Redirect(w, r, "/", http.StatusSeeOther)
}

実行

goコマンドがない?

hiroki@shibatahiroshitakanoiMac go % go run main.go 
zsh: command not found: go

goをインストール

brew --version

で、Homebrewが入っていることを確認して、

brew install go

で、Goをインストールした

main.goを起動した

そして、

go run main.go

で、main.goを起動した

hiroki@shibatahiroshitakanoiMac go % go run main.go
http://localhost:8080 で起動中

main.goの起動後の様子

localhost:8080にアクセスすると、商品を追加できる画面が表示される

商品名を入力して、追加を押すと追加された商品が下に表示される

GitHubとブログ

GitHub

5月24日(日)、GitHubに最初のコミットを行った

https://github.com/ki-hi-ro/go/commit/113024692e40d7c349836416080977a56316bb81

ブログ

ブログ記事を執筆した

デプロイとレスポンシブ対応

デプロイ

5月31日(土)、Renderを使用して、デプロイした

https://github.com/ki-hi-ro/go/commit/c1b65d3f554b8c850a9fd5cad85406c4bbd3fa42

レスポンシブ対応

スマホでも見やすいように、レスポンシブ対応を行った

https://github.com/ki-hi-ro/go/commit/deba5bc2fae99dacc9c5b6062f95d59db86161ec

運用後の改善

取り消し線

項目にチェックを入れたら取り消し線が出るようにした

https://github.com/ki-hi-ro/go/commit/037e4d098cbf20e81171a30e7c768f060b6dfb03

項目自体を削除

ゴミ箱ボタンを押すと、項目が削除されるようにした

https://github.com/ki-hi-ro/go/commit/998b5c5417f6b2dd9fae96ab93d06698bcaf0c2b