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
How to manage data inconsistency
Search
kenkaton
January 29, 2020
Programming
1
240
How to manage data inconsistency
kenkaton
January 29, 2020
Tweet
Share
More Decks by kenkaton
See All by kenkaton
When we should use stub and mock
kenkaton
0
300
About Strict Memoization
kenkaton
0
440
Other Decks in Programming
See All in Programming
CSC305 Lecture 03
javiergs
PRO
0
240
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
170
CSC509 Lecture 01
javiergs
PRO
1
440
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
160
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
970
Devvox Belgium - Agentic AI Patterns
kdubois
1
100
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1.1k
What's new in Spring Modulith?
olivergierke
1
130
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
8
1.6k
CSC305 Lecture 06
javiergs
PRO
0
210
オープンソースソフトウェアへの解像度🔬
utam0k
11
2.3k
dynamic!
moro
10
7.1k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
Done Done
chrislema
185
16k
Become a Pro
speakerdeck
PRO
29
5.5k
Gamification - CAS2011
davidbonilla
81
5.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
How to train your dragon (web standard)
notwaldorf
96
6.3k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Practical Orchestrator
shlominoach
190
11k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
It's Worth the Effort
3n
187
28k
Transcript
Re:valua t ion https://fril.jp/ L ead & Delight User F
irst Ownership Fail Smart σʔλෆ߹ͱͷઓ͍
ࣗݾհ
!LFOLBUPO !LFOLBUPO ϥΫϚͰαʔόʔαΠυΛ த৺ʹΤϯδχΞͬͯΔຽ ࣗݾհ ͔ͱ͚Μ
ࣗݾհ ɾֶੜ࣌ ɹɹɹಓ͔ͨ͠͠هԱ͕ͳ͍ʑΛૹ͍͕ͬͯͨʜ
ࣗݾհ ɾͳ͔ͥͪΌ͔ͬΓͱ ɹɹɹɹอ݈ମҭͷڭһ໔ڐ͚ͩऔಘͯ͠ʜ
ࣗݾհ ɾؾ͍ͨΒ*5ۀքͰXFCΤϯδχΞΛ͍ͯͨ͠
ࣗݾհ͜ͷ͘Β͍ʹ͓͍ͯͯ͠
σʔλෆ߹ͱͷઓ͍
ࠓ͢͜ͱ w σʔλෆ߹ͷى͜Γͦ͏ͳέʔε w σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w
"TZODISPOPVT3FQBJS w ͓ΘΓʹ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε#
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃ
ᶃ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄ
ᶃ ᶄ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄ
ᶃ ᶄ %#Τϥʔ͡Όᶅ ᶅ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄᶆ
ᶃ ᶄ %#Τϥʔ͡Όᶅ ᶅ ᶆ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄᶆᶇ
ᶃ ᶄ %#Τϥʔ͡Όᶅ ᶅ ᶆ ᶇ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄᶆᶇᶈ
ᶃ ᶄ %#Τϥʔ͡Όᶅ ᶅ ᶆ ᶇ ᶈ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε όοΫΤϯυ ϑϩϯτΤϯυ %# αʔϏε" αʔϏε# /8Τϥʔ͡Όᶃᶄᶆᶇᶈ
ᶃ ᶄ %#Τϥʔ͡Όᶅ ᶅ ᶆ ᶇ ᶈ ॻ͖ࠐΈ͕ޭ͍ͯ͠Δͷʹࣦഊʂʁ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε Ϣʔβʔେࠞཚͷঢ়گΛ࡞Δ͜ͱʹޭ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃ ᶄ %#Τϥʔ͡Όᶄ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃᶅ ᶄ %#Τϥʔ͡Όᶄ ᶅ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃᶅ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃᶅᶇ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃᶅᶇᶈ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ ᶈ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε#
%#ᶃ ᶃ /8Τϥʔ͡Όᶃᶅᶇᶈᶉ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ ᶈ ᶉ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# ᶃ
/8Τϥʔ͡Όᶃᶅᶇᶈᶉᶊ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ %#ᶃ %#ᶄ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# ᶃ
/8Τϥʔ͡Όᶃᶅᶇᶈᶉᶊ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ %#ᶃ %#ᶄ ᶅᶆᶇ%#ᶃʹॻ͖ࠐΈޭˍ%#ᶄະॻ͖ࠐΈ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͍ɺݟࣄʹσʔλෆ߹ͷͰ͢
ࠓ͢͜ͱ w σʔλෆ߹ͷى͜Γͦ͏ͳέʔε w σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w
"TZODISPOPVT3FQBJS w ͓ΘΓʹ
σʔλෆ߹Λम෮͢Δ
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢ΔʢϦτϥΠʣ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε# %#ᶃ ॲཧʹࣦഊͨ͠ͷͳΒɺ"1*ϦΫΤετΛϦτϥΠͯ͠ΈΔͷ͡Ό
˞ͨͩ͠ɺΫϥΠΞϯτΤϥʔͷΑ͏ͳɺ ɹɹɹͦͦϦΫΤετࣗମ͕ޡ͍ͬͯΔ߹ແҙຯͳͷͰҙ
σʔλෆ߹Λम෮͢ΔʢϦτϥΠʣ SFUSZɺ SFTDVFઅͰCFHJOࣜΛ ͡Ί͔Β͏Ұ࣮ߦ͢Δͷʹ ༻͢Δͷ͡Ό IUUQTEPDTSVCZMBOHPSHKBMBUFTUEPDTQFDGDPOUSPMIUNMSFUSZ
σʔλෆ߹Λम෮͢ΔʢϦτϥΠʣ ͋ΕɺͰ%#ͷॻ͖ࠐΈޭͯ͠Δ͚Ͳ Ϩεϙϯε͚ͩਖ਼ৗʹฦ͖ͬͯͯͳ͍߹͋ΔΑͶʜ
σʔλෆ߹ͷى͜Γͦ͏ͳέʔε ͏ͪΐ͍ෳࡶͳͷʜ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# ᶃ
/8Τϥʔ͡Όᶃᶅᶇᶈᶉᶊ ᶄ %#Τϥʔ͡Όᶄᶆ ᶅ ᶆ ᶇ ᶈ ᶉ ᶊ %#ᶃ %#ᶄ
σʔλෆ߹Λम෮͢ΔʢଟॏϦΫΤετͱಉҰੑʣ όοΫΤϯυ ϑϩϯτΤϯυ %#ᶄ αʔϏε" αʔϏε# %#ᶃ ޭͷϨεϙϯε͕ฦͬͯ͜ͳ͍߹Ͱɺ
ϦτϥΠʹΑͬͯσʔλ͕ෳ࡞͞ΕΔՄೳੑʜ
σʔλෆ߹Λम෮͢ΔʢଟॏϦΫΤετͱಉҰੑʣ ෳͷಉҰσʔλ͕࡞ΒΕΔ͔͠Εͳ͍ͱ͍͏͜ͱʜ ɹྫ͑ɺଟॏܾࡁ͕ߦΘΕͯ͠·͏ʜʂʂʂ ਂࠁͳຄൃʂlϦτϥΠzΊͬͪΌ͐ͭʂʂʂ
σʔλෆ߹Λम෮͢ΔʢଟॏϦΫΤετͱಉҰੑʣ ͱɺͳΒͳ͍ΜͰ͢ΑͶʔX ͦ͜Ͱग़ͯ͘Δͷ͕
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢Δʢ*EFNQPUFOU3FRVFTUTʣ *EFNQPUFOUͱ ɹႈੑ ͖ͱ͏͍ͤ ͷ͜ͱ ႈੑͱ ɹಉ͡ૢ࡞ΛԿ܁Γฦͯ͠ɺಉ݁͡Ռ͕ಘΒΕΔ ΄΄͒ʔ
σʔλෆ߹Λम෮͢Δʢ*EFNQPUFOU3FRVFTUTʣ ͭ·Γ*EFNQPUFOU3FRVFTUTͱ ͋ΔϦΫΤετΛԿճϦτϥΠͯ͠ɺৗʹ݁ՌҰॹʂ
σʔλෆ߹Λम෮͢Δʢ*EFNQPUFOU3FRVFTUTʣ ͭ·Γ*EFNQPUFOU3FRVFTUTͱ ͋ΔϦΫΤετΛԿճϦτϥΠͯ͠ɺৗʹ݁ՌҰॹʂ ͍ɺ͜Ε༏উͰ͢
σʔλෆ߹Λम෮͢Δʢ*EFNQPUFOU3FRVFTUTʣ *EFNQPUFOU3FRVFTUTʹ͍ͭͯ ɾΫϥΠΞϯτ͕ϢʔβͷೖྗΛͱʹ*EFNQPUFODZ,FZΛੜ ɾαʔό*EFNQPUFODZ,FZͰطଘͷσʔλͱॏෳ͠ͳ͍͔֬ೝ ɾಉҰͷ*EFNQPUFODZ,FZ͕ͳ͍߹৽ن࡞ɺ ɹɹಉҰͷͷ͕͋Δ߹σʔλ࡞͕ޭͷϨεϙϯεΛฦ͢
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ ͰੈͷதͷγεςϜ ɹͦΜͳʹ୯७͡Όͳ͍͜ͱ͕ଟ͍ͷ͡Ό ɹɹɹྫ͑ʜ ͱ΄΄
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# %#ᶃ %#ᶄ ֎෦"1*
%#ᶅ
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ ɾόοΫΤϯυႈੑΛ୲อ͢Δ࣮͕ඞཁ ɾҰॲཧશ͕ͯҰτϥϯβΫγϣϯͰ ɹɹྃͤ͞ΒΕΕ͍͍͕ݱ࣮తͳ࣮Ͱͳ͍
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# %#ᶃ %#ᶄ ֎෦"1*
%#ᶅ ˋ ˋ ˋ ʷʷ ͘Β͍
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ ղܾࡦͱͯ͠ʜ ɾτϥϯβΫγϣϯΛΑΓཻͷࡉ͔͍୯Ґʹׂ ɾͦΕʹ߹ΘͤͯϦτϥΠͷ୯Ґׂ ɾͲͷॲཧ·ͰਐΜͩͷ͔ஈ֊తʹཧͰ͖Δʂ
σʔλෆ߹Λम෮͢ΔʢτϥϯβΫγϣϯͷঢ়ଶཧʣ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# %#ᶃ %#ᶄ ֎෦"1*
%#ᶅ ˋ ˋ ˋ ʷʷ ͘Β͍
σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w ϦτϥΠ w ଟॏϦΫΤετͱಉҰੑ w
*EFNQPUFOU3FRVFTUT w τϥϯβΫγϣϯͷঢ়ଶཧ w "TZODISPOPVT3FQBJS w σʔλڝ߹ͷճආ
σʔλෆ߹Λम෮͢Δʢ"TZODISPOPVT3FQBJSʣ "TZODISPOPVTͱඇಉظͰ͋Δ ͭ·Γɺ ɾϦτϥΠΊͬͪΌ͚ͨ͠Ͳࠓແཧʂ ɾ͏ϦτϥΠͯ͠ҙຯͳ͍ͱݴΘΕ͔ͨΒ์ஔதʂ ͳॲཧΛޙ͔Βσʔλमਖ਼͢Δͷ͡Ό ͖ͬ͞τϥϯβΫγϣϯΛஈ֊తʹߦ͑ΔΑ͏ʹ͔ͨ͠Βͷ
σʔλෆ߹Λम෮͢Δʢ"TZODISPOPVT3FQBJSʣ όοΫΤϯυ ϑϩϯτΤϯυ αʔϏε" αʔϏε# %#ᶃ %#ᶄ ֎෦"1*
%#ᶅ ඇಉظ࣮ߦʹ ɾ"DUJWF+PC ɾ4JEFLJRͳͲ͏
σʔλෆ߹Λम෮͢Δʢσʔλڝ߹ͷճආʣ ҙ ɾඇಉظͰߦ͏ॲཧͱɺγεςϜͷϝΠϯͷ ɹॲཧͰσʔλ͕ڝ߹͠ͳ͍Α͏ʹ͢Δ ɾόονॲཧ͕ෳճॲཧΛͯ͠େৎͳΑ͏ʹ͢Δ ɹͬͱ͍͑ɺόον͕ෳಉ࣮࣌ߦͷ߹Ͱʜ
σʔλෆ߹Λम෮͢Δʢσʔλڝ߹ͷճආʣ ͳͥͳΒʜ $MPVE4DIFEVMFSͷυΩϡϝϯτ Ͳͷ࣌Λͱͬͯಉ͡δϣϒͷෳΠϯελϯε͕ಉ࣌ʹ࣮ߦ͞Εͳ͍Α͏ʹ͍ͯͩ͘͠͞ɻ·ͨɺ$MPVE4DIFEVMFS ɺʮগͳ͘ͱճʯΛجຊʹॲཧΛߦ͏Α͏ઃܭ͞Ε͍ͯ·͢ɻͭ·Γɺδϣϒ͕εέδϡʔϧ͞ΕΔͱɺ$MPVE 4DIFEVMFSͦͷδϣϒͷϦΫΤετΛগͳ͘ͱճૹ৴͠·͢ɻ·Εʹɺಉ͡δϣϒͷෳͷΠϯελϯε͕ϦΫ Τετ͞ΕΔՄೳੑ͕͋Γ·͢ɻ͜ͷͨΊϦΫΤετϋϯυϥ͖Ͱ͋Δඞཁ͕͋Γ·͢ɻ·ͨίʔυΛهड़͢Δࡍ ɺ͜ͷΑ͏ͳঢ়ଶ͕ൃੜͨ͠߹ʹ༗ͳ෭࡞༻͕ൃੜ͠ͳ͍Α͏ʹ͢Δඞཁ͕͋Γ·͢ɻ
ͱ͍͏͜ͱΒ͍͠ ͏Ή
ࠓ͢͜ͱ w σʔλෆ߹ͷى͜Γͦ͏ͳέʔε w σʔλෆ߹Λम෮͢Δ w 8SJUF3FQBJS w
"TZODISPOPVT3FQBJS w ͓ΘΓʹ
͓ΘΓʹ ·ͱΊΔͱ ɾσʔλෆ߹Λճආɾमਖ਼͢ΔͷΊͬͪΌେม ɾͰॲཧΛ࣮֬ʹ࣮ߦ͍ͨ͠ͱ͖ʹඞཁͳࣝ ɾΘͨ͠ઋਓʹͳΓ͍ͨ ͏Ή
͓ΘΓʹ ࢀߟࢿྉɿ IUUQTTZGNIBUFOBCMPHDPNFOUSZ ˢࢲ͕ࠓͨ͜͠ͱͷશ͕ͯ͜͜ʹॻ͍ͯ͋Γ·͢
None