$30 off During Our Annual Pro Sale. View Details »
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
110
iOS版KyashにMock Frameworkを導入した話 / Introducing Kyash iOS Test Cases 2020
tamadon
1
2.4k
クロスグレードの実装とつらみの話
tamadon
3
1.2k
子育てエンジニアを支える技術
tamadon
3
6.4k
自作育児サポートアプリのその後
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
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
130
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
1.6k
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
980
特別捜査官等研修会
nomizone
0
450
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
720
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
180
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
190
Identity Management for Agentic AI 解説
fujie
0
290
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
3
220
高度サイバー人材育成専科(後半)
nomizone
0
260
SREには開発組織全体で向き合う
koh_naga
0
390
生成AI時代におけるグローバル戦略思考
taka_aki
0
210
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Become a Pro
speakerdeck
PRO
31
5.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
240
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
40
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
240
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Building an army of robots
kneath
306
46k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
BBQ
matthewcrist
89
9.9k
Building Applications with DynamoDB
mza
96
6.8k
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ΛݮΒͯ͠ຬ͢ΔͷͰͳ͘ɺ૿͞ͳ͍Έͷߏங͕େࣄ
͝ਗ਼ௌ͋Γ͕ͱ͏͟͝ ͍·ͨ͠