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
surprise-lt-for-intern-vol-1
Search
Hirokazu Maruta
June 21, 2019
Technology
0
47
surprise-lt-for-intern-vol-1
インターン生の課題がLINEBot作成だったので、インターン生が制作物の発表を終えた後に社員からのサプライズLTとして登壇しました。
Hirokazu Maruta
June 21, 2019
Tweet
Share
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
encryption
mochisuna
0
97
わかった気になるチューリングマシン
mochisuna
0
38
Elementary algorithm
mochisuna
0
19
ssh-dynamic-forward
mochisuna
0
47
ServerlessFramework-Trello
mochisuna
0
26
TechBash Slack Reaction Award
mochisuna
0
43
techbash-clasp
mochisuna
0
66
vuejs-night-publish
mochisuna
0
880
surprise-lt-for-intern-vol-2
mochisuna
0
50
Other Decks in Technology
See All in Technology
ObservabilityCON on the Road Tokyoの見どころ
hamadakoji
0
210
CloudWatch Container Insightsを使ったAmazon ECSのリソース監視
umekou
1
120
信頼性を支えるテレメトリーパイプラインの構築 / Building Telemetry Pipeline with OpenTelemetry
ymotongpoo
9
5k
ソフトウェアアーキテクトのための意思決定術: Software Architecture and Decision-Making
snoozer05
PRO
17
4k
[JAWS-UG栃木]地方だからできたクラウドネイティブ事例大公開! / jawsug_tochigi_tachibana
biatunky
0
130
教師なし学習の基礎
kanojikajino
4
360
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
160
論文紹介 ”Long-Context LLMs Meet RAG: Overcoming Challenges for Long Inputs in RAG” @GDG Tokyo
shukob
0
280
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
110
【Λ(らむだ)】アップデート機能振り返りΛ編 / PADjp20250127
lambda
0
120
ソフトウェア開発現代史:製造業とソフトウェアは本当に共存できていたのか?品質とスピードを問い直す
takabow
15
5.3k
CNAPPから考えるAWSガバナンスの実践と最適化
yuobayashi
5
680
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
How STYLIGHT went responsive
nonsquared
96
5.3k
Optimizing for Happiness
mojombo
376
70k
Agile that works and the tools we love
rasmusluckow
328
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Speed Design
sergeychernyshev
25
760
Fireside Chat
paigeccino
34
3.2k
Transcript
LINEBotͰLTձΛྑ͍ͨ͘͠ giftee SaaS div. Engineer ·ΔͨͻΖ͔ͣ
ࣗݾհ • ؙాʢ·ΔͨͻΖ͔ͣʣ • Twitter: @mochi_suna • giftee.co SaaSνʔϜΤϯδχΞ •
झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣ • ࣗಈԽେ͖ɻख࡞ۀ͖Β͍ɻ • github
ٕज़໘
͔݁Β
LINEBot ࡞Γ·ͨ͠
Agenda • LINEBotΛ࡞ͬͯΈͨ • ઃܭࢥ • LINEBotͰͰ͖Δ͜ͱ • ࢥ͍ͷৎ
LINEBot
࡞ͬͨͷ ʮLTձBotʯ ΠϕϯτͷࢀՃͱΞϯέʔτ • Πϕϯτͷ։࠵ɾऴྃ • ΠϕϯτͷࢀՃɾ • Πϕϯτͷථ •
ूܭʢະ࣮ʣ
LTձBot • ΠϕϯτΛ։࠵ LINEBot Φʔφʔʢొஃऀʣ Πϕϯτ ʢ-5ձͳͲʣ Πϕϯτ࡞ Πϕϯτ։࠵
LTձBot • ։࠵ࡁΈͷΠϕϯτʹࢀՃ ࢀՃऀ LINEBot Φʔφʔʢొஃऀʣ Πϕϯτ ʢ-5ձͳͲʣ ΠϕϯτࢀՃ
LTձBot • ࢀՃதͷΠϕϯτʹථ ࢀՃऀ LINEBot Φʔφʔʢొஃऀʣ Πϕϯτ ʢ-5ձͳͲʣ ථ
LTձBot • ूܭʢ͜ΕͲ͏͠Α͔ͬͳ͊ɾɾɾʣ ࢀՃऀ LINEBot Φʔφʔʢొஃऀʣ Πϕϯτ ʢ-5ձͳͲʣ ूܭ
ઃܭࢥ
ઃܭࢥ 1. goݴޠ • Standard package layout 2. dockerͰϗοτϦϩʔυ •
σϓϩΠ༻Πϝʔδ = ϩʔΧϧͷΠϝʔδ 3. DDDʹ։ൃ࣌ʹؾྗ͕͚࣋ͭؒͩଇΔ ίʔυ
Why Go? 1. ࣮༻తͳϗοτϦϩʔυͷ࿅श • realizeΛ༻͍ͨϗοτϦϩʔυ • DockerΠϝʔδ࡞ˠϩʔΧϧىಈ 2. ࣮ߦ
3. *͕ͭ͘ͱͪΐͬͱมΘΔʢϙΠϯλతͳҙຯͰʣ ܾͯ͠RailsΛ͍ͨ͘ͳ͔͔ͬͨΒͱ͔Ͱͳ͍
What’s DDD? • ΤΠϓϦϧϑʔϧͳͷͰӕͭ͘ • ͍͍ͩͨ͜Μͳײ͡
What’s DDD? • ΤΠϓϦϧϑʔϧͳͷͰӕͭ͘ • ͍͍ͩͨ͜Μͳײ͡ ґଘؔͷ໌֬ͳ͕Մೳ
Standard Package Layout ϧʔτύοέʔδυϝΠϯλΠϓͷͨΊʹ ଘࡏ͢Δ 3PVUFS 4FSWJDF 3FQPTJUPSZ *OGSBTUSVDUVSF .Z42-
*OUFSGBDF NBJO 4FSWJDF 3FQPTJUPSZ Handler Service Action Entity Call DB ORM
Standard Package Layout ϧʔτύοέʔδυϝΠϯλΠϓͷͨΊʹ ଘࡏ͢Δ 3PVUFS 4FSWJDF 3FQPTJUPSZ *OGSBTUSVDUVSF .Z42-
*OUFSGBDF NBJO 4FSWJDF 3FQPTJUPSZ Handler Service Action Entity Call DB ORM DDDͱ ͷ ૬ ੑ ͕ ྑ ͍
͜͏͍ͤͣ localhost:8080 localhost:3306 "DUJPO)BOESJOH ΅͘ͷͺͦ͜Μ
LINEBotͰͰ͖Δ͜ͱ
ΞΫγϣϯςϯϓϨʔτ ֬ೝςϯϓϨʔτ ϘλϯςϯϓϨʔτ ΧϧʔηϧςϯϓϨʔτ બςϯϓϨʔτ ͳͲ
Ϧονϝχϡʔ
Ϧονϝχϡʔ • LINE@ίϯιʔϧ͔ΒઃఆՄೳ
ࠓճ͜ͷลΛશྗͰར༻ • ϢʔβʔʹίϚϯυΛ֮͑ͤͨ͘͞ͳ͍ • ײతʹૢ࡞͍ͨ͠ • ී௨ʹͬͯΈ͍ͨ • ઃఆΛָʹ͍ͨ͠
શମతʹࡶʁ
શମతʹࡶʁ
·ͱΊ • LTձͰʹཱͪͦ͏ͳbotΛ࡞Γ·ͨ͠ • LINEBot͍͢͝ • ׂͱଟػೳ • ͿͬͪΌ͚͜ΜͳʹϦονͳΈʹ͢Δඞཁͳ͔ͬͨ •
ngrokΫιศར • ߏ͏গ͠ਪᏏ͕ඞཁ͔ͳ͊
·ͱΊ • LTձͰʹཱͪͦ͏ͳbotΛ࡞Γ·ͨ͠ • LINEBot͍͢͝ • ׂͱଟػೳ • ͿͬͪΌ͚͜ΜͳʹϦονͳΈʹ͢Δඞཁͳ͔ͬͨ •
ngrokΫιศར • ߏ͏গ͠ਪᏏ͕ඞཁ͔ͳ͊ ί ϯ τ Ϧ Ϗϡ ʔ λ ʔ ਵ ࣌ ื ू ͯ͠ · ͢
Πϯλʔϯ ͓͔ͭΕ͞·ʂ