(Vite+SvelteKit+Vercel ) + (Gin+Cloud Run)で隠語を検出するサービスをクリスマスに爆速開発
初投稿です。
この記事は Otaku Advent Calendar 2023 3日目の記事です。
TL;DR
(Vite + SvelteKit + Vercel) + (Gin + Cloud Run) で適当なサービスを爆速開発した。
なにをするサービス?
これ↓
文章をぎなた読みして、隠語を検出するサービス。
成果物
アクセスしてそのままボタン押せばそういうことね~となる。読み上げボタンを押すと喋るので音量注意。
モチベーション
ウーマンコミュニケーションがかなり面白くて、最近のメタフィクションゲーの流れを汲む2023年のSFとして傑作と感じた。
ゲームの結末に触れるので詳細は避けるが、隠語を検出するサービスを作りたくなったので、作った。
構成
バックエンド構成
- Gin
- ikawaha/kagome: Self-contained Japanese Morphological Analyzer written in pure Go
- uber-go/zap: Blazing fast, structured, leveled logging in Go.
- Cloud Run
- (dev) upx
- (dev) Air
kagome
が優秀なので、エイヤで読み方を作成したら完成。ぎなた読みとか隠語検知のアルゴリズムはやるだけの愚直です。
CORS初心者なので数回いじったがその程度。
upx
のおかげで Docker Image は16MBまで縮小できた、雑すぎて Cloud Build 構成してないので docker push
が早くて良かった。
フロント構成
- Vite
- SvelteKit
- 5.0.0-next.26 (!)
- Vercel
- SpeechSynthesis
筆者はバックエンド~クラウドインフラ屋さんなのでフロント構成は全然ない。普段はBootstrapレベルだが一念発起して最近気になってるSvelteKitで作った。
が、ノリで未リリースの 5.0.0
を使ったところすべての関連ライブラリが未対応なので酷い目にあった。
また、CSR / SSRも未経験だったため、ハイドレーションにJSを吸われてしまう事故が起きて更に苦労した。
CloudFlare + VercelもなんかHTTPSとかがめんどくさくて……(2敗)
おわりに
それではブルアカらいぶを見るので失礼します。
ウーマンコグニッション 遊んでみてね。元ネタのウーマンコミュニケーションも面白いので遊んでみてね。
Discussion