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
570
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
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
5k
Command-line interface tool design / PHPerKaigi 2024
k1low
6
1.3k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
150
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.1k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
1
940
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
3
4.2k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.5k
Win Testing Trophy Easily / テスティングトロフィーを獲得する / PHPerKaigi 2023
k1low
6
3.3k
runnによるAPIのシナリオテストの導入と自動化 / stac2022
k1low
11
3.5k
Other Decks in Technology
See All in Technology
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
180
認知症フレンドリーテックとスタックチャン
naokiuc
0
310
Azureの基本的な権限管理の勉強会
yhana
1
2.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
710
LLMアプリケーション_リリース後の苦労とGROW.pdf
horiuchie
0
140
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
280
同じ様なUIをiOS/Android間で合わせるヒントNo.2
fumiyasac0921
1
100
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
6
1.2k
高専で制御を、大学でセンシングを学び、次は脳みそ
satoshirobatofujimoto
0
120
社内アプリで Cloudflare D1を プロダクト運用してみた体験談(Tokyo)
haochenx
0
130
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
340
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Facilitating Awesome Meetings
lara
43
5.6k
GitHub's CSS Performance
jonrohan
1025
450k
Become a Pro
speakerdeck
PRO
13
4.6k
The Mythical Team-Month
searls
217
42k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Done Done
chrislema
178
15k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Building Applications with DynamoDB
mza
88
5.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
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