Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
EVAフレームワーク
Search
Sigma
October 10, 2022
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
EVAフレームワーク
友人が作っているやつ、「EVAフレームワーク」は紹介用に自分がそう呼んでるやつ。
Sigma
October 10, 2022
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
240
Stable Diffusionで遊んでみた
seiyasugimoto
1
150
SSR+SPA
seiyasugimoto
0
170
Nuxtにおける設計
seiyasugimoto
0
110
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
99
throttleすげぇぇぇ
seiyasugimoto
0
92
スマホでPythonしたい
seiyasugimoto
0
79
平文で保存するな!
seiyasugimoto
0
100
ソースコードを読もう
seiyasugimoto
0
100
Other Decks in Programming
See All in Programming
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.7k
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
170
AI-Powered Domain-Driven Design
ziobrando
0
310
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
930
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
200
contenteditable と日本語入力に向き合う
colorful12
0
220
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.2k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.2k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
180
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
150
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
Technical Leadership for Architectural Decision Making
baasie
3
610
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
The browser strikes back
jonoalderson
0
1.9k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
330
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
640
Odyssey Design
rkendrick25
PRO
2
890
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
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から利用し、フロントエンドへ繋ぎ込む。
最終的にコレが出来上がる