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
tblsで実現したいシステムとGoによるその実装 / Fukuoka.go#16
Search
Ken’ichiro Oyama
July 14, 2020
Technology
1
630
tblsで実現したいシステムとGoによるその実装 / Fukuoka.go#16
Fukuoka.go#16
https://fukuokago.connpass.com/event/180414/
付録
https://git.io/fukuokago16-k1low
Ken’ichiro Oyama
July 14, 2020
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
1
180
Cleanup handling in Go / Go Conference 2024
k1low
6
3.1k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
8.5k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
2.8k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
220
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.3k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
3
1.4k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
4
5.8k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.9k
Other Decks in Technology
See All in Technology
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
いざ、BSC討伐の旅
nikinusu
2
780
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
The Rise of LLMOps
asei
5
1.3k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Thoughts on Productivity
jonyablonski
67
4.3k
A Philosophy of Restraint
colly
203
16k
The Invisible Side of Design
smashingmag
298
50k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Unsuck your backbone
ammeep
668
57k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Fireside Chat
paigeccino
34
3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
KATA
mclloyd
29
14k
Transcript
খࢁ݈Ұ(.01FQBCP *OD 'VLVPLBHP UCMTͰ࣮ݱ͍ͨ͠γεςϜͱ (PʹΑΔͦͷ࣮
ϓϦϯγύϧΤϯδχΞ খࢁ݈Ұ!L-P8 ϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓϚωʔδυΫϥυνʔϜ IUUQTHJUIVCDPNL-P8
ΞδΣϯμ w UCMTʹ͍ͭͯ w ࣮ݱ͍ͨ͠γεςϜUCMTΛ༻͍ͨύΠϓϥΠϯ w ࣮ݱ͍ͨ͠γεςϜUCMTΛத৺ͱͨ͠ΤίγεςϜ w ·ͱΊ ˞۩ମతͳιʔείʔυͳͲͷϦϯΫΛ(JTUʹ·ͱΊ͍ͯ·͢ɻ
IUUQTHJUJPGVLVPLBHPLMPX Ϧετͷ൪߸ͱϚʔΫ͕ϦϯΫ͍ͯ͠·͢ͷͰ͚ٓ͠Ε߹Θͤͯ͝ཡ͍ͩ͘͞ ˞
UCMT w $*ϑϨϯυϦͳσʔλϕʔευΩϡϝϯτੜπʔϧ w IUUQTHJUIVCDPNL-P8UCMT W w $*ϑϨϯυϦϫϯόΠφϦ w
1PTUHSF42- .Z42-ͳͲͷ3%#.4͚ͩͰͳ͘ɺ#JH2VFSZ"NB[PO %ZOBNP%# $MPVE4QBOOFSͱ͍ͬͨσʔλιʔεʹରԠ
UCMTʹΑΔυΩϡϝϯτੜ w ҎԼͷΑ͏ͳઃఆϑΝΠϧʢUCMTZNMʣΛॻ͍ͯίϚϯυΛ࣮ߦ͢ΔͱEPD TDIFNBʹυΩϡϝϯτ͕ੜ͞ΕΔ
UCMTͷυΩϡϝϯτੜͷΈ UCMTZNMͷAETOAʹࢦఆ͞Εͨσʔλιʔε͔ΒεΩʔϚใΛऔಘ UCMTZNMʹ͋ΔίϝϯτใϦϨʔγϣϯใͰεΩʔϚใΛ֦ॆ ͷεΩʔϚใʢͱ&3ਤදهͳͲͷUCMTZNMͷΓͷઃఆใʣͰυΩϡϝϯτ Λग़ྗ w42-JUFͷυΩϡϝϯτʹίϝϯτΛ༩ͨ͠Γɺ#JH2VFSZͷ&3ਤʹϦϨʔγϣϯ Λ༩͢Δ͜ͱՄೳ
UCMTΛ༻͍ͨύΠϓϥΠϯ
UCMTͷΞʔΩςΫνϟ σʔλιʔε͔ΒεΩʔϚใΛऔಘ͢Δ *OQVU wଟ͘ͷσʔλιʔεΛαϙʔτ͍ͯ͠Δ εΩʔϚใΛૢ࡞͢Δ .BOJQVMBUF εΩʔϚใ͔ΒΞτϓοτΛੜ͢Δ 0VUQVU
w.BSLEPXO͚ͩͰͳ͘+40/1MBOU6.-ɺEPUɺ&YFDFMͳͲΛඪ४αϙʔτ
UCMTͷΞʔΩςΫνϟ
ύΠϓϥΠϯ UCMTTDIFNBKTPOUCMT wUCMT+40/ܗࣜͷϑΝΠϧΛೖྗσʔλιʔεͱͯ͠औΓѻ͑ΔʢTDIFNBKTPOʣ wεΩʔϚใ͔Β+40/ܗࣜʢTDIFNBKTPOʣͰग़ྗՄೳ wUCMTͷग़ྗΛUCMTͷೖྗͱͯ͠औΓѻ͑Δɻͦͷࡍʹσʔλͷܽଛͳ͠
ύΠϓϥΠϯ UCMTTDIFNBKTPOUCMT wUCMTͷػೳ͚ͩͰ*OQVUͱ0VUQVUΛͭͳ͛Δ͜ͱ͕Ͱ͖Δ wUCMTͷTDIFNBKTPOΛதؒϑΥʔϚοτͱͨ͠ύΠϓϥΠϯΛߏஙͰ͖Δ wྫʮσʔλϕʔεʹଓͯ͠TDIFNBKTPOΛੜ͢ΔʯͱʮTDIFNBKTPOʢͱ UCMTZNMʣ͔ΒυΩϡϝϯτΛੜ͢Δʯͱ࣮ߦڥΛ wຊ൪%#͔ΒεΩʔϚใΛऔಘ͘͢͠ͳΔ
TDIFNB4DIFNBʢ؆ུԽ7FSʣ ˞
TDIFNB4DIFNB+40/TDIFNB4DIFNB wߏମΛ+40/ʹͨ͠Γɺ+40/͔Βߏମʹͨ͠Γͱ͍͏ػೳͰࢥ͍ͭ͘ͷ KTPO.BSTIBMKTPO6ONBSTIBM wߏମʹAKTPOAͷλάΛ͚͚ͨͩͰෆे wྫ͑3FMBUJPOͳͲ͕໘ w5BCMF$PMVNOTͱ͋Δ5BCMF$PMVNOTͷؔੑΛදݱ͢Δߏମ wߏମͷؔ࿈͕$ZDMFߏʹͳ͍ͬͯΔ w͜ͷ··KTPO.BSTIBM࣮ߦ͢ΔͱSVOUJNFHPSPVUJOFTUBDLFYDFFET CZUFMJNJUΤϥʔ w$ZDMFߏʹͳΒͳ͍Α͏ʹߏମؒͷؔ࿈ΛΔඞཁ͕͋Δ
˞
.BSTIBM+40/ ߏମΛจࣈྻʹม ˞
TDIFNB4DIFNB+40/TDIFNB4DIFNB wUCMTʹ͓͍ͯ4DIFNB͔ΒTDIFNBKTPO͚ͩͰͳ͘TDIFNBKTPO͔Β4DIFNB σʔλͷܽଛͳ͘ੜͰ͖Δඞཁ͕͋Δ wͦΕͧΕͷߏମʹ6ONBSTIBM+40/Λ༻ҙ͢Δ͚ͩͰ͍͠ w3FQBJS ͱ͍͏ؔΛ༻ҙͯ͠KTPO6ONBSTIBMʢਖ਼֬ʹKTPO%FDPEFS%FDPEFʣ ޙʹใͷ෮چΛ࣮ߦ wͳͥ6ONBSTIBMޙͳͷ͔ͱ͍͏ͱɺݩͷঢ়ଶʹम෮͢ΔͨΊʹεΩʔϚͷใ͕ શͯඞཁ͔ͩΒɻ wʮ4DIFNBͰςʔϒϧ໊ϢχʔΫͰ͋ΔʯʮςʔϒϧͰΧϥϜ໊Ϣχʔ
ΫͰ͋Δʯͱ͍͏%#ಛ༗ͷ੍݅Λ͏·͘׆༻ͯ͠จࣈྻ͔ΒߏମΛಛఆͯ͠ ม ˞ ˞
UCMTΛத৺ͱͨ͠ΤίγεςϜ
׆༻༻్Λ֦͛ΔͨΊͷ֦ுՄೳͳΞʔΩςΫνϟ wUCMTɺ4DIFNBߏମΛத৺ͱͯ͠*OQVUɺ.BOVQJMBUFɺ0VUQVUͷͭʹ͔Ε ͍ͯΔΞʔΩςΫνϟ wUCMTͷ׆༻༻్Λ֦͛Α͏ͱͨ͠߹ɺΞʔΩςΫνϟͷ֤෦͕֦ுɾସ͍͢͠ ͜ͱ͕·͍͠ w֦ுɾସͰ͖ΔͱUCMTΛ࠶ར༻͍ͯ͠Ζ͍Ζͳ͜ͱ͕࣮ݱͰ͖ͦ͏ͩͱߟ͍͑ͯΔ wUCMTΛ࠶ར༻͍ͭͭ͠Ζ͍Ζͳ͜ͱΛ࣮ݱʹUCMTΛத৺ͱͨ͠ΤίγεςϜ
֦ுΞΠσΞྫ w#JH2VFSZͷϝλσʔλͷө wએݴతϚΠάϨʔγϣϯػೳͷ࣮ݱʢSJEHFQPMFTRMEFGͷΑ͏ͳػೳʣ wಛघͳσʔλιʔεͷαϙʔτ ˞
׆༻༻్Λ֦͛ΔͨΊͷ֦ுՄೳͳΞʔΩςΫνϟ w*OQVUTDIFNBKTPOΛੜͰ͖ΕUCMT͕ಡΈࠐΊΔͷͰ༰қʹ֦ுՄೳ w.BOVQJMBUFͱ0VUQVUΛ֦ுɾସ͘͢͢͠ΔͨΊʹUCMT֎෦αϒίϚϯυͱݺ ΜͰ͍ΔػߏΛ࣋ͭ
֎෦αϒίϚϯυ w(JU͕AHJUGPPAΛAHJUGPPAͱαϒίϚϯυͱͯ͠ೝࣝͨ͠ΓɺLVCFUDM͕ALVCFDUM CBSAΛALVCFDUMCBSAͱೝࣝͨ͠Γ͢ΔΞϨ wUCMTͷ֎෦αϒίϚϯυ wAD DPOpH AΦϓγϣϯίϚϯυͷUCMT͕ୣ͏ wUCMT͕ETOઃఆʹج͍ͮͯ*OQVUͷॲཧΛΘΓʹ࣮ߦ͠ɺڥมܦ༝Ͱ TDIFNBKTPOΛαϒίϚϯυʹ͢ wUCMTΛύοέʔδͱͯ͠Έͨͱ͖ɺTDIFNBKTPOΛ4DIFNBʹΞϯγϦΞϥΠζ͢Δ
͕ؔQVCMJDͰఏڙ͞Ε͍ͯΔͷͰɺͦΕΛར༻͢Δ͜ͱՄೳ ˞ ˞
֎෦αϒίϚϯυͷίϚϯυิ wίϚϯυͷิڥॆ࣮ͷͨΊʹඞཁ wUCMTTQGDPCSBͱ͍͏$-*ϑϨʔϜϫʔΫΛ࠾༻͍ͯ͠ΔʢҎԼDPCSBʣ wͦͯ͠DPCSBʹ4IFMM$PNQMFUJPOग़ྗػೳ͕࣮͞Ε͓ͯΓɺUCMT͜ΕΛར༻͠ ͯίϚϯυิػೳΛ࣮ݱ
TQGDPCSBͷ4IFMM$PNQMFUJPOग़ྗػೳ wDPCSBͷϧʔϧʹԊͬͯίϚϯυαϒίϚϯυΛ࡞͍ͬͯΔͱɺ#BTI;TIͳͲͦ ΕͧΕʹରԠ͢ΔิεΫϦϓτΛࣗಈੜͯ͘͠ΕΔͱ͍͏ศརػೳ ˞
৽͍͠4IFMM$PNQMFUJPOͷ࣮ wैདྷʜิػೳΛੜ͢ΔิεΫϦϓτʢ4IFMMʹΑͬͯҟͳΔʣଆͰ࣮ݱ w4IFMMͷछྨ͝ͱͷิεΫϦϓτͰ࣮͢Δඞཁ͕͋ͬͨ w৽ʜิػೳ෦Λ(PଆͰ࣮֤ͯ͠ิεΫϦϓτͦΕΛݺͼग़͢ܗͰ࣮ݱ w۩ମతʹɺӅ͠ίϚϯυͱͯ͠A@@DPNQMFUFAA@@DPNQMFUF/P%FTDAʢσϑΥϧτʣ͕উखʹ࡞͞Εɺ 4IFMM$PNQMFUJPOग़ྗػೳͰग़ྗ͞ΕΔิεΫϦϓτͰɺ͜ΕΒͷӅ͠ίϚϯυΛୟ͍ͯิީิΛग़ ͢Α͏ʹͳ͍ͬͯΔɻ wಈతͳิީิΛ࣮ݱ͘͢͠ͳͬͨ A7BMJE"SHT'VODUJPOA
w#BTI;TI'JTIɺ1PXFS4IFMMͳͲɺෳछྨͷิεΫϦϓτΛ࣮͘͢͠ͳͬ ͨ ˞ ˞
UCMTͰͷ֎෦αϒίϚϯυͷิػೳͷ࣮ wAUCMTGPP<5"#>AͰิ͕ޮ͘ͳΒAUCMTGPP<5"#>AͰಉ͡ิΛޮ͔͍ͤͨ wैདྷʜʮ֎෦αϒίϚϯυͷϦετΞοϓʯʮ֎෦αϒίϚϯυͷิʯΛ֤4IFMMͷ ิεΫϦϓτ͝ͱʹ֦ு͍ͯͨ͠ w֎෦αϒίϚϯυͷิ֎෦αϒίϚϯυͷิؔΛݺͼग़͢Α͏ʹ࣮ w৽ʜADPCSB$PNNBOEAͷA7BMJE"SHT'VODUJPOAΛ(PͰ࣮͢Εྑ͘ͳͬͨ w֎෦αϒίϚϯυͷิAUCMTGPP@@DPNQMFUFAΛPTFYFDͰ࣮ߦ͢Δ͜ͱͰऔ ಘ wͨͩɺࠓͷ࣮ͩͱ֎෦αϒίϚϯυʹA@@DPNQMFUFAίϚϯυΛཁٻ͢Δ͜ͱʹ ͳΔͷͰվળݕ౼த
˞ ˞
·ͱΊ
·ͱΊ wUCMTͰ࣮ݱ͍ͨ͠γεςϜʢύΠϓϥΠϯɺΤίγεςϜʣͱͦΕΛ࣮ݱ͢ΔͨΊʹඞ ཁʹͳͬͯ͘Δཁૉʹ͍ͭͯͲͷΑ͏ʹ࣮͍ͯ͠Δ͔Λհͨ͠ w$ZDMFߏʹͳ͍ͬͯΔߏମΛ੍݅Λར༻ͯ͠+40/ʹՄٯม w$-*ϑϨʔϜϫʔΫͷػೳΛ׆༻ͨ͠֎෦αϒίϚϯυͷίϚϯυิ wϑΟʔυόοΫΛ͓͍ͪͯ͠·͢
5IBOLZPV ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU