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
綱渡りバッチ脱出大作戦
Search
Shinpei Maruyama
January 26, 2019
Technology
3
3.6k
綱渡りバッチ脱出大作戦
Shinpei Maruyama
January 26, 2019
Tweet
Share
More Decks by Shinpei Maruyama
See All by Shinpei Maruyama
過去や未来を扱うのは難しい? 過去と未来に立ち向かうための勘所
shinpeim
3
3.7k
設計ナイト2022 トランザクションスクリプト
shinpeim
12
3.5k
Ruby (off|with) the Rails
shinpeim
20
5.1k
Building native apps with scala.js
shinpeim
2
1.3k
今あえてDRY原則に向き合う
shinpeim
51
560k
Nekogata Drum Sequencer written in Scala.js
shinpeim
2
3.9k
複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ
shinpeim
36
15k
Using Scala.js with the JavaScript ecosystems
shinpeim
0
2.3k
Vue.jsで実現するMVVMパターン Fluxアーキテクチャとの距離
shinpeim
22
32k
Other Decks in Technology
See All in Technology
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
410
OCI見積もり入門セミナー
oracle4engineer
PRO
0
120
SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる
masakikato5
0
570
Explainable Software Engineering in the Public Sector
avandeursen
0
360
アプリケーション固有の「ロジックの脆弱性」を防ぐ開発者のためのセキュリティ観点
flatt_security
28
10k
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
930
サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method
ozawa
1
100
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
9
3.9k
ソフトウェアプロジェクトの成功率が上がらない原因-「社会価値を考える」ということ-
ytanaka5569
0
130
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.2k
チームビルディング「脅威モデリング」ワークショップ
koheiyoshikawa
0
140
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
210
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
For a Future-Friendly Web
brad_frost
176
9.6k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Unsuck your backbone
ammeep
670
57k
Being A Developer After 40
akosma
90
590k
Transcript
CZ͠Μ͍BLBೣܕԻػ ߝΓόον ग़େ࡞ઓ
ࣗݾհ w ͠Μ͍BLBೣܕԻػ w ࣗশϛϡʔδγϟϯ !Ԯۼ BMDBGF w ԻָͰ৯͑ͳ͍ͷͰϓϩάϥϚͱ͠
ͯކޱΛ͠ͷ͍Ͱ͍Δ
ॻ͍ͨΓͨ͠ͷ
ࠓͬͯΔ࿑ಇ w $MBTTJ ג w *$5ͰຊͷڭҭΛม͑Δ w ʮࢠڙͷແݶͷՄೳੑΛղ͖์ͪɺֶͼ ͷܗΛਐԽͤ͞Δʯ
w ڭҭͷʮͲਅΜதʯֶߍʹͬͯΒ͏ γεςϜΛ࡞͍ͬͯΔ
ߝΓόονʁ w όονॲཧʹ͍Ζ͍ΖͱΉ͔ͣ͠ ͍͜ͱ͕͋Δ w Ұൠతͳࣄ w ࣾతͳࣄ
Ұൠతࣄ
ϩάࢹΞϥʔτ w όονδϣϒը໘Λ࣋ͨͳ͍ w Τϥʔ͕ىͬͯ͜Ϣʔβʔ։ൃऀ ʮࢹʯ͠ͳ͍ w ϩάग़͍͍ͤͷͰʁ
ϩά͚ͩͰ͍͍ͷʁ w ϩάΛશ෦औ͓ͬͯ͘ɺϝʔϧͳͲ ͰૹΓ͚ͭΔ w ޭ࣌ͷϩάΛಡΈଓ͚͍ͨͻͱ͍ͳ ͍ w ୭ಡ·ͳ͘ͳΔ w
ࣦഊͨ͠ϩά͕์ஔ͞ΕΔ
Λղ͢Δ w ࣦഊ࣌ͷௐࠪͷͨΊʹɺϩάඞ ཁ w ࣦഊͨ͠ͱ͖ʹΞϥʔτΛग़͍ͨ͠ w ͭ͜͡ͷ;ͨͭผͷؔ৺͝ͱ
ϩάී௨ʹΕΑ͍ w qVFOUEͱ͔ͰɺΞϓϦͷϩάͱ ಉ͡Α͏ʹѻ͍͍͑ w ࣦഊ࣌ͷ௨ΛͲ͏͢Δ͔·ͨߟ ͑Δඞཁ͕͋Δ
ࣦഊ࣌ͷ௨ w 4POHNVIPSFOTP w SFQPSUFS͕ϓϥΨϒϧʹͳͬͯΔόον δϣϒϥούʔ w طଘͷόονδϣϒʹӨڹΛ༩͑ͣʹࣦഊ ޭͷϨϙʔτ͕Ͱ͖Δ w
ΊͪΌΊͪΌศར w 4POHNV
ϩάͷѻ͍ ௨ͷѻ͍ ͍͍ͩͨΫϦΞ
δϣϒͷഉଞ੍ޚ w I͝ͱʹΩοΫ͞ΕΔδϣϒ͕ I͔͔ͬͯͨΒʁ w ଟॏىಈΛ੍͍ͨ͠߹͕͋Δ
Α͋͘Δରࡦ w TFUMPDL͏ w EBFNPOUPPMTଐͷͭ͋Δ ͚ͲɺHPʹQPSU͞Εͨϙʔλϒϧ ͳͭ͋Δ w NP[OJPO
TFUMPDLͷ w ϩʔΧϧͰϩοΫͱΔԽͷ ͛ʹͳΔ w Ҏ্ʹόονδϣϒΛόϥϯγϯάͯ͠ Δ߹ w "ͰϩοΫͱ࣮ͬͯߦ#ͰϩοΫऔͬͯ ࣮ߦ"ऴΘͬͯϩοΫղ์#ऴΘͬ
ͯϩοΫղ์ɺͱͳΓ͔Ͷͳ͍
ഉଞ੍ޚʹ͍ͭͯ ߟ͍͑ͯͨΒ ԽΉ͍ͣ ʹͿͪͨͬͨ
ԽΉ͍ͣ w ͭ͡ഉଞ੍ޚϚωʔδυͳ SFEJTͱ͔EZOBNPͰϩοΫͱΕ ͦ͜·ͰʹͳΒͳ͍ w ഉଞ੍ޚ͚ͩͰͳ͍ w εέδϡʔϥͷԽ͕͋Δ
εέδϡʔϥͷԽ w δϣϒεέδϡʔϥͷރΕ࣮ͨɺ ৴པͱ࣮ͷDSPOE w ·͡ͰΑ͘Ͱ͖͍͗ͯ͢Δ w ࠷ߴͷδϣϒεέδϡʔϥ w ͔͠͠ԽΛߟ͑Δͱ಄௧͍
DSPOE w BDUJWFTUBOECZ w ͩΕ͔͕DSPOαʔόʔͷࢮ׆ࢹͯ͠ɺ ࢮΜͰͨΒTUBOECZͷ΄͏ͷDSPOEΛ BDUJWFʹͯ͠ w ·͡ʁʁʁ
DSPOE w BDUJWFBDUJWF w Ͱಉ࣌ʹδϣϒճͯ͠Ͳ͏͢ΜͶΜ w εέδϡʔϥ֎ʹग़ͯ͠ɺ֎͔ΒLJDL͢ Δʁ w ͡Ό͋ͦͷεέδϡʔϥͲ͏Խ͠Α͏
͔ w ʮʝʝʝʝʯ
ͻͱͭͷղͱͯ͠ w ϑϧϚωʔδυΫϥυαʔϏε͔ͭͬͯ͠ ·͏ͱ͍͏ख͋Δ w ྫͱͯ͠ w શ෦͍Γɿ"84#BUDI&$44IFEVMFE5BTL w εέδϡʔϥɿ$MPVE8BUDI&WFOUT
w δϣϒΩϡʔɿ424 w ϫʔΧʔɿFMBTUJDCFBOTUBMLXPSLFS MBNCEBFUDʜ
Ұൠతࣄ·ͱΊ w ϩά௨ͳͲ w ͍·IPSFOTP͋Δ w Խ w ΫϥυͷϚωʔδυαʔϏε͋Δ w
ഉଞ੍ޚ w άϩʔόϧʹϩοΫͱΕΑ͠
Ұൠతࣄ
ࣾࣄ
ೖࣾͷ࠶ݱ753 w ɹʮΑ͏ͦ͜$MBTTJʂʯ w ɹʮΑΖ͓͘͠Ͷ͕͍͠·͢ʯ w ɹʮͱ͜ΖͰɺ͜͜ʹόοναʔόʔ ͕͋Δ͡ΌΖʁʯ w ɹʮ͍ʯ
ೖࣾͷ࠶ݱ753 w ɹʮVQUJNFΛΈ͍ͯͩ͘͞ʯ w ɹʮޙظߴྸΠϯελϯε͡ΌΜʯ w ɹʮ͜ͷόοναʔόʔ͕མͪΔͱ αʔϏε͕ࢭ·Γ·͢ʯ w ɹʮͳʹͦΕ͜Θ͍ʯ
ೖࣾͷ࠶ݱ753 w ɹʮͦͯ͜͠ͷόοναʔόʔͷߏ ཧεΫϦϓτϝϯς͞ΕͯΔ ͔Ͳ͏͔ෆ໌Ͱ͢ʯ w ɹʮͳʹͦΕ͜Θ͍ʯ
ೖࣾͷ࠶ݱ753 w ɹʮΠϯελϯε͕མͪͨ͋ͱɺ෮ چͤ͞Δํ๏z୭Βͳ͍zʯ w ɹʮ͜Θ͍ͱ͢Βݴ͑ͳ͘ͳ͖ͬͯ ͨʯ
ೖࣾͷ࠶ݱ753 w ɹʮ͋ͱɺ͜ͷΠϯελϯεͰ͢͝ ͍ॏཁͳδϣϒΩϡʔϫʔΧʔಈ ͍ͯΔʯ w ɹʮ·͡ͰݴͬͯΜͰ͔ͦ͢Εʯ
ೖࣾͷ࠶ݱ753 w ɹʮͳ͓όονδϣϒͷςετͳ ͍ͷͰόονδϣϒࣗମΛվम͢Δ ͜ͱͰ͖ͳ͍ʯ w ɹʮʢ͜͜ͰനΛΉ͍ͯաݺٵʹ ؕΔʣʯ
ೖࣾͷ࠶ݱ753 w ɹʮ͠Μ͍͞Μͷ࠷ॳͷࣄɺ ͜ΕΛͲ͏ʹ͔͢Δ͜ͱͰ͢ʯ w ɹʮͲ͏ʹ͔ʜʜʁʯ w ɹʮͲ͏ʹ͔Ͱ͢ʯ w ɹʮӕͰ͠ΐʂʁʯ
͜͜Ͱ$50ͷ ϑΥϩʔ
ؾΛऔΓͯ͠ Λཧͯ͠ΈΔ
ߏཧεΫϦϓτ w ࣮ࡍ·ͬ͞Βͳڥʹ͍ͭ͜Λͯ ͯΈͨΒҟৗऴྃ͠·͘Δ w ʮ͜ΕɺࠓαʔόʔམͪͨΒؒ Ϳͬଓ͚Ͱ෮چ࡞ۀͩͳʝʝʯ
ϩάࢹΞϥʔτ w ͕͢͞ʹϩά͕EFWOVMMʹٵ͍ ࠐ·Ε͍ͯΔͱ͍͏͜ͱͳ͔ͬͨ w ͔͠͠ϝʔϧͰશ෦ඈΜͰ͖ͯΔ w ࣦͬͯഊ͢Δ͍ͭͨ
Խ w ͜Ε͕ϥεϘε w ΫϥυͷϚωʔδυαʔϏεʹҠ ߦʁ w ҰےೄͰ͍͔ͳ͍ෳͷ͕བྷΈ߹ͬ ͍ͯͯɺΉ͔ͣͦ͠͏
ٕज़త w ϚωʔδυαʔϏεɺίϯςφԽ͕લఏͩͬͨΓɺ ͦͷαʔϏεͷʮ͓࡞๏ʯΛकΔඞཁ͕͋Δ w Ұํฐࣾͷόονδϣϒ&$ͷΧελϜ".* ͕࡞ͬͯ͘ΕͯΔڥʹΊͪΌΊͪΌʹґଘͯ͠ ͍Δ w ͋ͱɺϫʔΧʔಉډͯ͠Δ͔ΒͦΕͳΜͱ͔
͠ͳ͍ͱ͍͚ͳ͍
࣏త w ֶߍʹͬͯΒ͏ެతͳੑ֨ͷαʔ Ϗε w ެతॻྨΛ࡞ΔͨΊʹαʔυύʔςΟͷϑΥϯτʹ ґଘ͍ͯ͠Δ͜ͷϥΠηϯε͕ʮ͍͘Βʯ w ج४Λຬͨͨ͢ΊʹαʔυύʔςΟͷΟϧεεΩϟ ϯιϑτʹґଘͯ͠Δ͜ͷϥΠηϯε͕ʮ
͍͘Βʯ w ίϯςφΆΜΆΜཱͯΔΈ͍ͨͳͷ͕Ͱ͖ͳ͍
Ͳ͏ཱ͔ͪ͏͔
Λׂ͢Δ w ߏཧεΫϦϓτ w ϫʔΧʔಉډ w ϥΠηϯε w όονԽ w
δϣϒͷ൱ՄࢹԽ
ґଘؔཧ w ߏཧεΫϦϓτ w ϫʔΧʔಉډ w ϥΠηϯε w όονԽ w
δϣϒͷ൱ՄࢹԽ
ґଘؔΛ ߟ͑ͳ͕Β ʮͻͱͭͣͭʯ ղܾ͍ͯ͘͠
ߏཧεΫϦϓτ w ͍ͬͣͭ͜ɺࣦഊ͢ΔݪҼΛௐࠪ͠ ͯʮΔ͚ͩʯ w ͜Ε͕ղܾ͢ΔͱɺʮμϯλΠϜ ग़Δ͚ͲεΫϦϓτҰൃͰ෮چͰ͖ Δʯʹͳ͍ͬͯͩͿؾָ͕࣋ͪʹͳ Δ
ϫʔΧʔಉډ w ৽͘͠ɺԽ͞ΕͨϫʔΧʔΫϥ ελΛ࡞ͬͯɺͦ͜ʹδϣϒΛಀ͕ ͯ͠Δ w ͜ΕʮΔ͚ͩʯ
ϥΠηϯε w ͦͦ͜͜ϥΠηϯεͷ͕͋Δ͔Β ԽఘΊΔʢਓؒఘΊ͕؊৺ʣ w ͍ɺμϯλΠϜ͕ग़ͯͦ͜·ͰʹͳΒ ͳ͍ͷͩͬͨ w ಉ͘͡ผαʔόʔʹδϣϒΛಀ͢ w
ߏཧͪΌΜͱͬͯɺҰൃͰ෮چͰ͖ΔΑ͏ ʹ͓ͯ͘͠ w ͜ΕʮΔ͚ͩʯ
όονԽ w ϥεϘεʂ w ·ͣߏΛߟ͑Δ
͓͞Β͍ w δϣϒͷίʔυʹखΛೖΕΔͷҰ ୴ݫ͍͠ w ίϯςφԽΉ͔͍ͣ͠ w ϚωʔδυαʔϏεʹҠߦΉ͔ͣͦ͠͏ w &$Λੜ͔͢͜ͱΛલఏͱ͠ͳ͚Εͳ
Βͳ͍
&$ΛԽ w BDUJWFTUBOECZΓͨ͘ͳ͍ w εέδϡʔϥࣗମϚωʔδυͳ $MPVE8BUDI&WFOU͕ଘࡏ͢Δ
Ҋ w εέδϡʔϥɿ$MPVE8BUDI&WFOU w δϣϒΩϡʔɿ424 w δϣϒϫʔΧʔɿ&$ w &$͕424͔ΒEFRVFVF͢Δඞཁ͋Δ w
͚ͦͩ͜ॻ͚ղܾͦ͠͏ʢBUMFBTU PODFTFMPDLߟ͑Δඞཁ͋Γʣ
None
ίϛϡχςΟʹ૬ஊ w )BDIJPKJQNͷTMBDLʹͯʮ͜͏ ͍͏ҊΛߟ͑ͯΔΜ͚ͩͲɺͳΜ͔ࣅ ͨΑ͏ͳࣄྫͱ͔Γ·ͤΜ͔ʯ w NBDPQZʮ͏ͪɺ΄ͱΜͲಉ͡ߏ ͰͬͯͯɺͦΕ༻ͷπʔϧ044 ʹͳͬͯ·͢Αʯ
NBDPQZ
TRTKLS w ·͞ʹߟ͑ͯͨ௨Γͷͭ w 424ͷBUMFBTUPODFʹɺ δϣϒഉଞ੍ޚʹରԠͯ͠Δʂ w ͦͷઅ͋Γ͕ͱ͏͍͟͝·͢ w LBZBD
࠷ऴҊ w εέδϡʔϥɿ$MPVE8BUDI&WFOU w δϣϒΩϡʔɿ424 w δϣϒϫʔΧʔɿ&$ w &$͕424͔ΒEFRVFVF͢Δඞཁ͋Δ w
ͦ͜TRTKLSʹ·͔ͤΔʢଞ࣮ࣾ͋ Δʂʣ
όονԽ w ͋ͱΔ͚ͩ
δϣϒͷ൱ՄࢹԽ w ϩά͍··Ͱ௨Γ w IPSFOTPೖΕࣦͯഊϨϙʔτඈ͢ w ͓·͚ͰδϣϒՄࢹԽαΠτΛख࡞Γͨ͠ w IPSFOTPͰ͜͜ʹʮ։࢝ʯʮޭʯʮࣦഊʯΠϕϯ τඈͯ͠ҰཡදࣔͰ͖ΔΑ͏ʹͨ͠
w ͜Ε݁ߏΑͯ͘ɺʮ͋Εɺ͜ͷδϣϒΊͪΌΊͪΌ ͬͯ͘ͳ͍ʁʯͱ͔ࠓ·Ͱݟ͑ͳ͔ͬͨͷΛ ՄࢹԽͰ͖ͨ
উͬͨʂୈ෦ʂ
ࣗຫ w Ҏ্ͷࣄΛࢼ༻ظؒͷϲ݄ͷؒ ʹୡͨ͠ͷͰ΅͘Ғ͍ͱࢥ͍· ͢
ৼΓฦΓ
Ҡߦʹඞཁͩͬͨ͜ͱ w ෳࡶʹབྷ·ͬͨΛղ͢Δ͜ͱ w ιʔεϦʔσΟϯάྗ w ৺ཧత҆શੑ w ༐ؾʢOPUٕज़ྗʣ w
ίϛϡχςΟͷྗ
ͷղ w བྷ·Γ߹ͬͯखʹෛ͑ͳͦ͏ʹݟ͑ Δɺׂ͢Δͱͻͱͭͻͱͭ ʮΔ͚ͩʯʹͳΔ
ιʔεϦʔσΟϯά w ݱঢ়Λௐࠪ͢ΔͨΊʹઈରʹඞཁ w υΩϡϝϯτॻ͍ͨॠؒʹԽ͕࢝ ·Δ w ίϝϯτਓؒӕΛ͖ͭͨ͘ͳͯ͘ ͍ͭͯ͠·͏ w
ಈ͍͍ͯΔιʔεΛಡΉྗ͕҆શΛੜΉ
৺ཧత҆શੑ w Ғͦ͏ͳ͜ͱݴ͓͖ͬͯͳ͕ΒɺҠ ߦதʹͻͱͭোΛग़ͯ͠͠·ͬͨ w $50ʮͰࣄվળ͍ͯ͠Δɻ͠ Μ͍͞Μ͋Γ͕ͱ͏ʯ w ͜Ε͕͔͋ͬͨΒࢭ·ΒͣʹվળΛ ਐΊΒΕͨ
༐ؾ OPUٕज़ྗ w ʮ͠Μ͍͞Μ͔ͩΒͰ͖Δ͜ͱʯͬ ͯݴͬͯ͘Εͨಉ྅͕͍ͨ w ͚ͲͦΜͳ͜ͱͳ͍ɻӨڹͰ͔͍͚ Ͳʮ͍͜͠ͱʯͻͱͭͯ͠ͳ͍ w ͬͯΔͷଞਓͷٕज़
IPSFOTP TRTKLS "84ʣ
ίϛϡχςΟͷྗ w ίϛϡχςΟʹ૬ஊ͢Δ͜ͱͰΑ͍ղ ܾ͕ੜ·Εͨ w ίϛϡχςΟ͕࡞Γग़ͯ͘͠Ε͍ͯͨ ༷ʑͳϓϩμΫτʹॿ͚ΒΕ͍ͯΔ w ͡Ό͋΅ͤ͘ΊͯࣄྫհΛ͠Α͏ w
ใԸँಙ
$.
Ҡߦͯ͠͏Ε͔ͬͨ͜͠ͱ w فΔ͕࣌ؒݮͬͨɻ͔ΘΓʹɺ UXJUUFSΛ͢Δ͕࣌ؒ૿͑ͨ w ΈΜͳʹ͋Γ͕ͱ͏ͬͯݴͬͯΒ ͑ͨ w ৽͍͠৬ͷؒʹͳΕͨײ
Ҡߦͯ͠͏Ε͔ͬͨ͜͠ͱ w $50ʮz͜Εखʹෛ͑ͳ͍ΑͶzl ͍͠ΑͶʜʜzͱ͍͏ఘΊϜʔυʹ ͳΓ͕͚ͪͩͬͨͲɺ͜ͷҰ݅Ͱͩ ͍Ϳͦ͏͍͏จԽ͕มΘͬͨʯ
+PJOVT w ࣄۀΊͪΌΊͪΌ͏·ͯ͘͠ ͍Δ w ٕज़͕ϘτϧωοΫͦͷଘ ʹΛৼΔ͏͜ͱ͕Ͱ͖·͢ w Ұॹʹղܾ͍͖ͯ͠·ͤΜ͔ʂʁ
2ʁ
࣭ ͜ͷ͋ͱ͔ !TIJOQFJ ·Ͱ