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
コードジェネレーターで 効率的な開発をする / Efficient development w...
Search
linyows
March 11, 2025
Programming
0
240
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
2025-03-11 Fukuoka.go#21 での発表資料。
linyows
March 11, 2025
Tweet
Share
More Decks by linyows
See All by linyows
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
230
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
370
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
0
150
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
840
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
380
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
190
奥が深いメールのシステム / The depth of Email system
linyows
4
550
IaCにおけるテスト考察 / Tests in IaC
linyows
2
610
リバースエンジニアリングとGoでSlackの認知負荷を下げる / Reducing cognitive load in Slack with Reverse-engineering and Go
linyows
2
370
Other Decks in Programming
See All in Programming
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
320
エンジニア未経験が最短で戦力になるためのTips
gokana
0
260
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
200
Deoptimization: How YJIT Speeds Up Ruby by Slowing Down / RubyKaigi 2025
k0kubun
0
490
API for docs
soutaro
1
590
CRE Meetup!ユーザー信頼性を支えるエンジニアリング実践例の発表資料です
tmnb
0
630
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.5k
海外のアプリで見かけたかっこいいTransitionを真似てみる
shogotakasaki
1
160
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
890
Unlock the Potential of Swift Code Generation
rockname
0
240
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
0
180
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
990
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Writing Fast Ruby
sferik
628
61k
KATA
mclloyd
29
14k
Into the Great Unknown - MozCon
thekraken
37
1.7k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
Speed Design
sergeychernyshev
29
880
Agile that works and the tools we love
rasmusluckow
328
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
Transcript
Fukuoka.go #21 Tomohisa Oda / Mar 11, 2025 ίʔυδΣωϨʔλʔͰ ޮతͳ։ൃΛ͢Δ
Fukuoka.go #21 @linyows Blog: tomohisaoda.com Affiliation: Sakura internet, Inc. ɹɹɹɹɹɹCognano,
Inc.
Fukuoka.go #21 ࠓճϙΤϜ
Fukuoka.go #21 ๏ PHFO0QFO"1*WΛδΣωϨʔτ͢Δπʔϧ ๏ +40/ͷΤϯίʔυʗσίʔυʹϦϑϨΫγϣϯͰͳ͘όοϑΝ͔ ΒܕղੳΛ͢ΔͨΊϝϞϦΞϩέʔγϣϯ͕গͳ͍͍͠ ๏ 0QFO"1*4DIFNB͔Βͷ7BMJEBUJPO͕Ͱ͖Δ ๏
ॊೈͳܕͷαϙʔτ͕͋Δ ๏ 0QFO5FMFNFUSZͷαϙʔτ͕͋Δ 0QFO"1*ϓϩδΣΫτͰPHFOΛͬͨ
Fukuoka.go #21 0QFO"1*WΛδΣωϨʔτ͢Δπʔϧ
Fukuoka.go #21 ๏ PQFOBQJHFOFSBUPSIUUQTHJUIVCDPN0QFO"1*5PPMTPQFOBQJHFOFSBUPS ๏ PBQJDPEFHFOIUUQTHJUIVCDPNPBQJDPEFHFOPBQJDPEFHFO ๏ PHFOIUUQTHJUIVCDPNPHFOHPPHFO ๏ HPTXBHHFSIUUQTHJUIVCDPNHPTXBHHFSHPTXBHHFS
(PͰ0QFO"1*δΣωϨʔλʔͱ͍͑
Fukuoka.go #21 ๏ (JOIUUQTHJUIVCDPNHJOHPOJDHJO ๏ &DIPIUUQTHJUIVCDPNMBCTUBDLFDIP ๏ $IJIUUQTHJUIVCDPNHPDIJDIJ ๏ (PBIUUQTHJUIVCDPNHPBEFTJHOHPB
(PͰ"QQMJDBUJPO'SBNFXPSLͱ͍͑
Fukuoka.go #21 ๏ (Pݴޠͱͯ͠ޙํޓੑΛଋ͞Ε͍ͯΔʢࠓʣ ๏ ίϛϡχςΟύοέʔδΛݮΒͯ͠ͳΔ͘ඪ४ϥΠϒϥϦʹد͓͖͍ͤͯͨ ๏ όʔδϣϯैָ͕ਆ ๏ ͳͷͰ'SBNFXPSLബ͍ํ͕Έɺ͋Δ͍ෆཁ
๏ ඞཁʹͳ͔ͬͯΒػೳΛՃͰ͖Δ΄͏͕ΞλοΫαʔϑΣεখ͘͞Ͱ͖Δ ͱ৴͍ͯ͡Δ ਖ਼ͲΕͰ͍͍ʜ͕
Fukuoka.go #21 ๏ HPSNͳͲ"DUJWF3FDPSEʹӨڹΛड͚͍ͯΔ03.ۤख ๏ ศརͳ໘ɺ৭ʑӅṭ͞Ε͍ͯͯೝෛՙ͕ߴ͍ͱײ͡Δ ๏ όʔδϣϯΞοϓ࣌ύϑΥʔϚϯενϡʔχϯάͳͲ ๏ ʹ2VFSZΛఆٛ͠δΣωϨʔτͯ͠͏TRMD͕࠷ߴ
Ͳ͔ͬͪͱ͍͏ͱ3%#ͷ.BQQJOH͕
Fukuoka.go #21 ๏ 4DIFNB͔Β4FSWFS)BOEMFSͷ*OUFSGBDFΛ(FOFSBUF ๏ *OUFSGBDFΛຬ࣮ͨ͢Λॻ͘ ๏ 2VFSZ͔Β4USVDU.FUIPEΛ(FOFSBUF ๏ ࣮͔Βݺͼग़͚ͩ͢
๏ جຊతʹBQJύοέʔδʹ࣮Λ૿͍ͯ͘͠ʢͪΖΜґଘ͠ͳ͍ ͷผͷύοέʔδʹΓग़͢ʣ PHFOͱTRMDΛϓϩδΣΫτͰ༻͢Δ
Fukuoka.go #21 ͱ͍͏͜ͱͰɺPHFOͱTRMDΛ༻
Fukuoka.go #21 ߏྫ
Fukuoka.go #21 HFOHP package example //go:generate go run github.com/ogen-go/ogen/cmd/ogen --target
oas/ oasgen --package oasgen --clean oas/petstore.yml //go:generate go run github.com/sqlc-dev/sqlc/cmd/sqlc generate -f db/sqlc.yml HFOFSBUFDPNNBOEΛॻ͍ͯHPHFOFSBUFΛ࣮ߦ
Fukuoka.go #21 7BMJEBUJPOͷྫ
Fukuoka.go #21 ॊೈͳܕαϙʔτ 0QUJPOBM5ZQFT
Fukuoka.go #21 4DIFNB͔Β࡞ΒΕ ΔΠϯλʔϑΣʔε Λຬͨ͢Α͏ʹ࣮
Fukuoka.go #21 TRMDͷRVFSZ 0QFO5FMFNFUSZͷ USBDFS1SPWJEFSΛ IBOEMFSʹηοτ
Fukuoka.go #21 0QFO5FMFNFUSZͱͷ౷߹
Fukuoka.go #21 ๏ ࢀߟ࣮ΛHJUIVCʹஔ͍ͨIUUQTHJUIVCDPNMJOZPXT PHFOFYBNQMF ๏ ׂ͕໌֬ʹͳΓ࣮͕গͳ͘ͳͬͨؾ͕͢Δ ๏ 03.ʹৄ͘͠ͳͯ͘%#ʹରͯ͠ԿΛ͍ͬͯΔ͔໌֬ʹͳͬ ͨ
๏ ͕࣌ؒ͋Ε%FNPIUUQTHJUIVCDPNPHFOHPFYBNQMF δΣωϨʔλʔଟ༻ͷޮՌ
Fukuoka.go #21 ๏ EPDLFSDPNQPTFVQͰ0QFO"1*αʔόͱΫϥΠΞϯτͱ 0CTFSWBCJMJUZڥ͕ىಈ͢Δ ๏ 0CTFSWBCJMJUZڥ$MJDLIPVTFͱ0UFMECͱ(SBGBOB ๏ τϨʔεɺϝτϦΫεɺϩάͷೖग़ྗ͕Ͱ͖Δ0UFMEC͕ศར ๏
0UFMEC$MJDLIPVTFͷϥούʔ%# ๏ ೦ͳ͜ͱʹຊ൪Ͱ·ͩ͑ͳ͍ͭ PHFOHPFYBNQMF
Fukuoka.go #21 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͘͞ΒΠϯλʔωοτͰ 𝝣 (0ΛͬͯΫϥυͷίϯϙʔωϯ τΛ։ൃͯ͘͠ΕΔؒΛ୳͍ͯ͠·͢ʂ ؾܰʹ͓͔͚͍ͩ͘͞㷉⊙౪⚆㷊