Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ElmでWebサービスを作るふわっとしたお話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
youku_s
December 02, 2017
Technology
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ElmでWebサービスを作るふわっとしたお話
NGK2017B(名古屋合同懇親会 2017忘年会) LT内容
youku_s
December 02, 2017
Other Decks in Technology
See All in Technology
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
170
Running Kotlin + Quarkus with Lambda
nealle
1
4k
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
7
5.1k
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
770
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
130
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
170
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
450
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
120
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
360
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
280
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Six Lessons from altMBA
skipperchong
29
4.5k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Fireside Chat
paigeccino
43
4.1k
Amusing Abliteration
ianozsvald
1
350
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Exploring anti-patterns in Rails
aemeredith
4
540
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
What's in a price? How to price your products and services
michaelherold
247
13k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Transcript
ElmͰWebαʔϏεΛ࡞Δ ;Θͬͱ͓ͨ͠
Θͨ͠Ͱ͢ • ฏຌͳϓϩάϥϚʔͰ͢ • TwitterIDɿyouku_s • झຯ • ͓ֆ͔͖ •
TRPG
Ϟνϕʔγϣϯ • ཁ͢Δͱɺ͕ࣗ༡ͿϚΠφʔͳTRPGγεςϜͷϓϨΠิॿ αʔϏε࡞Δͱ͕ࣗͤʹͳΔɻ • TRPGͬͯͳʹΑʁ • ͍ͷͰɺ͋ͱͰฉ͍ͯ
ElmͬͯԿ • ߴ࣭ͳϑϩϯτΤϯυ։ൃΛߦ͏͜ͱʹಛԽͨ͠ݴޠ • AltJS • ൚༻ݴޠͰͳ͍ • HaskellͷαϒηοτΈ͍ͨͳݴޠ༷Λ࣋ͭ •
ElmΞʔΩςΫνϟͰ͏͜ͱΛఆ͞Ε͍ͯΔ • ElmΛ͏ͳΒɺ͜ΕҎ֎ͳ͍ • ಠࣗͷvdom࣮ͱɺঢ়ଶભҠϑϨʔϜϫʔΫΛ͍࣋ͬͯΔ • ͞Βʹৄ͘͠ • ElmͲΜͳਓʹΦεεϝͰ͖ͳ͍͔ • https://qiita.com/arowM/items/dfb38d1c5f3dfde8b8bf
ͳͥElm͔ • ओʹڵຯ • ੲͪΐͬͱ͚͚ͩͬͯͨͲɺΞʔΩςΫνϟʹഁյతมߋ͕ೖͬͨޙ ͬͯͳ͔ͬͨ • ͜Μͳ͜ͱݴͬͯͨΒɺElmͷڧ͍ਓʹ͖ͨͨى͜͞Εͨ
ͳͥElm͔ɿͪΐͬͱ͚ͩਅ໘ʹ • vdomܥͷϑϨʔϜϫʔΫʹڵຯ͕͋ͬͨ • JSωΠςΟϒͩͱReact.jsɺVue.js͋ͨΓ͕ϝδϟʔʁ • Vue.jsΑ͘Βͳ͍ • Βͳ͍ͷʹؔͯ͠͠ͳ͚ΕͳΒͳ͍ •
React.jsScalajs-reactܦ༝Ͱগ͠৮ͬͨ͜ͱ͕͋Δ • ঢ়ଶભҠϑϨʔϜϫʔΫͱ๊͖߹ΘͤΔඞཁ͕͋Δ • Reduxͱ͔ • ͪΐͬͱΊΜͲ͏͍͘͞
ͳͥElm͔ɿͪΐͬͱ͚ͩਅ໘ʹ • ͦͦɺJSΛͳΔ͘ੜͰॻ͖ͨ͘ͳ͍ • AltJS͏ػӡ • TypeScriptɿతσʔλܕ͕ͳ͍ͷͰ͍ͩ • HaxeɿۀͰे৮͔ͬͨΒ͍͍ •
Scala.jsɿे৮͔ͬͨΒ͍͍ • ElmɿਪΞʔΩςΫνϟʹΕvdomঢ়ଶભҠϑϨʔϜϫʔΫαϙʔτ ͞Ε͍ͯΔɺܕڧ͍ • ͳʹΑΓɺࢲͷܦݧ͕·ͩগͳ͍
γεςϜߏ • AWSΛͬͨαʔόʔϨεΞʔΩςΫνϟ • ؒҧ͍ͬͯͨΒ͝ΊΜͳ͍͞ Amazon CloudFront Amazon Route 53
Amazon API Gateway Amazon S3 ʢHTML+JS+ը૾ͳͲʣ AWS Lambda Amazon DynamoDB
γεςϜߏ • Lambda͍͔͚ͨͬͨͩ • ΠϯελϯεΛཱͯͯαʔϏε࡞ͬͨΒ௧͍Λݟ͍ͯΔ • ࡒ͕ • ಛʹRDSߴ͍ •
কདྷతʹͦΕLambda+DynamoDBʹҠߦΛݕ౼͍ͯ͠Δ
ElmͲ͏ͩͬͨʁɿྑ͍ • ܕ͕ڧ͍ͷخ͍͠ • ϨϯμϦϯά͕ૣ͍ʁ • http://elm-lang.org/blog/blazing-fast-html-round-two (ͪΐͬͱݹ͍) • ঢ়ଶͱΠϕϯτͷΈ߹ΘͤΛ൱Ԡͳ͘ߟ͑ͤ͞ΒΕΔ
• ߟྀ࿙Ε͕ݮΔ • ҎલͷElmͱൺͯ • ੜJSͱͷ࿈ܞָ͕ʹͳ͍ͬͯΔ • ඇಉظॲཧɺ෭࡞༻ΛؚΉॲཧͷΓग़ָ͕͠ʹͳ͍ͬͯΔ • 2byteจࣈͷѻ্͍͕ख͘ͳ͍ͬͯΔ
ElmͲ͏ͩͬͨʁɿѱ͍ • JSONΛऔΓѻ͏ͷ͕ͭΒ͍ • Elm to JSONɺJSON to ElmͱʹඇৗʹࢁίʔυΛॻ͔͞ΕΔ •
json4sΈ͍ͨͳͷ͕΄͍͠ • ϦϑϨΫγϣϯͳ͍͠ɺPure ElmͰͨͿΜແཧͦ͏ʁ • ग़ྗ͞ΕΔJSͷαΠζ͕େ͖͍ • ࠓճͷΞϓϦέʔγϣϯͩͱɺminifyͯ͠400kb↑ • CloudFront͍ͬͯΔͷओʹ͍͕ͭ͜ݪҼ • View͕ϓϩάϥϚҎ֎ʹಡΊͳ͍/ॻ͚ͳ͍ • σβΠφͱڠۀ͢ΔʹɺhtmlϥΠΫͳςϯϓϨʔτΛElmͷViewʹม͢Δͷ͕ඞཁͦ ͏
ElmͲ͏ͩͬͨʁɿͦͷଞ • ݴޠͷඪ४ػೳ͕খ͍͞ • ඞཁͳΒɺެࣜɾ3rd PartyͷύοέʔδΛೖΕ֦ͯு͍ͯ͘͠ • Θͳ͍ػೳΛল͍ͯɺJSͷαΠζΛখ͘͢͞ΔͨΊͷઓུʁ • ͜ͷ͋ͨΓɺAltJSͩͱHaxe͕ڧ͍ҹ͕͋Δ
• ͰɺListMaybeʹflatMap͕ͳ͍ͷΓա͗Ͱ
ײ • ָ͔ͬͨ͠ • ֶशίετߴ͍ • μΠΞϩάɺλϒͳͲগ͠ڽͬͨίϯϙʔωϯτΛ͏ͳΒɺεΫϥονͰॻ͚ Δఔͷ࣮ྗ͕ͳ͍ͱͭΒ͍ • ElmΞʔΩςΫνϟΛ֮͑ΔͷɺҰ͔ΒReact.js࢝ΊΔͷͱ͍ͨͯ͠มΘΒͳ
͍ؾ͢Δ • Haskellͷॻ͖ํΕ͚ͨΕͲɺಛʹͳ͘ॻ͚·ͨ͠ • ݱঢ়ͰͦΕͳΓʹ͑ͦ͏ʁʁʁ • աڈʹഁյతมߋΒ͔͍ͯ͠ΔͷͰɺv1.0ʹͳΔ·Ͱ੩؍͕ඞཁͦ͏