はじめに
今日から、新しいチャレンジを始めます。それは「読んだ本のレビューを残すアプリ」をGo言語でアジャイル開発し、学びながら進めること。さらに、開発の過程でChatGPTやGitHub CopilotといったAIアシスタントを「仮想ペアプロ」として活用します。
なぜこんなことをやろうと思ったのか?
- Go言語を実践的に学びたい:APIサーバやDB操作、テンプレート処理を通して学ぶ。
- 読書記録アプリを作りたい:ISBNで書籍情報を取得し、そこにレビューやメモを残せるプラットフォーム。
- アジャイル開発で柔軟に:段階的に機能を増やし、完成度を上げていく。
- ChatGPT & Copilot活用:詰まったらChatGPTに相談し、コード補完はCopilotに任せる。
- 最終的にはカメラでバーコード読み取り:QuaggaJSやZXingなどのJSライブラリを使い、スマホやPCのカメラでISBNをスキャン→自動的に書籍情報取得する流れを目指す。
目標とロードマップ
最終形をざっくりイメージすると、
- ISBN検索機能(外部API連携) → 書籍基本情報を取得
- レビュー機能 → 書籍情報に対してメモやコメントを保存
- バーコード読み取り機能(フロント側) → スマホやPCのカメラでISBNをスキャン、手入力不要
- メモ管理(編集・削除・一覧表示) → 本格的なレビューデータベース
これらをアジャイル的な小さなスプリントで区切って進めます。
スプリント例(変更可能)
- スプリント1: ISBN検索API(Goで外部API連携)
- スプリント2: フロントエンドでISBN入力→検索結果表示
- スプリント3: DB導入・レビュー記録機能追加
- スプリント4: レビュー編集・削除、一覧表示
- スプリント5: QuaggaJSやZXingを使ったバーコード読み取り機能実装
- スプリント6: デプロイ、UI改善、総仕上げ
※ スプリント数や内容は柔軟に変更する可能性あり
今日(Day 1)の活動
- Go環境構築:
Goをインストール&設定し、go version
で動作確認完了。 - GitHubリポジトリ作成:
my-book-review-app
のようなプロジェクト名でリポジトリ作成。 - HTTPサーバ起動テスト:
簡単なGo HTTPサーバを作り、「Hello, Book Review World!」が表示されるか確認。 - ChatGPT活用:
PATH設定でちょっと悩んだが、ChatGPTに質問→すぐ解決。 - GitHub Copilot活用テスト:
ハンドラー関数を書く際にCopilotが補完してくれ、今後が楽しみ。
明日以降にやること
- Day 2: Google Books APIなどを叩いて、ISBN指定でタイトル取得のプロトタイプを作る。
- 中盤: DB導入し、書籍レビューを保存できるようにする。
- 後半: QuaggaJSやZXingでカメラアクセス実装→バーコード読み取り→ISBN取得→書籍情報表示の流れを完成!
なぜバーコード読み取り?
入力を極力簡略化したいからです。
- 手でISBNを入力する手間を省く
- スマホのカメラで本のバーコード(ISBN)をスキャン→即座に書籍情報表示→レビュー記入、というスムーズなUXを提供したい
まとめ
今日は地ならし。Go言語でHello World的なHTTPサーバが起動できました。明日から、いよいよISBN検索APIの実装に入っていきます。最終的にはカメラでバーコード読み取りも実現し、より便利な読書記録ツールに育てていく予定。ChatGPT & Copilotと二人三脚で、試行錯誤しながら前進していきます!