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
610
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
140
Cleanup handling in Go / Go Conference 2024
k1low
6
2.8k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
7.2k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
2.5k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
200
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.2k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
3
1.3k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
3
5k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.8k
Other Decks in Technology
See All in Technology
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
1
2.3k
新しいことを組織ではじめる、そしてつづける
kzkmaeda
4
380
【Λ(らむだ)最近のアプデ情報 / RPALT20240904
lambda
0
170
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
220
標準ライブラリの奥深アップデートを掘り下げよう!
logica0419
2
420
#Zenoh 完全に理解した 〜組込み純情篇〜
takasehideki
1
450
contenteditableと向き合う
kikuchikakeru
2
170
開発者体験を意識した開発チームの生産性向上の取り組み
ham0215
3
670
APIのドキュメント化何使ってますか?
miu_crescent
2
160
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
41k
Oracle Database Backup Service:サービス概要のご紹介
oracle4engineer
PRO
0
4k
[RSJ24] Object Segmentation from Open-Vocabulary Manipulation Instructions Based on Optimal Transport Polygon Matching with Foundation Models
keio_smilab
PRO
0
130
Featured
See All Featured
Fireside Chat
paigeccino
31
2.9k
Gamification - CAS2011
davidbonilla
79
4.9k
4 Signs Your Business is Dying
shpigford
179
21k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Clear Off the Table
cherdarchuk
90
320k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
42
2k
In The Pink: A Labor of Love
frogandcode
139
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
The Invisible Customer
myddelton
119
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
A Modern Web Designer's Workflow
chriscoyier
690
190k
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