Upgrade to Pro — share decks privately, control downloads, hide ads and more …

tblsで実現したいシステムとGoによるその実装 / Fukuoka.go#16

tblsで実現したいシステムとGoによるその実装 / Fukuoka.go#16

Ken’ichiro Oyama

July 14, 2020
Tweet

More Decks by Ken’ichiro Oyama

Other Decks in Technology

Transcript

  1. খࢁ݈Ұ࿠(.01FQBCP *OD
    'VLVPLBHP
    UCMTͰ࣮ݱ͍ͨ͠γεςϜͱ
    (PʹΑΔͦͷ࣮૷

    View Slide

  2. ϓϦϯγύϧΤϯδχΞ
    খࢁ݈Ұ࿠!L-P8
    ϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓϚωʔδυΫϥ΢υνʔϜ
    IUUQTHJUIVCDPNL-P8

    View Slide


  3. View Slide

  4. ΞδΣϯμ
    w UCMTʹ͍ͭͯ
    w ࣮ݱ͍ͨ͠γεςϜUCMTΛ༻͍ͨύΠϓϥΠϯ
    w ࣮ݱ͍ͨ͠γεςϜUCMTΛத৺ͱͨ͠ΤίγεςϜ
    w ·ͱΊ
    ˞۩ମతͳιʔείʔυͳͲ΁ͷϦϯΫΛ(JTUʹ·ͱΊ͍ͯ·͢ɻ
    IUUQTHJUJPGVLVPLBHPLMPX
    Ϧετͷ൪߸ͱϚʔΫ͕ϦϯΫ͍ͯ͠·͢ͷͰ͚ٓ͠Ε͹߹Θͤͯ͝ཡ͍ͩ͘͞

    ˞

    View Slide


  5. View Slide

  6. UCMT
    w $*ϑϨϯυϦͳσʔλϕʔευΩϡϝϯτੜ੒πʔϧ
    w IUUQTHJUIVCDPNL-P8UCMT W

    w $*ϑϨϯυϦϫϯόΠφϦ
    w 1PTUHSF42- .Z42-ͳͲͷ3%#.4͚ͩͰͳ͘ɺ#JH2VFSZ΍"NB[PO
    %ZOBNP%# $MPVE4QBOOFSͱ͍ͬͨσʔλιʔεʹ΋ରԠ

    View Slide

  7. UCMTʹΑΔυΩϡϝϯτੜ੒
    w ҎԼͷΑ͏ͳઃఆϑΝΠϧʢUCMTZNMʣΛॻ͍ͯίϚϯυΛ࣮ߦ͢ΔͱEPD
    TDIFNBʹυΩϡϝϯτ͕ੜ੒͞ΕΔ

    View Slide

  8. UCMTͷυΩϡϝϯτੜ੒ͷ࢓૊Έ
    UCMTZNMͷAETOAʹࢦఆ͞Εͨσʔλιʔε͔ΒεΩʔϚ৘ใΛऔಘ
    UCMTZNMʹ͋Δίϝϯτ৘ใ΍ϦϨʔγϣϯ৘ใͰεΩʔϚ৘ใΛ֦ॆ
    ͷεΩʔϚ৘ใʢͱ&3ਤ΍දهͳͲͷUCMTZNMͷ࢒Γͷઃఆ৘ใʣͰυΩϡϝϯτ
    Λग़ྗ
    w42-JUFͷυΩϡϝϯτʹίϝϯτΛ෇༩ͨ͠Γɺ#JH2VFSZͷ&3ਤʹϦϨʔγϣϯ
    Λ෇༩͢Δ͜ͱ΋Մೳ

    View Slide

  9. UCMTΛ༻͍ͨύΠϓϥΠϯ

    View Slide

  10. UCMTͷΞʔΩςΫνϟ
    σʔλιʔε͔ΒεΩʔϚ৘ใΛऔಘ͢Δ *OQVU

    w਺ଟ͘ͷσʔλιʔεΛαϙʔτ͍ͯ͠Δ
    εΩʔϚ৘ใΛૢ࡞͢Δ .BOJQVMBUF

    εΩʔϚ৘ใ͔ΒΞ΢τϓοτΛੜ੒͢Δ 0VUQVU

    w.BSLEPXO͚ͩͰ͸ͳ͘+40/΍1MBOU6.-ɺEPUɺ&YFDFMͳͲΛඪ४αϙʔτ

    View Slide

  11. UCMTͷΞʔΩςΫνϟ

    View Slide

  12. ύΠϓϥΠϯ UCMTTDIFNBKTPOUCMT

    wUCMT͸+40/ܗࣜͷϑΝΠϧΛೖྗσʔλιʔεͱͯ͠औΓѻ͑ΔʢTDIFNBKTPOʣ

    wεΩʔϚ৘ใ͔Β+40/ܗࣜʢTDIFNBKTPOʣͰग़ྗՄೳ

    wUCMTͷग़ྗΛUCMTͷೖྗͱͯ͠औΓѻ͑Δɻͦͷࡍʹσʔλͷܽଛ͸ͳ͠

    View Slide

  13. ύΠϓϥΠϯ UCMTTDIFNBKTPOUCMT

    wUCMTͷػೳ͚ͩͰ*OQVUͱ0VUQVUΛͭͳ͛Δ͜ͱ͕Ͱ͖Δ
    wUCMTͷTDIFNBKTPOΛதؒϑΥʔϚοτͱͨ͠ύΠϓϥΠϯΛߏஙͰ͖Δ
    wྫʮσʔλϕʔεʹ઀ଓͯ͠TDIFNBKTPOΛੜ੒͢ΔʯͱʮTDIFNBKTPOʢͱ
    UCMTZNMʣ͔ΒυΩϡϝϯτΛੜ੒͢Δʯͱ࣮ߦ؀ڥΛ෼཭
    wຊ൪%#͔ΒεΩʔϚ৘ใΛऔಘ͠΍͘͢ͳΔ

    View Slide

  14. TDIFNB4DIFNBʢ؆ུԽ7FSʣ

    ˞

    View Slide

  15. 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ߏ଄ʹͳΒͳ͍Α͏ʹߏ଄ମؒͷؔ࿈Λ੾Δඞཁ͕͋Δ

    ˞

    View Slide

  16. .BSTIBM+40/

    ߏ଄ମΛจࣈྻʹม׵
    ˞

    View Slide

  17. TDIFNB4DIFNB+40/TDIFNB4DIFNB
    wUCMTʹ͓͍ͯ͸4DIFNB͔ΒTDIFNBKTPO͚ͩͰͳ͘TDIFNBKTPO͔Β4DIFNB΋
    σʔλͷܽଛͳ͘ੜ੒Ͱ͖Δඞཁ͕͋Δ
    wͦΕͧΕͷߏ଄ମʹ6ONBSTIBM+40/Λ༻ҙ͢Δ͚ͩͰ͸೉͍͠
    w3FQBJS
    ͱ͍͏ؔ਺Λ༻ҙͯ͠KTPO6ONBSTIBMʢਖ਼֬ʹ͸KTPO%FDPEFS%FDPEFʣ
    ޙʹ৘ใͷ෮چΛ࣮ߦ
    wͳͥ6ONBSTIBMޙͳͷ͔ͱ͍͏ͱɺݩͷঢ়ଶʹम෮͢ΔͨΊʹ͸εΩʔϚͷ৘ใ͕
    શͯඞཁ͔ͩΒɻ
    wʮ4DIFNB಺Ͱ͸ςʔϒϧ໊͸ϢχʔΫͰ͋Δʯʮςʔϒϧ಺Ͱ͸ΧϥϜ໊͸Ϣχʔ
    ΫͰ͋Δʯͱ͍͏%#ಛ༗ͷ੍໿৚݅Λ͏·͘׆༻ͯ͠จࣈྻ͔Βߏ଄ମΛಛఆͯ͠
    ม׵

    ˞
    ˞

    View Slide

  18. UCMTΛத৺ͱͨ͠ΤίγεςϜ

    View Slide

  19. ׆༻༻్Λ֦͛ΔͨΊͷ֦ுՄೳͳΞʔΩςΫνϟ
    wUCMT͸ɺ4DIFNBߏ଄ମΛத৺ͱͯ͠*OQVUɺ.BOVQJMBUFɺ0VUQVUͷͭʹ෼͔Ε
    ͍ͯΔΞʔΩςΫνϟ
    wUCMTͷ׆༻༻్Λ֦͛Α͏ͱͨ͠৔߹ɺΞʔΩςΫνϟͷ֤෦෼͕֦ுɾ୅ସ͠΍͍͢
    ͜ͱ͕๬·͍͠
    w֦ுɾ୅ସͰ͖ΔͱUCMTΛ࠶ར༻͍ͯ͠Ζ͍Ζͳ͜ͱ͕࣮ݱͰ͖ͦ͏ͩͱߟ͍͑ͯΔ
    wUCMTΛ࠶ར༻͍ͭͭ͠Ζ͍Ζͳ͜ͱΛ࣮ݱʹUCMTΛத৺ͱͨ͠ΤίγεςϜ

    View Slide

  20. ֦ுΞΠσΞྫ
    w#JH2VFSZ΁ͷϝλσʔλͷ൓ө

    wએݴతϚΠάϨʔγϣϯػೳͷ࣮ݱʢSJEHFQPMF΍TRMEFGͷΑ͏ͳػೳʣ

    wಛघͳσʔλιʔεͷαϙʔτ

    ˞

    View Slide

  21. ׆༻༻్Λ֦͛ΔͨΊͷ֦ுՄೳͳΞʔΩςΫνϟ
    w*OQVU͸TDIFNBKTPOΛੜ੒Ͱ͖Ε͹UCMT͕ಡΈࠐΊΔͷͰ༰қʹ֦ுՄೳ
    w.BOVQJMBUFͱ0VUQVUΛ֦ுɾ୅ସ͠΍͘͢͢ΔͨΊʹUCMT͸֎෦αϒίϚϯυͱݺ
    ΜͰ͍ΔػߏΛ࣋ͭ

    View Slide

  22. ֎෦αϒίϚϯυ
    w(JU͕AHJUGPPAΛAHJUGPPAͱαϒίϚϯυͱͯ͠ೝࣝͨ͠ΓɺLVCFUDM͕ALVCFDUM
    CBSAΛALVCFDUMCBSAͱೝࣝͨ͠Γ͢ΔΞϨ
    wUCMTͷ֎෦αϒίϚϯυ͸
    wAD DPOpH
    AΦϓγϣϯ͸਌ίϚϯυͷUCMT͕ୣ͏
    wUCMT͕ETOઃఆʹج͍ͮͯ*OQVUͷॲཧΛ୅ΘΓʹ࣮ߦ͠ɺ؀ڥม਺ܦ༝Ͱ
    TDIFNBKTPOΛαϒίϚϯυʹ౉͢
    wUCMTΛύοέʔδͱͯ͠Έͨͱ͖ɺTDIFNBKTPOΛ4DIFNBʹΞϯγϦΞϥΠζ͢Δ
    ؔ਺͕QVCMJDͰఏڙ͞Ε͍ͯΔͷͰɺͦΕΛར༻͢Δ͜ͱ΋Մೳ

    ˞
    ˞

    View Slide

  23. ֎෦αϒίϚϯυͷίϚϯυิ׬
    wίϚϯυͷิ׬΋؀ڥॆ࣮ͷͨΊʹ͸ඞཁ
    wUCMT͸TQGDPCSBͱ͍͏$-*ϑϨʔϜϫʔΫΛ࠾༻͍ͯ͠ΔʢҎԼDPCSBʣ
    wͦͯ͠DPCSBʹ͸4IFMM$PNQMFUJPOग़ྗػೳ͕࣮૷͞Ε͓ͯΓɺUCMT͸͜ΕΛར༻͠
    ͯίϚϯυิ׬ػೳΛ࣮ݱ

    View Slide

  24. TQGDPCSBͷ4IFMM$PNQMFUJPOग़ྗػೳ
    wDPCSBͷϧʔϧʹԊͬͯίϚϯυ΍αϒίϚϯυΛ࡞͍ͬͯΔͱɺ#BTI΍;TIͳͲͦ
    ΕͧΕʹରԠ͢Δิ׬εΫϦϓτΛࣗಈੜ੒ͯ͘͠ΕΔͱ͍͏ศརػೳ

    ˞

    View Slide

  25. ৽͍͠4IFMM$PNQMFUJPOͷ࣮૷
    wैདྷʜิ׬ػೳΛੜ੒͢Δิ׬εΫϦϓτʢ4IFMMʹΑͬͯҟͳΔʣଆͰ࣮ݱ
    w4IFMMͷछྨ͝ͱͷิ׬εΫϦϓτͰ࣮૷͢Δඞཁ͕͋ͬͨ
    w৽ʜิ׬ػೳ෦෼Λ(PଆͰ࣮૷֤ͯ͠ิ׬εΫϦϓτ͸ͦΕΛݺͼग़͢ܗͰ࣮ݱ
    w۩ମతʹ͸ɺӅ͠ίϚϯυͱͯ͠A@@DPNQMFUFAA@@DPNQMFUF/P%FTDAʢσϑΥϧτʣ͕উखʹ࡞੒͞Εɺ
    4IFMM$PNQMFUJPOग़ྗػೳͰग़ྗ͞ΕΔิ׬εΫϦϓτͰ͸ɺ͜ΕΒͷӅ͠ίϚϯυΛୟ͍ͯิ׬ީิΛग़
    ͢Α͏ʹͳ͍ͬͯΔɻ
    wಈతͳิ׬ީิΛ࣮ݱ͠΍͘͢ͳͬͨ A7BMJE"SHT'VODUJPOA

    w#BTI΍;TI΍'JTIɺ1PXFS4IFMMͳͲɺෳ਺छྨͷิ׬εΫϦϓτΛ࣮૷͠΍͘͢ͳͬ
    ͨ

    ˞
    ˞

    View Slide

  26. UCMTͰͷ֎෦αϒίϚϯυͷิ׬ػೳͷ࣮૷
    wAUCMTGPP<5"#>AͰิ׬͕ޮ͘ͳΒAUCMTGPP<5"#>AͰ΋ಉ͡ิ׬Λޮ͔͍ͤͨ
    wैདྷʜʮ֎෦αϒίϚϯυͷϦετΞοϓʯʮ֎෦αϒίϚϯυͷิ׬ʯΛ֤4IFMMͷ
    ิ׬εΫϦϓτ͝ͱʹ֦ு͍ͯͨ͠
    w֎෦αϒίϚϯυͷิ׬͸֎෦αϒίϚϯυͷิ׬ؔ਺Λݺͼग़͢Α͏ʹ࣮૷
    w৽ʜADPCSB$PNNBOEAͷA7BMJE"SHT'VODUJPOAΛ(PͰ࣮૷͢Ε͹ྑ͘ͳͬͨ
    w֎෦αϒίϚϯυͷิ׬͸AUCMTGPP@@DPNQMFUFAΛPTFYFDͰ࣮ߦ͢Δ͜ͱͰऔ

    wͨͩɺࠓͷ࣮૷ͩͱ֎෦αϒίϚϯυʹA@@DPNQMFUFAίϚϯυΛཁٻ͢Δ͜ͱʹ
    ͳΔͷͰվળݕ౼த

    ˞
    ˞

    View Slide

  27. ·ͱΊ

    View Slide

  28. ·ͱΊ
    wUCMTͰ࣮ݱ͍ͨ͠γεςϜʢύΠϓϥΠϯɺΤίγεςϜʣͱͦΕΛ࣮ݱ͢ΔͨΊʹඞ
    ཁʹͳͬͯ͘Δཁૉʹ͍ͭͯͲͷΑ͏ʹ࣮૷͍ͯ͠Δ͔Λ঺հͨ͠
    w$ZDMFߏ଄ʹͳ͍ͬͯΔߏ଄ମΛ੍໿৚݅Λར༻ͯ͠+40/ʹՄٯม׵
    w$-*ϑϨʔϜϫʔΫͷػೳΛ׆༻ͨ͠֎෦αϒίϚϯυͷίϚϯυิ׬
    wϑΟʔυόοΫΛ͓଴͍ͪͯ͠·͢

    View Slide

  29. 5IBOLZPV
    ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU

    View Slide