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
Optional(2018)年...その後
Search
Hideaki Tamai
July 26, 2018
Technology
3
1.1k
Optional(2018)年...その後
Hideaki Tamai
July 26, 2018
Tweet
Share
More Decks by Hideaki Tamai
See All by Hideaki Tamai
スタブを活用したデバッグメニュー / Debug Menu Using Stubs
tamadon
0
90
iOS版KyashにMock Frameworkを導入した話 / Introducing Kyash iOS Test Cases 2020
tamadon
1
2.3k
クロスグレードの実装とつらみの話
tamadon
3
1.1k
子育てエンジニアを支える技術
tamadon
3
6.3k
自作育児サポートアプリのその後
tamadon
1
2.2k
子育てエンジニアの家庭内生存戦略
tamadon
5
2.7k
ジモティー紹介
tamadon
0
1.3k
ジモティーのSEO
tamadon
0
1.5k
Other Decks in Technology
See All in Technology
20250929_QaaS_vol20
mura_shin
0
110
インサイト情報からどこまで自動化できるか試してみた
takas0522
0
130
VCC 2025 Write-up
bata_24
0
150
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
570
Green Tea Garbage Collector の今
zchee
PRO
2
380
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
310
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
230
Tomorrow graphlib, Let us use everybody
hayaosuzuki
0
160
全てGoで作るP2P対戦ゲーム入門
ponyo877
3
1.3k
生成AIを活用したZennの取り組み事例
ryosukeigarashi
0
180
多野優介
tanoyusuke
1
170
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
180
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Speed Design
sergeychernyshev
32
1.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Music & Morning Musume
bryan
46
6.8k
Facilitating Awesome Meetings
lara
56
6.6k
Automating Front-end Workflow
addyosmani
1371
200k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
GraphQLとの向き合い方2022年版
quramy
49
14k
Become a Pro
speakerdeck
PRO
29
5.5k
Transcript
0QUJPOBM ͦͷޙ )JEFBLJ5BNBJ 1PUBUPUJQT+VMZ
ࣗݾհ )JEFBLJ5BNBJ ɾ.POFZ'PSXBSE *OD ɾJ04ΞϓϦΤϯδχΞ ɾ͘͘͢͢ʂࢠҭͯΤϯδχΞ.FFUVQ UBNBEPO !UBNBEPO
IUUQTNPOFZGPSXBSEDPNFOHJOFFST@CMPHPQUJPOBM 0QUJPOBM ͚͋·͓ͯ͠ΊͰͱ͏͍͟͝·͢
͜ΕΛػʹXBSOJOHΛ໓͘͢ ࣾJ04ΤϯδχΞ͕ ෦ॺΛӽ͑ͯऔΓΈ·ͨ͠ ௨ৗͷػೳ։ൃͱฒߦͯ͠ϲ݄
Before
ͬͨ͜ͱͦͷ̍ 4XJGU-JOU "VUPDPSSFDU
Πϯσϯτͷௐ͚͔ͩͱࢥͬͯͨΒɺ ؆୯ͳwarningमਖ਼ͯ͘͠Εͨ func validate(_ input :(hoge: Fuga)) throws -> Void
{ func validate(_ input :(hoge: Fuga)) throws {
None
ͬͨ͜ͱͦͷ̎ γϡοͱͤͦ͏ͳXBSOJOHΛফ͢
- public final class Hoge: Fuga { + public class
Hoge: Fuga { - network.request(request) { _ in } + _ = network.request(request) { _ in } ྫʣ͜͏͍͏ͭ
None
͋ͱͪͪ͘͘ಓʹ XBSOJOHΛͭͿ͍ͯͬͨ͠
ਏ͔ͬͨͭ
Ұ෦ͷϥΠϒϥϦ͕$PDPB1PET ܦ༝͡Όͳ͍ํ๏Ͱಋೖͯ͋͠Δ ʢେ$PDPB1PETܦ༝ʣ wͲͷόʔδϣϯΛͬͯΔ͔͔Βͳ͍ͷͰ࠷৽ʹΞο ϓσʔτͨ࣌͠ͷӨڹൣғ͕ݟ͑ͣɺΞοϓσʔτ͠ ͯྑ͍ͷ͔ෆ໌ w͔͠Ұ෦ಠ࣮ࣗΛՃͯͬͯ͠Δͭ͋Δ
ಠ࣮ࣗΛՃͯ͠ͳ͍ ϥΠϒϥϦ wϥΠϒϥϦͷόʔδϣϯΛίϛοτϩά͔Βਪଌ ͠ӨڹൣғΛௐࠪ w$PDPB1PETʹҠߦ
ಠ࣮ࣗΛՃͯ͠Δ ϥΠϒϥϦ w൚༻తͳػೳՃͩͬͨͷͰɺϥΠϒϥϦΛGPSL͠ ͯຊՈʹQVMMSFRVFTUΛग़ͨ͠ wऔΓࠐ·Εͳ͔ͬͨϥΠϒϥϦGPSLFESFQPTJUPSZ ͷϥΠϒϥϦΛ$PDPB1PETͰΠϯετʔϧ
After
Before
After Ϗϧυʹ͔͔Δ͕࣌ؒϝνϟॖ͞Εͨ XBSOJOHআ͚ͩͰͳ͘ɺ4XJGUରԠ ίϯύΠϧΦϓγϣϯͷมߋޮՌ͕͋ͬͨͱࢥΘΕΔ
࠷ޙͷXBSOJOH ՝ۚͷϨγʔτ͕J04ܗࣜ ˠݱࡏରԠத
XBSOJOHΛ૿͞ͳ͍ औΓΈ
Ұྫ ɾϏϧυ࣌ʹ4XJGU-JOU"VUPDPSSFDU࣮ߦ ɾϏϧυʹNTҎ্͔͔͍ͬͯΔॲཧͰXBSOJOH ɾ4JEFSʢNJTTQFMMʣಋೖ ɾ%BOHFSಋೖ
·ͱΊ w ݹ͔͘Βӡ༻͞Ε͍ͯΔϓϩμΫτͰؤுͬͯऔΓΊɺXBSOJOHΛ ΄΅̌ʹग़དྷΔ w ϏϧυॖͷऔΓΈग़དྷͯϏϧυ͕࣌ؒ·Ͱॖग़དྷͨ w ෦ॺΛ·͍ͨͰXBSOJOH໓ʹऔΓΜͩͷͰɺࣾͷJ04ΤϯδχΞͰ XBSOJOHϦϑΝΫλϦϯάʹର͢Δҙ͕ࣝߴ·ͬͨ w
XBSOJOHΛݮΒͯ͠ຬ͢ΔͷͰͳ͘ɺ૿͞ͳ͍Έͷߏங͕େࣄ
͝ਗ਼ௌ͋Γ͕ͱ͏͟͝ ͍·ͨ͠