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
78
EVAフレームワーク
友人が作っているやつ、「EVAフレームワーク」は紹介用に自分がそう呼んでるやつ。
Sigma
October 10, 2022
Tweet
Share
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
100
Stable Diffusionで遊んでみた
seiyasugimoto
0
110
SSR+SPA
seiyasugimoto
0
110
Nuxtにおける設計
seiyasugimoto
0
77
Atomic Designを ディレクトリ以外で表現
seiyasugimoto
0
67
throttleすげぇぇぇ
seiyasugimoto
0
75
スマホでPythonしたい
seiyasugimoto
0
60
平文で保存するな!
seiyasugimoto
0
82
ソースコードを読もう
seiyasugimoto
0
77
Other Decks in Programming
See All in Programming
Droid Knights 2024 Github Actions 효율적인 배포 환경 만들기
kts6056
0
120
Pure GoでアニメーションGIFのリサイズを実装する
logica0419
0
260
Event Exhibition with Hono
naporin0624
0
100
Ruby の型に関する活動をやっている話 / Activities related to Ruby types
euglena1215
3
120
앱 성능 영혼까지 끌어올리기
veronikapj
0
700
Google I/O 報告LT会 / Building UI with the M3-adaptive-lib
atria
0
120
短期AHCで勝つためのテクニック
shun_pi
3
1.6k
dbt v1.8で追加された単体テストを触ってみた
k_data_analyst
1
160
DroidKnights 2024 : Compose Material3 커스텀 디자인 시스템 구축기
kwondae
0
310
マイクロサービス基盤にフルマネージドサービスではなくKubernetesを選択する理由
bgpat
7
1.8k
エンジニアが開発生産性を上げるためにやる最初の一歩
ktchiroyah
0
100
KotlinのLinter まなびなおし2024
nyafunta9858
0
110
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
32
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
26
2.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
In The Pink: A Labor of Love
frogandcode
138
21k
Creatively Recalculating Your Daily Design Routine
revolveconf
213
11k
Typedesign – Prime Four
hannesfritz
36
2.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
40
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
13
1.1k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Documentation Writing (for coders)
carmenintech
61
4.1k
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から利用し、フロントエンドへ繋ぎ込む。
最終的にコレが出来上がる