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
When we should use stub and mock
Search
kenkaton
July 31, 2020
0
210
When we should use stub and mock
kenkaton
July 31, 2020
Tweet
Share
More Decks by kenkaton
See All by kenkaton
How to manage data inconsistency
kenkaton
1
160
About Strict Memoization
kenkaton
0
330
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
How to name files
jennybc
62
92k
For a Future-Friendly Web
brad_frost
170
8.9k
GraphQLとの向き合い方2022年版
quramy
28
12k
GitHub's CSS Performance
jonrohan
1023
450k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Designing for Performance
lara
601
67k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Writing Fast Ruby
sferik
619
59k
In The Pink: A Labor of Love
frogandcode
137
21k
Transcript
Re:valua t ion https://fril.jp/ L ead & Delight User F
irst Ownership Fail Smart ґଘؔͷগͳ͍ςετͷॻ͖ํ
ࣗݾհ
!LFOLBUPO !LFOLBUPO ϥΫϚͰαʔόʔαΠυΛ த৺ʹΤϯδχΞͬͯΔຽ ࣗݾհ ͔ͱ͚Μ
ґଘؔͷগͳ͍ςετͷॻ͖ํ
ࠓ͢͜ͱ w ґଘؔͷ͋ΔςετͬͯԿͧʁ w ͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ w ελϒͰςετίʔυΛॻ͖͢ w
ࣅͨͷͰϞοΫͱ͔͍͏ݴ༿͋ΔΑͳ w ͓ΘΓʹ
ґଘؔͷ͋ΔςετͬͯԿͧʁ
ґଘؔͷ͋ΔςετͬͯԿͧʁ ͏ʔʔΜɺݴ༿Ͱઆ໌͕͍͠ͷͰ ࢲ͕ϋϚͬͨͷʹ͍ۙྫΛ࡞ͬͯΈ·ͨ͠ʂ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ લఏ ɾ͜͜ϙέϞϯͷੈքͰ͢ ɾͱ͍͏͜ͱɺϙέϞϯτϨʔφʔ͕ͨ͘͞Μ ɾϙέϞϯؔ࿈ͷࢪઃͨ͘͞Μ ɾ֤ࢪઃͷγεςϜվमΛΧτέϯ୲
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ֤ࢪઃͷγεςϜಠཱ͍ͯ͠Δ͕ʜ ϙέϞϯ ɹηϯλʔ ϙέϞϯ ɹδϜ ϠΝʔʔʂʂʂʂʂ ήʔϜ
ίʔφʔ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ֤ࢪઃͷγεςϜಠཱ͍ͯ͠Δ͕ʜ ൚༻తͳ෦ڞ௨Խ ϙέϞϯ ɹηϯλʔ ϙέϞϯ ɹδϜ ϠΝʔʔʂʂʂʂʂ
ήʔϜ ίʔφʔ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ֤ࢪઃͷγεςϜಠཱ͍ͯ͠Δ͕ʜ ൚༻తͳ෦ڞ௨Խ ϙέϞϯ ɹηϯλʔ ϙέϞϯ ɹδϜ ϠΝʔʔʂʂʂʂʂ
ήʔϜ ίʔφʔ 3BJMT" 3BJMT# 3BJMT$ Rails::Engine
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ Rails A, B, C
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ൚༻తͳ෦ڞ௨Խ Rails::Engine ڞ௨ॲཧͷྫɿ w 5SBJOFSNBTUFS w
USBJOFSTςʔϒϧʹNBTUFS@GMHΧϥϜ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ Rails::Engine
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ͕͔ͩ͠͠ɺϲ݄ޙʜ NBTUFSTςʔϒϧ࡞ͬͯ ɹॴଐδϜใ͍࣋ͨͤͨʂ USBJOFSTςʔϒϧͱNBUFSTςʔϒϧΛ ର̍Ͱඥ͚ʂ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ Rails::Engine
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ͢ΔͱʜͳΜͱʜ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ֤ࢪઃͷγεςϜͰʜ ϙέϞϯ ɹηϯλʔ ϙέϞϯ ɹδϜ ϠΝʔʔʂʂʂʂʂ ήʔϜ
ίʔφʔ ςετ͕௨Βͳ͘ͳͬͨʂʂ
͜Μͳײ͡ͰࢲϋϚͬͨΑɺͯͬ ͦΕͦͷͣɺͳͥͳΒʜ ɹ͜ͷΑ͏ͳFOHJOFͷ࣮༰ʹґଘͨ͠ςετͳΜ͔ͩΒͶ ʹΌΔ΄Ͳʂ
ελϒͰςετίʔυΛॻ͖͢
ελϒͰςετίʔυΛॻ͖͢ ՈͷๅɺελϒԽʂʂʂ ΄΄ʔ͏ʂ ελϒʹ͢Δ͜ͱͰ NBTUFS ͷ ɹ࣮༰ʹςετ͕ ɹɹɹґଘ͠ͳ͘ͳͬͨ
ελϒͰςετίʔυΛॻ͖͢ ͱ͜ΖͰελϒͬͯͳΜͶΜ
ελϒͰςετίʔυΛॻ͖͢ ελϒͱʜ ɹϝιουͷίʔυΛ࣮ࡍʹݺͼग़ͣ͞ʹϝιουΛݺͼग़͠ɺ ɹςετͰཉ͍͠Λฦ͢Α͏ʹ͢ΔͨΊͷࢦࣔͰ͢ɻ ʹΌΔ΄Ͳʂ
ελϒͰςετίʔυΛॻ͖͢ ࣅͨͷͰϞοΫͱ͔͍͏ݴ༿͋ΔΑͳ
ࣅͨͷͰϞοΫͱ͔͍͏ݴ༿͋ΔΑͳ ϞοΫͱʜ ɹಛఆͷϝιου͕࣮ߦ͞Ε͔ͨͲ͏͔Λ ɹҾසΛࢦఆͯ͠νΣοΫ͢ΔͷͰ͢ɻ ΄΄ʔ͏
ࣅͨͷͰϞοΫͱ͔͍͏ͷ͋ΔΑͳ ݴ༿Ͱઆ໌͞Ε͔ͯΒΜ͔ΒίʔυͰͦ͏ͳ ʹΌΔ΄Ͳʂ ʢίʔυ͕ςΩτʔ͗ͯ͢ ɹɹೣʹ͔͠ΘΒͳ͍Մೳੑʜʣ
ࣅͨͷͰϞοΫͱ͔͍͏ͷ͋ΔΑͳ ΊͬͪΌࡶʹҧ͍Λݴ͏ͱʜ ɹελϒɿຊདྷςετ͍ͨ͠ՕॴҎ֎Λ ɹɹɹɹɹɹɹͳΜͱͳ͍͍͘ײ͡ʹಈ͔͢ͷ ɹϞοΫɿςετ͍ͨ͠Օॴͦͷͷͷ ɹɹɹɹɹɹɹॲཧ͕هɾ֬ೝͰ͖Δͷ ΄΄ʔ͏ ͱݴͬͯ͘ΕʜͨͷΉʜ
ࣅͨͷͰϞοΫͱ͔͍͏ͷ͋ΔΑͳ ͜͏ͯ͠ϙέϞϯͷੈքฏʹͳͬͨͱ͞ ൚༻తͳ෦ڞ௨Խ ϙέϞϯ ɹηϯλʔ ϙέϞϯ ɹδϜ ϠΝʔʔʂʂʂʂʂ
ήʔϜ ίʔφʔ
͓ΘΓʹ
͓ΘΓʹ ·ͱΊΔͱ w ελϒͱ͔ϞοΫศརͩΑͶ w ґଘؔͷͳ͍ςετॻ͚ͪΌ͏ w Ͱ͏λΠϛϯάݟۃΊΑ͏Ͷ
w ςετͨͭ͠ΓͳͷʹͰ͖ͯͳ͍ͱ͔ٽ w ελϒͱϞοΫͷҧ͍Λશʹཧղͨ͠ΑͶ ͏Ή
͓ΘΓʹ ࢀߟࢿྉɿ w IUUQTUFDISBDIPCQTJODKQIBDIJ@@ w IUUQTUFDISBDIPCQTJODKQIBDIJ@@ w IUUQTUFDISBDIPCQTJODKQIBDIJ@@
w IUUQTRJJUBDPN4B,OJHIUJUFNTGDBBFEFCEBD
None