Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
EVAフレームワーク
Search
Sigma
October 10, 2022
Programming
110
0
Share
EVAフレームワーク
友人が作っているやつ、「EVAフレームワーク」は紹介用に自分がそう呼んでるやつ。
Sigma
October 10, 2022
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
220
Stable Diffusionで遊んでみた
seiyasugimoto
1
140
SSR+SPA
seiyasugimoto
0
150
Nuxtにおける設計
seiyasugimoto
0
100
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
89
throttleすげぇぇぇ
seiyasugimoto
0
85
スマホでPythonしたい
seiyasugimoto
0
74
平文で保存するな!
seiyasugimoto
0
95
ソースコードを読もう
seiyasugimoto
0
97
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.7k
[BalkanRuby 2026] Drop your app/services!
palkan
3
680
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
180
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
2.3k
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
0
100
AIエージェントの隔離技術の徹底比較
kawayu
0
430
GitHub Copilot CLIのいいところ
htkym
2
1.1k
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
140
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
130
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
130
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.1k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
150
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
Building an army of robots
kneath
306
46k
How to make the Groovebox
asonas
2
2.2k
A better future with KSS
kneath
240
18k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
The Cult of Friendly URLs
andyhume
79
6.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
140
It's Worth the Effort
3n
188
29k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
220
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から利用し、フロントエンドへ繋ぎ込む。
最終的にコレが出来上がる