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
hidenorigoto
March 25, 2016
Programming
0
840
社内勉強会資料 オートマトン超入門
カルテットコミュニケーションズ社内勉強会 2016年3月
hidenorigoto
March 25, 2016
Tweet
Share
More Decks by hidenorigoto
See All by hidenorigoto
ドメインと向き合う - 旅行予約編
hidenorigoto
4
880
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
9
3.1k
メルカリ バックエンド領域のこれまでとこれから
hidenorigoto
1
500
メルカリのエンジニアリング組織の変化〜Engineering Managerの視点から〜
hidenorigoto
0
8.3k
The changes of the engineering organization in Mercari - from the view of an engineering manager -
hidenorigoto
0
300
PHPerKaigi 2019 ランチセッション (3/31)
hidenorigoto
1
4.1k
抽象化って何? (What is abstraction?)
hidenorigoto
9
4.6k
抽象化って何? (What is abstraction?)
hidenorigoto
11
6.9k
続・SOLIDの原則ってどんなふうに使うの? 〜オープン・クローズドの原則 センパイのコーディングノート編〜
hidenorigoto
14
6k
Other Decks in Programming
See All in Programming
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
6
930
AI時代のリアーキテクチャ戦略 / Re-architecture Strategy in the AI Era
dachi023
0
190
生成AI時代のフルスタック開発
kenn
10
2.6k
Design Pressure
hynek
0
1.4k
CRUD から CQRS へ ~ 分離が可能にする柔軟性
tkawae
0
220
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
120
イベントソーシングとAIの親和性ー物語とLLMに理解できるデータ
tomohisa
1
160
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
220
"使いづらい" をリバースエンジニアリングする UI の読み解き方
rebase_engineering
0
110
tsconfigのオプションで変わる型世界
keisukeikeda
1
120
Interface vs Types ~型推論が過多推論~
hirokiomote
1
230
Rethinking Data Access: The New httpResource in Angular
manfredsteyer
PRO
0
210
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
The World Runs on Bad Software
bkeepers
PRO
68
11k
KATA
mclloyd
29
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.8k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Adopting Sorbet at Scale
ufuk
76
9.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Building Applications with DynamoDB
mza
95
6.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Practical Orchestrator
shlominoach
188
11k
Transcript
ΦʔτϚτϯೖ Χϧςοτίϛϡχέʔγϣϯζɹޙ౻लએ IJEFOPSJHPUP!HNBJMDPN Χϧςοτίϛϡχέʔγϣϯζ։ൃ෦ ࣾษڧձ ฉ͍ͨ͜ͱ͋Δʂ͘Β͍ʹͳΕΔ
IUUQEFWFMPQFSDZCP[VDPKQBLLZ[VOEPLP LJZPTIJJOQIQBOEGTN
༗ݶΦʔτϚτϯʢ8JLJQFEJBʣ ༗ݶΦʔτϚτϯʢΏ͏͛Μɺӳ pOJUF BVUPNBUPO '" ·ͨ༗ݶঢ়ଶػցʢΏ͏͛Μ ͡ΐ͏͍͖͔͍ͨɺӳ pOJUF
TUBUF NBDIJOF '4.ʣͱɺ༗ݶݸͷঢ়ଶͱભҠͱಈ࡞ͷΈ ߹Θ͔ͤΒͳΔֶతʹநԽ͞Εͨʮ;Δ· ͍ͷϞσϧʯͰ͋Δɻ
l͜ͷΦʔτϚτϯͱܗ ࣜจ๏ʹؔ͢Δ֓೦ɺ ίϯύΠϥࣗવݴޠॲ ཧͳͲͷใՊֶͰ ͘༻͍ΒΕ͓ͯΓɺ ใܥͰֶͿਓʹͱͬͯ ඞ ཁ ෆ Մ
ܽ ͷ ࣝ Ͱ ͋ Δɻz
γϯϓϧʹݴ͏ͱ ΦʔτϚτϯʹ ίϯϐϡʔλՊֶͰ͍͏ʮܭࢉʯͷ ݪཧΛදֶ͢తϞσϧͷ૯শ
ΦʔτϚτϯͷྨ w ௨ৗʢελοΫͳ͠ʣʗϓογϡμϯʗνϡʔϦ ϯάػց w ܾఆੑʗඇܾఆੑ w มػցʗೝࣝػց
ϓογϡμϯʗνϡʔϦϯάػց w ௨ৗɺΦʔτϚτϯͱ͍͏ͱɺೖྗͱݱࡏͷঢ়ଶͷ ΈΛҾͱͯ͠ѻ͏ؔɻελοΫΛ࣋ͨͳ͍ɻ w ελοΫΛ࣋ͪɺঢ়ଶભҠ࣌ʹελοΫ࡞༻Ͱ͖ ΔΑ͏ʹͨ͠ͷΛϓογϡμϯɾΦʔτϚτϯ ͱݺͿ w ελοΫͰͳ͘ҙͷಡΈॻ͖ՄೳஔΛ༗͢Δ
Α͏ʹͨ͠ͷΛνϡʔϦϯάػցͱݺͿɻ
ܾఆੑʗඇܾఆੑ w ܾఆੑ༗ݶΦʔτϚτϯ w ঢ়ଶͱೖྗͷʹରͯ͠ɺߴʑҰ͔ͭ͠ঢ়ଶભҠ ͕ఆΊΒΕ͍ͯͳ͍ w ඇܾఆੑ༗ݶΦʔτϚτϯ w ঢ়ଶͱೖྗͷʹରͯ͠ෳͷঢ়ଶભҠ͕ఆΊΒ
Ε͍ͯΔ
มػցʗೝࣝػց w มػց w ೖྗΛܭࢉͯ͠ɺग़ྗΛಘΔ w ೝࣝػց w ೖྗ͕डཧ͞ΕΔ͔ɺ͞Εͳ͍͔ͷΈΛฦ͢ w
ೝࣝػցͰडཧ͞ΕΔه߸ྻΛʮडཧ͢Δه߸ྻʯ w डཧ͢Δه߸ྻͷू߹Λʮೝࣝ͢ΔݴޠʯͱݺͿ
ΦʔτϚτϯͷֶతఆٛ w ఆٛঢ়ଶભҠؔʢ༗ݶΦʔτϚτϯʣ w ༗ݶΦʔτϚτϯͷঢ়ଶભҠؔМɺঢ়ଶQ˥2ͱೖྗB˥Єʹ ରͯ͠ɺ࣍ͷঢ়ଶR˥2ΛఆΊΔؔͰ͋ΓɺҎԼͷΑ͏ʹද͞Ε Δɻ ɹМ Q B
R w ఆٛ༗ݶΦʔτϚτϯ w ༗ݶΦʔτϚτϯ.ɺࡾͭͷू߹2ɺЄɺ'ͱɺಛผͳঢ়ଶ R˥2ɺ͓ΑͼɺؔМΛࢦఆ͢Δ͜ͱʹΑΓఆ·ΔܭࢉͷϞσϧ Ͱ͋ΓɺҎԼͷΑ͏ʹද͞ΕΔɻ ɹ. 2 Є М R ' ʰ͡ΊֶͯͿΦʔτϚτϯͱݴޠཧʱQ
࣮ࡍͷྫ
w ࣗಈൢചػ w ਓͷࣧౄਂ͍ w ζϯυί
ࣗಈൢചػ IUUQXXXGFTJLFODPNLBLPNPO@IBSVRIUNM
w ঢ়ଶɿݸʢ͏ͪɺ&͕डཧঢ়ଶʣ w ঢ়ଶભҠؔɿ্ͷͱ͓Γ w ॳظঢ়ଶɿ2 w ೖྗɿԁɺԁɺԁʢͭʣ ܾఆੑ༗ݶ ΦʔτϚτϯ
ਓͷࣧౄਂ͍ ɹ ͷ්͕ΛΒͳ͚ΕͳΒͳ͍ɻस͋Δ ͕Ұʹਓ·Ͱ͔͠Εͳ͍ͷͱ͢Δɻ͞Βʹ ͍͜͜͠ͱʹɺͲͪΒͷେมࣧౄਂ͍ͷͰɺࣗ ͕͍ͳ͍ͱ͖ʹࣗͷ࠺ͱ૬खͷ͕Ұॹʹ͍Δ͜ ͱΛ·ͳ͍ɻ͜ͷ݅ͷԼͰΛΔ͜ͱͰ͖Δ ͔ʁ ʰΞϧΰϦζϜύζϧϓϩάϥϚͷͨΊͷֶύζϧೖʱQ
༷ʑͳঢ়ଶ ্͑͛ )) 88 ˔ )) 88 ˔ ) 88
˔ ) ) 8 ˔ ) 8 ॳظঢ়ଶ ࠷ऴঢ়ଶ ෆՄ ෆՄ ) 8 ˔ ) 8 ঢ়ଶ: 88 ˔ )) ঢ়ଶ9 ɿ
ঢ়ଶۭؒάϥϑ ܾఆੑ༗ݶ ΦʔτϚτϯ w डཧঢ়ଶ౸ୡ͢Δܦ࿏ Λ୳ࡧ͢Δ w ঢ়ଶͱೖྗͷ྆ํʹ݅ ͕ద༻͞ΕΔ w
࠷ճͷભҠͰडཧঢ় ଶ౸ୡ͢Δ͜ͱ͕อূ ͞ΕΔ
ζϯυί w ༗ݶΦʔτϚτϯͰղ͘ʹɺͲ͏ϞσϧԽ͢Δ͔ʁ w ظ͢Δΰʔϧ౸ୡ͢ΔભҠʹඞཁͳঢ়ଶ͚ͩ ϐοΫΞοϓ͢Δ w डཧ͠ͳ͍ঢ়ଶΛʮυίճʯʹٵऩ w ʮζϯυίζϯʯ࠷ॳ͔Βআ֎
IUUQEFWFMPQFSDZCP[VDPKQBLLZ[VOEPLP LJZPTIJJOQIQBOEGTN ζϯ υί ζϯ ζϯ ζϯ υί ζϯ υί
ζϯ υί υί ζϯ ܾఆੑ༗ݶ ΦʔτϚτϯ ೝࣝػց ঢ়ଶݸ
ͱ͜ΖͰ w ΦʔτϚτϯͰ Λղ͘ʹɺ ΦʔτϚτϯʢঢ় ଶɺભҠؔʣ ΛఆٛͰ͖ͳ͚ ΕͳΒͳ͍ɻ
ʢ͓·͚ʣζϯυίʢޙ౻ղʣ w ζϯζϯζϯζϯυίɹ?ύλʔϯ w ϏοτͰશύλʔϯཏɻϏοτύλʔϯΛͦͷ··֤ঢ়ଶʹ ׂΓͯΔ w ζϯυίυίζϯυίʹ w ೖྗه߸͔Βͷঢ়ଶભҠ
ɹˠঢ়ଶͷϏοτࠨγϑτʴཧ w ঢ়ଶʹͳͬͨΒऴྃ ऴྃہ໘ΛμΠϨΫτʹ ఆ͢Δํ๏͕ʢ͜ΕҎ ֎ʹʣແʹ͋ΔͨΊ ΦʔτϚτϯΛ͏·Ͱ ͳ͍؆୯ͳɾɾɾ UXFFUʹ͓͞ΊΔͨΊʹ͘͢Δͷ͕తͷղ๏
ΦʔτϚτϯͷ͍ॴ w ঢ়ଶʗܦ࿏ͷѻ͍͕த৺ͱͳΔ w ύλʔϯΛמΓࠐΊΔάϥϑ w ʮදʯͰද͍ͯ͠ΔΑ͏ͳʢঢ়ଶભҠදʣ w ܗࣜݴޠ w
ਖ਼نදݱίϯύΠϥ ࢲݟ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ࣍ճ͜ͷܥ౷͕ଓ͘ʂ
ࢀߟจݙ w ౻ݪڿஶʰ͡ΊֶͯͿΦʔτϚτϯͱݴޠཧ ʱग़൛גࣜձࣾ