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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
linyows
March 11, 2025
Programming
460
0
Share
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
2025-03-11 Fukuoka.go#21 での発表資料。
linyows
March 11, 2025
More Decks by linyows
See All by linyows
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
230
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
870
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
630
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
1
550
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1.2k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
630
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
360
奥が深いメールのシステム / The depth of Email system
linyows
4
790
IaCにおけるテスト考察 / Tests in IaC
linyows
2
930
Other Decks in Programming
See All in Programming
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2.1k
CDK Deployのための ”反響定位”
watany
5
900
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
910
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
1
170
AIと共に生きる技術選定 2026
sgash708
0
110
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
180
第3木曜LT会 #28
tinykitten
PRO
0
120
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
160
의존성 주입과 모듈화
fornewid
0
150
10 Tips of AWS ~Gen AI on AWS~
licux
5
510
Back to the roots of date
jinroq
0
560
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Test your architecture with Archunit
thirion
1
2.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Deep Space Network (abreviated)
tonyrice
0
130
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
110
Paper Plane
katiecoart
PRO
1
49k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
Typedesign – Prime Four
hannesfritz
42
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
We Have a Design System, Now What?
morganepeng
55
8.1k
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ΛͬͯΫϥυͷίϯϙʔωϯ τΛ։ൃͯ͘͠ΕΔؒΛ୳͍ͯ͠·͢ʂ ؾܰʹ͓͔͚͍ͩ͘͞㷉⊙౪⚆㷊