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
720
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
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
87
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
9
5.4k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
8.3k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
340
Cleanup handling in Go / Go Conference 2024
k1low
6
3.7k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
11k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
3.4k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
300
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.4k
Other Decks in Technology
See All in Technology
Browser
recruitengineers
PRO
8
2.3k
ガチな登山用デバイスからこんにちは
halka
1
210
Flutterでキャッチしないエラーはどこに行く
taiju59
0
210
進捗
ydah
2
230
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
110
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
270
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
110
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
250
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
220
生成AI時代のデータ基盤
shibuiwilliam
4
3.1k
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
1
1.8k
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
660
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
Why Our Code Smells
bkeepers
PRO
339
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1.1k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Six Lessons from altMBA
skipperchong
28
4k
How STYLIGHT went responsive
nonsquared
100
5.8k
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