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
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
150
Nuxtにおける設計
seiyasugimoto
0
91
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
82
throttleすげぇぇぇ
seiyasugimoto
0
80
スマホでPythonしたい
seiyasugimoto
0
69
平文で保存するな!
seiyasugimoto
0
89
ソースコードを読もう
seiyasugimoto
0
88
Other Decks in Programming
See All in Programming
Data-Centric Kaggle
isax1015
2
780
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
730
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
2026年 エンジニアリング自己学習法
yumechi
0
140
CSC307 Lecture 10
javiergs
PRO
1
660
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Test your architecture with Archunit
thirion
1
2.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Making Projects Easy
brettharned
120
6.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
750
Documentation Writing (for coders)
carmenintech
77
5.3k
Typedesign – Prime Four
hannesfritz
42
2.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
93
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から利用し、フロントエンドへ繋ぎ込む。
最終的にコレが出来上がる