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
1.9k
190928_TokyoR81_Shiny
Tokyo.R #81 応用セッション Shiny Appを支えるエンジニアリング (+おまけ)
okiyuki
September 18, 2019
Tweet
Share
More Decks by okiyuki
See All by okiyuki
Ubieのデータ品質の検査・維持・向上への取り組み
okiyuki99
3
1.5k
191016_KDD2019_Reading
okiyuki99
3
1.9k
Other Decks in Technology
See All in Technology
SREとその組織類型
tatsuo48
8
1.4k
Databricks における 『MLOps』
databricksjapan
2
120
人間の尊厳、幸福、アクセシビリティ / 第116回「WEB TOUCH MEETING」アクセシビリティSP
nulabinc
PRO
2
180
Four keys改善の取り組み事例紹介
sansantech
PRO
2
230
なぜ NOT A HOTEL が Web3 に取り組むのか - NOT A HOTEL TECH TALK
ynunokawa
0
160
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
0
170
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.1k
0→1開発における技術選定において一番大切なこと
bicstone
1
320
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
furu8
0
250
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
3
140
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
510
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
13
35k
Featured
See All Featured
Design by the Numbers
sachag
274
18k
The Mythical Team-Month
searls
214
42k
YesSQL, Process and Tooling at Scale
rocio
162
13k
Building Adaptive Systems
keathley
29
1.8k
The Cult of Friendly URLs
andyhume
73
5.7k
Fireside Chat
paigeccino
19
2.6k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
RailsConf 2023
tenderlove
1
530
Building Flexible Design Systems
yeseniaperezcruz
318
37k
What's new in Ruby 2.0
geeforr
336
31k
The Language of Interfaces
destraynor
151
23k
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