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
Goによるスキーマ駆動開発
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
atsushi-ishibashi
June 26, 2020
Technology
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goによるスキーマ駆動開発
atsushi-ishibashi
June 26, 2020
More Decks by atsushi-ishibashi
See All by atsushi-ishibashi
コンテナ運用におけるアプリケーション設定管理
atsushi51
0
520
モダンなアーキテクチャでゼロから作る証券基盤
atsushi51
1
2.9k
AWSにおけるクラウドネイティブでセキュアな証券システムの運用
atsushi51
0
160
独自ファイル形式にStructTagで立ち向かう
atsushi51
0
100
クラウドインフラの権限
atsushi51
0
88
AWSとGo言語とコンテナによる証券プラットフォーム
atsushi51
0
86
StepFunctionsフルコース
atsushi51
0
120
DevSecOps実践
atsushi51
0
160
Other Decks in Technology
See All in Technology
オートマトンと字句解析でRoslynを読む
tomokusaba
0
130
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
250
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
0
1k
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
7
3.1k
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
32
27k
CloudWatchから始めるAWS監視
butadora
0
310
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
620
歴史から理解するクラウドインフラのしくみ
kizawa2020
1
200
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
200
20260724 情シスAI #1 「全従業員をAIネイティブにする」ために情シスがやっていること(公開版)
frtckty
0
190
運用を犠牲にせずコストを制御し事業成長を支える B2B SaaS ID管理基盤におけるS3 Tableのログストレージ活用
kaminashi
1
130
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.1k
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
680
How STYLIGHT went responsive
nonsquared
100
6.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Documentation Writing (for coders)
carmenintech
77
5.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Amusing Abliteration
ianozsvald
1
240
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
230
Transcript
GoʹΑΔεΩʔϚۦಈ։ൃʢԾʣ Finatext x ΤϒϦʔ ελʔτΞοϓ࠷લઢͷGoࣄྫ
ࣗݾհ - ੴڮ ३ࢤ • αʔόαΠυɺΠϯϑϥΛ୲ • ݩʑiOSͬͯͨ • εϚʔτϓϥεͷূ݊γεςϜΛ։ൃɺͦͷଞॾʑ
• terraform-provider-awsʹͦͦ͜͜ߩݙ • झຯαφ
εΩʔϚۦಈ։ൃͱ͍͑ • OpenAPIɺgRPCɺGraphQLͷ3ͭͰΑ͘ޠΒ ΕΔ • ࠓճGraphQLͷؚ·Ε·ͤΜ • gRPCͪΐͬͱ͚ͩ • OpenAPIΛϝΠϯͰ͠·͢
BaaSͰͷΤϯυϙΠϯτߏਤ ALB HTTP + JSON NLB gRPC ೝՄαʔϏε จܥ Ձ֨ܥ
ޱ࠲ܥ ػೳϨΠϠʔͱ͍͏ΑΓ͔ υϝΠϯͰ͚ͯΔ
gRPCʁ • ෦తͳೝՄαʔϏεͰར༻͍ͯ͠Δ • ͜ͷೝՄϏδωεϩδοΫدΓͷͷ • ଟͷαʔό͕ΫϥΠΞϯτͱͯ͠ར༻͢Δ • ΫϥΠΞϯτίʔυੜͰ͖Δͷخ͍͠ •
ϦΫΤετ͝ͱʹೝՄαʔϏεʹ͍߹ΘͤΔͷͰߴύϑΥʔϚϯεخ͠ ͍ خ͍͜͠ͱ ΊΜͲ͍͘͜͞ͱ • ΞΫηεϩάͷूܭϝτϦΫεͳͲʹϚωʔδυɾαʔϏε͑ͳ͍ • HTTP-JSONͷ߹ALB-TargetGroupͷΈ߹ΘͤͰHTTP StatusCode ͳͲΛCloudWatchMetricsͰूܭͯ͠Δ • gRPCͩͱinterceptorೖΕͯΞϓϦέʔγϣϯϩάʹग़ͯ͠ؤுͬͨΓɺ PrometheusͬͨΓʁ • ·ͩ֎ʹग़ͤΔAPIυΩϡϝϯτੜͰ͖ͳ͍ͱࢥ͏
OpenAPIͷ۩ମతͳར༻ํ๏ • ن֨Խ͞ΕͨAPIυΩϡϝϯτ͕࡞ΕΔ • mockੜͰ͖ͯϑϩϯτ͕ಉ࣌ਐߦͰ։ൃ ਐΊΕΔ • ίʔυੜՄೳ
ΤσΟλ Swagger Editor Stoplight Studio • ެࣜ • GUIΤσΟλ •
ෳϑΝΠϧฤूՄೳ • previewΆ͍(form)ͷ͔ΒฤूͰ ͖Δ
APIυΩϡϝϯτੜ Dockerfile ίϯςφ্ཱͪ͛
• ϩʔΧϧͰཱͯΕΔ͕ɺෳΤϯυϙΠϯτΛ ݟΔͷେมͳͷͰɺϒϥβͰURL͚ͯϗε ςΟϯά͞ΕͯΔͱศརͦ͏ • APIαʔόͱಉ͡gitϨϙδτϦʹswagger-ui༻ͷ DockerfileΛ࣋ͭ • ECSͰϗεςΟϯά •
AWS CodePipelineͰ։ൃڥʹϦϦʔε ։ൃڥʹϦϦʔε
Mockίϯςφͷੜ apisproutͷDockerfile Mock͔ΒͷϨεϙϯε
• ϩʔΧϧͰཱͯΕΔ͕ʢҎԼུ • APIαʔόͱಉ͡gitϨϙδτϦʹmock༻ ͷDockerfileΛ࣋ͭ • ECSͰϗεςΟϯά • AWS CodePipelineͰ։ൃڥʹϦϦʔε
UIͱಉ͘͡։ൃڥʹϦϦʔε
ίʔυੜ • routergorillaͰੜ͞ΕΔ • FinatextͰechoΛͬͯΔͨΊ modelͷΈநग़
ਖ਼͋Μ·Γخ͘͠ͳ͍… • APIͷϦΫΤετʹόϦσʔγϣϯ͍ͨ͠ • ͪΖΜopenapiύοέʔδʹॻ͚ͳ͍ • ؔ࡞ͬͯҾʁ • ໊લۭؒʹؾΛ͚ͭΔඞཁ͋Γ •
ผͷstructʹຒΊࠐΉʁ • ྑ͍͚ͲΊΜͲ͍͘͞
ଥڠతίʔυੜ • Swagger UI͔ΒJSONΛCtrl+C • ChimeraCoder/gojsonͰJSON͔ΒgoͷstructΛੜ • ͦΕΛ͋ͬͯ΄͍͠goϑΝΠϧʹషΔʂ
ͦͦεΩʔϚۦಈͷϞνϕͬͯʁ αʔόˠϑϩϯτͱ͍͏։ൃͷྲྀΕ ↓ ը໘͕ग़དྷ্͕ͬͯ͘ΔͱશํҐ͔ΒϑΟʔυόοΫ͕དྷΔ ↓ ϑϩϯτ͕UI͍ͯ͠Δ͏ͪʹαʔό৭ʑվम͢Δʢ߹ʹΑͬͯ APIมߋ… ↓ ϑϩϯτਵ͢Δ͕ɺUIζϨΔ… ͱϑϩϯτʹγϫدͤߦ͖͕ͪ
ͳͷͰϑϩϯτͱαʔό͕ಉ࣌ฒߦͰਐΊΕΔΑ͏ʹͱΓ͋͑ͣҰ୴API ༷ΛܾΊΔ͔͠ͳ͍ ͍ͭͰʹن֨Խ͞ΕͨAPIυΩϡϝϯτͱMock͕Ͱ͖Δͷศར
εΩʔϚΛܾΊͨ͘ͳ͍ཧ༝ Userͱ͍͏ߏମ͕͋Δͱ͢Δɻ ͦΕʹNameAgeͱ͍ͬͨଐੑΛՃ͍ͯ͘͠ɻ ຊͲ͕ͬͪઌʹ͋Δʁʁ
ଐੑ͕ઌͩͱࢥ͏ ଐੑΛʹྫ͑ΔͱɺߏମʢεΩʔϚʣ࠲ ։ൃதʹ֤ؔऀ͕ΛͲΜͲΜݟ͚ͭͯ͘Δ ͦͷࡍʹ࠲ΛΧνοͱܾΊ͗͢Δͱ৽͕͘͠ݟ͔ͭͬͨͱ͖ʹۙͷ ࠲ʹΈࠐΜͰ͠·͏
εΩʔϚʢԾʣۦಈ։ൃͷεεϝ • ͱΓ͋͑ͣલʹਐΉͨΊʹAPIεΩʔϚʢԾʣ Λ࡞Δ • ৽ن։ൃ࣌ޓੑΕͯΨϯΨϯഁյత มߋ͢͠ • ͍ͭͰʹAPIυΩϡϝϯτͱMockͰ͖Δͱศ རͩΑͶ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠