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
450
Other Decks in Programming
See All in Programming
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.3k
CSC307 Lecture 01
javiergs
PRO
0
690
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
100
Data-Centric Kaggle
isax1015
2
780
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
AtCoder Conference 2025
shindannin
0
1.1k
Oxlint JS plugins
kazupon
1
970
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Building Adaptive Systems
keathley
44
2.9k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
Building a Scalable Design System with Sketch
lauravandoore
463
34k
4 Signs Your Business is Dying
shpigford
187
22k
Testing 201, or: Great Expectations
jmmastey
46
8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
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