Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
EVAフレームワーク
Search
Sigma
October 10, 2022
Programming
0
110
EVAフレームワーク
友人が作っているやつ、「EVAフレームワーク」は紹介用に自分がそう呼んでるやつ。
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
200
Stable Diffusionで遊んでみた
seiyasugimoto
1
130
SSR+SPA
seiyasugimoto
0
130
Nuxtにおける設計
seiyasugimoto
0
90
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
80
throttleすげぇぇぇ
seiyasugimoto
0
78
スマホでPythonしたい
seiyasugimoto
0
66
平文で保存するな!
seiyasugimoto
0
87
ソースコードを読もう
seiyasugimoto
0
85
Other Decks in Programming
See All in Programming
CSC305 Lecture 17
javiergs
PRO
0
240
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
16
6.1k
dotfiles 式年遷宮 令和最新版
masawada
1
510
【レイトレ合宿11】kagayaki_v4
runningoutrate
0
210
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
5
850
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
260
CSC305 Lecture 15
javiergs
PRO
0
230
無秩序からの脱却 / Emergence from chaos
nrslib
2
11k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
110
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
3.9k
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
17k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
30
5.7k
Speed Design
sergeychernyshev
33
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Building Adaptive Systems
keathley
44
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
700
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Docker and Python
trallard
46
3.7k
Documentation Writing (for coders)
carmenintech
76
5.2k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Transcript
Echo Volcago Api_gen メタプログラミングライブラリのある開発
誰 • 杉本聖也 • Sigma • Nuxt.tsとechoとメタプログラミング・ライブラリを使って開発をしている者です。 • 26歳 ◦
会社名は伏せます
何話す • E, V, AによるAPIサーバー開発について ◦ go のフレームワーク Echo シンプルで高速
◦ Firestore のリポジトリ層のメタプログラミングライブラリ Volcago について。 ◦ Controller と API client のメタプログラミングライブラリ Api_gen について。
注意DDDやクリーンアーキテクチャに 従うわけではない • よく似た図が出てきますが、 DDDやクリーンアーキテクチャに従うわけでは無いです。 • api_genやvolcagoを実戦投入してきたフィードバックを考慮した結果、このようなレイヤード アーキテクチャになっている。
echo の開発における役割
volcago の開発における役割
補足リポジトリとFirestore • Repositoryとは生成、読み込み、更新、削除といったデータベースに対する基本的な操作を司 り、データベースの内容をプログラムが扱い安い構造体等の形で提供する機能を持ったもので す。 • FirestoreはいわゆるNoSQLで、SDKなどを経由してアクセスされる高速でスケーラブルなデー タベースです。
api_gen の開発における役割
補足コントローラーとAPI Client • ControllerとはAPIサーバーがHTTPリクエストを受けた時のハンドラーとなる関数群などのこ と を言います。 • API Client はAPIサーバーが受け付けている
HTTPリクエストに対応した呼び出しを行い、結果 を返すプログラムです。フロントエンドで使われます。
volcago って何者 • 日本製OSS ◦ コントリビュート待ってます。 • go generate という
go のツールチェーンに基づいているらしい ◦ ファイルを読んで特定の構造体を探す。 ◦ その構造体に対応したリポジトリを自動生成する。 ◦ モックを作ることもでき、サービスレベルのテストに役立てられる。
api_gen って何者 • 日本製OSS ◦ コントリビュート待ってます。 • go の AST
を取り出す API に基づいているらしい ◦ AST を読んで特定の構造体のペアを探す。 ◦ ペアに対してコントローラの叩き台とクライアントを自動生成する。 ◦ モックを作ることもでき、フロントエンドの開発に役立てられる。
実際の開発の流れの一例 1. Firestore のモデルを考え、書く。 2. Volcagoを使ってリポジトリを生成する、モックを生成する。 3. リポジトリを使ってサービスメソッドを書く。モックを使ってサービスメソッドのテストを書く。 4. コントローラに対するリクエストとレスポンスを考え、書く。
5. api_genを使ってコントローラの叩き台と対応する APIクライアントを生成する。 6. サービスやリポジトリを使ってコントローラの中身を書く。 7. API clientから利用し、フロントエンドへ繋ぎ込む。
最終的にコレが出来上がる