「元から作りたかった」+「普段の業務で触れられない、主にバックエンドの技術に触れたい」
という想いからクイズアプリを作成しました。
ちゃんと手順を記事にしようと思ったらとてつもない時間がかかってしまいますが、取り急ぎメモ的な感じで、参考記事(詰まりポイント)を羅列します。
#リポジトリURL:
https://github.com/Takabun/eng_quiz/tree/master/web
#使用技術:
フロント:Nuxt.js + Typescript + SSR(サーバーサイドレンダリング)
API: Golang + Echo フレームワーク DB: MySQL
インフラ: Docker + Kubernetes
#インフラ構成図
#DB構成図
(users/mylists/commentsテーブルは、作成はしたが結局使わず…)
ここから、各技術について参考にした資料一覧
#Docker + Kubernetes
参考書: Docker/Kubernetes 実践コンテナ開発入門
定番のある良書です。ただ、k8s コンテナのデバック(踏み台コンテナの作成 / コンテナの中に入ってcurlで他コンテナと通信する)については記載が無く、そこについても言及して欲しかったです。
APIのDockerイメージ作成の際、go run main.goコマンドが認識されずハマった。
その際に参考にした記事
https://qiita.com/sky0621/items/d837c566b04464469fdb
webコンテナ作成 この記事のお陰で、特に詰まる事なく実装できた
https://yopinoji.com/docker-for-nuxt-js
定番だが、Dockerの学び始めには下記のチュートリアルがオススメ
https://y-ohgi.com/introduction-docker/
#DB
コンテナ化の際、日本語が文字化けした。下記の記事で解決
https://qiita.com/zongxiaojie/items/6b593ec4ce5e85bb342c
#API
Golang echoフレームワーク
ORM gorm
HTTPieを導入する事で、普通にcurlコマンドを打ってAPIの挙動を確認するよりも楽になりました。
[参考記事]
(https://www.it-swarm.dev/ja/json/httpie%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%8D%E3%82%B9%E3%83%88%E3%81%95%E3%82%8C%E3%81%9Fjson%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B/824413537/)
.Relatedの使い方でハマった時に参考になった記事
http://egawata.hatenablog.com/entry/2017/01/14/143143
echoでAPIサーバーを実装するにあたり、個人的に一番コンパクトにまとまっていると思った記事
https://kimagureneet.hatenablog.com/entry/2017/12/20/163848
結局出来なかった事:
Realizeを用いたホットリロードの実装。
バージョンの違いのせいか、結局Realizeが上手く動かず、ホットリロード無しで実装した。
(世の中のgopher達みんなどうやってるんだろ…)
https://qiita.com/godgarden/items/f73e4a717f1a27b9a3b0
#WEB
nuxt-typed-vuex(VuexにTSで型をつける)
ちょうど業務で、このパッケージを使う必要が出てきた頃だったので、業務での導入前にいい練習になりました。
https://qiita.com/shindex/items/a90217b9e4c03c5b5215
AWS S3を用いた画像保存/表示
https://funasaki.hatenablog.com/entry/2013/11/06/163558