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
190928_TokyoR81_Shiny
Search
okiyuki
September 18, 2019
Technology
3
2.1k
190928_TokyoR81_Shiny
Tokyo.R #81 応用セッション Shiny Appを支えるエンジニアリング (+おまけ)
okiyuki
September 18, 2019
Tweet
Share
More Decks by okiyuki
See All by okiyuki
dbtとLightdash を社内へ浸透させるまでの取り組み / Integrate dbt and Lightdash into Ubie
okiyuki99
6
890
Ubieのデータ品質の検査・維持・向上への取り組み
okiyuki99
3
2.4k
191016_KDD2019_Reading
okiyuki99
3
2.1k
Other Decks in Technology
See All in Technology
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
610
「現場で活躍するAIエージェント」を実現するチームと開発プロセス
tkikuchi1002
3
360
推し書籍📚 / Books and a QA Engineer
ak1210
0
140
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
1
340
ClaudeCode_vs_GeminiCLI_Terraformで比較してみた
tkikuchi
1
1.2k
United™️ Airlines®️ Customer®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedguide
0
800
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
2
2.1k
LLM拡張解体新書/llm-extension-deep-dive
oracle4engineer
PRO
23
6.3k
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
200
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
750
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
1
180
セキュアな社内Dify運用と外部連携の両立 ~AIによるAPIリスク評価~
zozotech
PRO
0
120
Featured
See All Featured
A better future with KSS
kneath
238
17k
Adopting Sorbet at Scale
ufuk
77
9.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Agile that works and the tools we love
rasmusluckow
329
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Designing for Performance
lara
610
69k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
KATA
mclloyd
30
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Bash Introduction
62gerente
613
210k
Transcript
4IJOZ"QQΛࢧ͑ΔΤϯδχΞϦϯά 5PLZP3 .PUPZVLJ0,* !PLJZVLJ
ͩΕΑʁ • .PUPZVLJ0,* !PLJZVLJ • %BUB4DJFOUJTU!-*/& • ϐΫςϧ (BNF%FTJHOFS
4IJOZͱࢲ IUUQTHJUIVCDPNPLJZVLJ4IJOZ"#
IUUQHJOHJIBUFOBCMPHDPNFOUSZ 4IJOZͱࢲ
εϥΠυͷͶΒ͍ • 4IJOZΛσʔλੳͷμογϡϘʔυʹ༻! • 4IJOZ"QQΛࢧ͑ΔΤϯδχΞϦϯάΛհ • " ۩ମతʹʁʢࢀߟਤॻ͜Εʣ ◦ ෳਓར༻ˍೝূ
◦ େࣄ ◦ յΕʹ͍͘ • ʢ͓·͚ʣΤϯδχΞϥΠΫʹ։ൃ͍ͨ͠
ຊհ͢ΔίϯςϯπʢͰͤΔͱ͜·Ͱʣ • NFNPJTF σʔλಡΈࠐΈߴԽ • QPPM 4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ %PDLFSʹΑΔ"QQִͱೝূ
• 4IJOZMPBEUFTU ෳਓΞΫηε࣌ͷੑೳܭଌ • 4IJOZUFTU 4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
४උ • ओʹ͜ͷεϥΠυϙΠϯλʹͳͬͯ·͢ ◦ 2JJUBͷϦϯΫʹৄࡉ͕͋Γ·͢ • ͜ͷεϥΠυͷ4IJOZ4FSWFS0QFO 4PVSDF൛ͷ4IJOZ4FSWFSΛࢦ͠·͢ • ͪͳΈʹ
◦ 34UVEJP4FSWFS1SPͬͯΔਓ!ʁ ◦ 4IJOZ4FSWFS1SPͬͯΔਓ!ʁ
ຊհ͢Δίϯςϯπ • NFNPJTF σʔλಡΈࠐΈߴԽ • QPPM4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ%PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTUෳਓΞΫηε࣌ͷੑೳܭଌ
• 4IJOZUFTU4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
Ͳ͜ͰΑ͘ΈΔμογϡϘʔυͷ͍ํ • ຖόονͰ࠷৽σʔλ͕ੜ͞ΕΔ • ࠷৽ͷσʔλΛ9ਓ͕:ඵ͔͚ͯಡΈࠐΉ • σʔλͷՄࢹԽ ! 9 :
ͳΒຖඵσʔλͷಡ ΈࠐΈ͚ͩͰ͕࣌ؒΘΕ͍ͯΔ
NFNPJTFΛͨ·ͨ·ݟ͚ͭΔ 3FG$BTFTUVEZDPOWFSUJOHB4IJOZBQQUPBTZOD IUUQTSTUVEJPHJUIVCJPQSPNJTFTBSUJDMFTDBTFTUVEZIUNM
SMJCNFNPJTFͱʁ ͡Ίͯ͋Δఆٛͨؔ͠Λݺͼग़ͨ͠ͱ͖ɺฦ ͞ΕΔσʔλΛΩϟογϡͤ͞Δ Ҏ߱ͷݺͼग़ͦ͠ͷΩϟογϡԽ͞Εͨ σʔλΛฦ͢ ! μογϡϘʔυͷσʔλಡΈࠐΈؔΛ NFNPJTFͰΩϟογϡͤ͞Ε͘ͳΓͦ͏ IUUQTHJUIVCDPNSMJCNFNPJTF
Δ͜ͱ͜Ε͚ͩ ݩͷؔ ϥοϐϯά ճҎ߱ͷ ΞΫηε
ৄ͍͍͠ํҎԼΛͲ͏ͧ! IUUQTRJJUBDPNPLJZVLJJUFNTCDFECFBFFDG
ຊհ͢Δίϯςϯπ • NFNPJTFσʔλಡΈࠐΈߴԽ • QPPM 4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ%PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTUෳਓΞΫηε࣌ͷੑೳܭଌ
• 4IJOZUFTU4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
4IJOZͱ%#ͷ࿈ܞ !%#ͱͷଓཧΛ4IJOZͰΔͷπϥΠ !%#͔ΒͷಡΈࠐΈ్தͰ4IJOZ"QQ͕ดͯ͡ɺ %#ͱͷίωΫγϣϯͬͯ͠·͏ͱ͔ " STUVEJPQPPMΛͬͯίωΫγϣϯཧͷΘ ͠͞ΛճආͰ͖Δ STUVEJPQPPM0CKFDU1PPMJOHJO3 IUUQTHJUIVCDPNSTUVEJPQPPM
STUVEJPQPPMΛ͏ͱ͜Μͳײ͡ ˡ QPPMʹଓใΛೖΕΔ ˡ 4IJOZ"QQࢭΊͨͱ͖ʹ উखʹQPPMDMPTF ˡ EQMZSͰ42-ॻ͔ͣʹ&5-
ຊհ͢Δίϯςϯπ • NFNPJTFσʔλಡΈࠐΈߴԽ • QPPM4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ %PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTUෳਓΞΫηε࣌ͷੑೳܭଌ
• 4IJOZUFTU4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
ͦͦ4IJOZ4FSWFSͷπϥΠͱ͜Ζ ! BQQQSPDFTTͰॲཧ͢ΔͨΊɺෳਓ ͕͏ͱɺઌͷॲཧ͕ऴΘΔ·Ͱͭඞཁ͕͋Δ 3FG"MUFSOBUJWFBQQSPBDIFTUPTDBMJOH4IJOZXJUI34UVEJP4IJOZ4FSWFS 4IJOZ1SPYZPSDVTUPN BSDIJUFDUVSF IUUQTBQQTJMPODPNBMUFSOBUJWFTUPTDBMJOHTIJOZ
ͦͦ4IJOZ4FSWFSͷπϥΠͱ͜Ζ ! ೝূػೳ͕ͳ͍ͷͰɺඞཁͳΒ1SPYZʢ/HJOY ͱ͔ʣαʔόͷߏங͕ඞཁ 3FG"EE"VUIFOUJDBUJPOUP4IJOZ4FSWFSXJUI/HJOY IUUQTXXXSCMPHHFSTDPNBEEBVUIFOUJDBUJPOUPTIJOZTFSWFSXJUIOHJOY
4IJOZ1SPYZ ! VTFS EPDLFSTIJOZDPOUBJOFSΛىಈͤ͞Δ ! -%"1ͷೝূʢڥมͰϢʔβ໊ͤΔʣ 3FG"MUFSOBUJWFBQQSPBDIFTUPTDBMJOH4IJOZXJUI34UVEJP4IJOZ4FSWFS 4IJOZ1SPYZPSDVTUPN BSDIJUFDUVSF IUUQTBQQTJMPODPNBMUFSOBUJWFTUPTDBMJOHTIJOZ
IUUQTHJUIVCDPNPQFOBOBMZUJDTTIJOZQSPYZ
4IJOZ1SPYZͷը໘ ˡ ೝূใΛೖΕΔʢ#BTJDೝূ -%"1FUD ˢ Ϣʔβ͕ΞΫηεͰ͖Δ 4IJOZ"QQ͕ϦετԽ͞Ε ͯݟΕΔ ˢ
Ϣʔβ໊
4IJOZ1SPYZ • "QBDIFϥΠηϯε +BWBͷ4QSJOHCPPU • ৄ͍͠ಋೖํ๏ҎԼΛͲ͏ͧ! IUUQTRJJUBDPNPLJZVLJJUFNTBBEEF
ຊհ͢Δίϯςϯπ • NFNPJTFσʔλಡΈࠐΈߴԽ • QPPM4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ%PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTU ෳਓΞΫηε࣌ͷੑೳܭଌ
• 4IJOZUFTU4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
4IJOZ"QQ։ൃதʹ;ͱࢥ͏ ͜ͷ"QQΛ9ਓ͕ಉ࣌ʹݟͨͱ͖ʹɺ࠷ѱͲΕ͘ Β͍ॲཧʹ͔͔࣌ؒΔͩΖ͏͔ʜ!
STUVEJPDPOG4IJOZJO1SPEVDUJPOΑΓ 3FG4IJOZJO1SPEVDUJPOQ IUUQTTQFBLFSEFDLDPNKDIFOHTIJOZJOQSPEVDUJPO TMJEF ͳΜͩΖ͜Εʁ
TIJOZMPBEUFTUͱʁ • 9ਓͷಉ࣌ΞΫηεʹରͯ͠ɺҰ࿈ͷॲཧʹͲͷ ఔ͕͔͔࣌ؒΔ͔ΛγϛϡϨʔγϣϯͰ͖Δ • खॱ ◦ 3FDPSE4IJOZ"QQͷૢ࡞Λه͢Δ ◦ 3FQMBZ9XPSLFSىಈͯ͠ɺૢ࡞Λܭଌ
◦ "OBMZ[F༷ʑͳՄࢹԽΛఏڙ
TFTTJPOEVSBUJPOੳ XPLFSUISFBE ˡ ͍ઢ3FDPSE࣌ͷૢ࡞ྃ ·Ͱͷ࣌ؒ ԣ࣠ ࣌ؒʢӈʹ͍͘΄Ͳ͔͔࣌ؒΔʣ ॎ࣠
֤γϛϡϨ ʔγϣϯ ͔͔ͬͨ࣌ؒ ॱͰιʔτ͞ ΕͯΔ ͜ͷྫͰɺ ճͷγϛϡ ϨʔγϣϯΛ ߦ͍ͬͯΔ ֤৭ͦΕͧΕͷॲཧʹ ͔͔ͬͯΔ࣌ؒ
TFTTJPOEVSBUJPOੳ XPLFSUISFBE ճͷγϛϡϨ ʔγϣϯΛߦͬ ͍ͯΔ ! ਓಉ࣌ΞΫηεͩͱɺ ࠷ѱഒ͘Β͍͘ͳΔ Մೳੑ͕͋ΔͱಡΉ
ʢͨͿΜʣ
TIJOZMPBEUFTUͷײ ! γϛϡϨʔγϣϯ݁Ռ͔Βࠞࡶ͢Δͱ9ඵ͘Β͍ ͭՄೳੑ͋Γ·͕͢ɺྃ͝ঝ͍ͩ͘͞ͱݴ͑Δ " ผ్TIJOZDBOOPOΛJOTUBMMͯ͠$-*͔Β࣮ߦ͢ Δඞཁ͕͋Γɺগ͠खؒΛײ͡Δɻ$*Խ͕·͍͠ ৄ͍͍͠ํ2JJUBΛͲ͏ͧ# IUUQTRJJUBDPNPLJZVLJJUFNTFEFBCB
ຊհ͢Δίϯςϯπ • NFNPJTFσʔλಡΈࠐΈߴԽ • QPPM4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ%PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTUෳਓΞΫηε࣌ͷੑೳܭଌ •
4IJOZUFTU 4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
4IJOZͰςετΛճ͍ͯ͜͠͏ ! 4IJOZ4FSWFSʹ"QQΛ%FQMPZ͚ͨ͠ͲΤϥʔ • ͖ͬ͞·Ͱಈ͍͍ͯͨͷʹʜʂ • ։ൃҰൠʹى͜Δ
4IJOZUFTUͱUFTUUIBUΛ͏ 4IJOZUFTU • 3QBDLBHF • 1IBOUPN+4ʹΑΔ4IJOZ%SJWFS͕"QQΛىಈ UFTUUIBU • 3ͷίʔυͷ୯ମςετΛߦ͏ͨΊͷ3QBDLBHF
! ΤϥʔͰىಈ͠ͳ͍͔ʁͱ͍͏৺͕ݮΔ
Α͋͘ΔσΟϨΫτϦߏ UFTUεΫϦϓτΛ࣮ߦ͢Δ UFTUεΫϦϓτͱͦͷ݁Ռ
ʢྫʣSVO@UFTUT3
ʢྫʣUFTU3
UFTUʹͲΜͳͷΛ༻ҙ͢Δ͔ • ىಈ͔ΒɺϢʔβ͕සൟʹߦ͏ͷʢΫϦοΫ͠ ͯσʔλ%-ͱ͔ʣΛUFTU3ʹ·ͣॻ͍͓ͯ͘ • ৄ͍͍͠ํҎԼΛͲ͏ͧ! IUUQTRJJUBDPNPLJZVLJJUFNTBCBDBFGG
ຊհ͢Δίϯςϯπ • NFNPJTFσʔλಡΈࠐΈߴԽ • QPPM4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ%PDLFSʹΑΔ"QQִͱೝূ • 4IJOZMPBEUFTUෳਓΞΫηε࣌ͷੑೳܭଌ •
4IJOZUFTU4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
ʢࢲతʣ4IJOZ4FSWFSͰΑ͋͘Δ&SSPSͷݪҼ ! ϩʔΧϧͷมɾϥΠϒϥϦΛࢀরͯͨ͠ EFUBDIBMMQBDLBHFTXIJMFXPSLJOHJO3 4UBDL0WFSGMPX IUUQTTUBDLPWFSGMPXDPNRVFTUJPOTEFUBDIBMMQBDLBHFTXIJMFXPSLJOHJOS σλονͷॲ ཧΛೖΕΔ" HMPCBM3
ʢࢲతʣ4IJOZ4FSWFSͰΑ͋͘Δ&SSPSͷݪҼ ! ͋ΔϥΠϒϥϦΛͬͯͳ͍ͱࢥͬͯআͯͨ͠ Β࣮͍ͬͯͯؾ͔ͮͳ͔ͬͨ " ໊લۭؒΛࢦఆͨ͠΄͏͕ແ HMPCBM3
ʢࢲతʣ4IJOZ4FSWFSͰΑ͋͘Δ&SSPSͷݪҼ ! 4IJOZ"QQͰͬͯΔؔΛมߋ͚ͨ͠Ͳɺ 4IJOZ4FSWFSͰݟͯมΘͬͯͳ͍ʜʁ " SFTUBSUUYUಉ࣌ʹUPVDIίϚϯυͰߋ৽ͯ͠ ஔ͢Δͷ͕ແ 4IJOZ4FSWFSW$POGJHVSBUJPO3FGFSFODF IUUQTEPDTSTUVEJPDPNTIJOZTFSWFSSFTUBSUJOHBOBQQMJDBUJPO
ˎSFTUBSUUYUͱ 4IJOZ"QQΛڧ੍తʹSFTUBSUͤ͞ΔͨΊͷۭϑΝΠϧ
ຊͷ͓͞Β͍ • NFNPJTF σʔλಡΈࠐΈߴԽ • QPPM 4IJOZͱ%#ͷίωΫγϣϯཧ • 4IJOZ1SPYZ %PDLFSʹΑΔ"QQִͱೝূ
• 4IJOZMPBEUFTU ෳਓΞΫηε࣌ͷੑೳܭଌ • 4IJOZUFTU 4IJOZͰͷ୯ମςετ • ʢࢲతʣΑ͘ى͜Δτϥϒϧ • ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
·ͱΊ • ΤϯδχΞϦϯάࢹͰɺ4IJOZ"QQΛࢧ͑Δศ རػೳΛհͨ͠ • ੈͷதͷ4IJOZ6TFSͷॿ͚ʹͳΕ͍Ͱ͢ ◦ ͱ͘ʹɺاۀͰ4IJOZΛར༻͍ͯ͠Δ ͍ͨ͠ Ϣʔβʹ͚ͯ
ʢ͓·͚ʣ͓͠ΌΕ6*Λࢦͯ͠
ϩʔσΟϯάදࣔ͋Δํ͕·͍͠ • ! ར༻ऀͷؾ࣋ͪʣͪΌΜͱಈ͍ͯΔʁΤϥʔ Ͱࢭ·ͬͯΔʁΘ͔ΒΜ • ࠷ॳ BOESFXTBMJQMPUMZ#BSTͱ͍͏ͷ͕͋ͬͨ • ࠓ͜Ε͕৽͍͠
BOESFXTBMJTIJOZDTTMPBEFST
BOESFXTBMJTIJOZDTTMPBEFST • छྨ͔ΒબΔ • ͜Ε͚ͩ 3FGʲ3ʳ<TIJOZ>ਤɾςʔϒϧͷग़ྗʹ$444OJQQFUTͰΞχϝʔγϣϯΛ͚ͭΔ 2JJUB IUUQTRJJUBDPNTBTBLJ@,@TBTBLJJUFNTGECFBFFGGD
USFTUMFUFDITIJOZ"DF • "DFΤσΟλΛ 4IJOZ6*Ͱ͏͜ͱ͕Ͱ͖Δ • !ݟ͕͓ͨ͠ΌΕ 3FGUSFTUMFUFDITIJOZ"DF*OUFHSBUJOHUIF"DFFEJUPSXJUI4IJOZ IUUQTHJUIVCDPNUSFTUMFUFDITIJOZ"DF
ESFBN3TTIJOZ8JEHFUT !͓͠ΌΕ6*ΟδΣοτ ESFBN3TTIJOZ8JEHFUTTIJOZ8JEHFUT&YUFOEXJEHFUTBWBJMBCMFJOTIJOZ IUUQTHJUIVCDPNESFBN3TTIJOZ8JEHFUT
ࢀߟ ESFBN3TϑϥϯεͰ3QBDLBHFͷ։ൃ ESFBN3TcFYQFSU3cFYQFSUTIJOZcEBUBTDJFODFc'SBODF IUUQTXXXESFBNSTGS
͓͠ΌΕͳ4IJOZ5FNQMBUFଞʹ͋Γ·͢ • 3JOUF3GBDFCTEBTI #PPUTUSBQ • FSJDSBZBOEFSTPOTIJOZNBUFSJBM NBUFSJBMEFTJHO • 3JOUF3GBDFGVMM1BHF GVMMQBHFKTͰGVMMQBHFΞϓϦ
• "QQTJMPOTIJOZTFNBOUJD +BWB4DSJQUৄ͍͠ਓʹظ
ςϯϓϨʔτσβΠϯΛద༻͓ͯ͠͠ΌΕʹ • STUVEJPTIJOZUIFNFT • OJLEBTICPBSEUIFNFT ྫҎԼ
3FGFSFODF • ֆจࣈ5XFNPKJΛ༻͠·ͨ͠ ◦ IUUQTUXFNPKJUXJUUFSDPN