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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hirokazu Maruta
June 21, 2019
Technology
55
0
Share
surprise-lt-for-intern-vol-1
インターン生の課題がLINEBot作成だったので、インターン生が制作物の発表を終えた後に社員からのサプライズLTとして登壇しました。
Hirokazu Maruta
June 21, 2019
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
encryption
mochisuna
0
120
わかった気になるチューリングマシン
mochisuna
0
57
Elementary algorithm
mochisuna
0
29
ssh-dynamic-forward
mochisuna
0
64
ServerlessFramework-Trello
mochisuna
0
35
TechBash Slack Reaction Award
mochisuna
0
49
techbash-clasp
mochisuna
0
99
vuejs-night-publish
mochisuna
0
1.2k
surprise-lt-for-intern-vol-2
mochisuna
0
58
Other Decks in Technology
See All in Technology
GitHub Copilot のこれまでとこれから: From Copilot to Collaborative Agents
yuriemori
1
180
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
410
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
140
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
1
560
Typiaで配信JSONの安全性を構造的に担保する(TSKaigi2026)
righttouch
PRO
1
170
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
120
EdgeプロファイルでAWSアカウントを安全に使い分ける
jhashimoto
0
100
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
280
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
860
ソフトウェアサプライチェーン攻撃対策として今からサクッとできること
flatt_security
2
130
oracle-to-databricks-migration-with-llm-and-dbt
casek
0
120
Node.js+TypeScriptにおけるCJS/ESM相互運用の最新ポイント
grainrigi
2
120
Featured
See All Featured
Abbi's Birthday
coloredviolet
2
7.7k
Thoughts on Productivity
jonyablonski
76
5.2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
180
sira's awesome portfolio website redesign presentation
elsirapls
0
250
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
From π to Pie charts
rasagy
0
190
Evolving SEO for Evolving Search Engines
ryanjones
0
200
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
340
New Earth Scene 8
popppiees
3
2.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Typedesign – Prime Four
hannesfritz
42
3k
Odyssey Design
rkendrick25
PRO
2
630
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Ϋιศར • ߏ͏গ͠ਪᏏ͕ඞཁ͔ͳ͊ ί ϯ τ Ϧ Ϗϡ ʔ λ ʔ ਵ ࣌ ื ू ͯ͠ · ͢
Πϯλʔϯ ͓͔ͭΕ͞·ʂ