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
950
Optional(2018)年...その後
Hideaki Tamai
July 26, 2018
Tweet
Share
More Decks by Hideaki Tamai
See All by Hideaki Tamai
iOS版KyashにMock Frameworkを導入した話 / Introducing Kyash iOS Test Cases 2020
tamadon
1
2k
クロスグレードの実装とつらみの話
tamadon
3
1k
子育てエンジニアを支える技術
tamadon
3
5.8k
自作育児サポートアプリのその後
tamadon
1
2k
子育てエンジニアの家庭内生存戦略
tamadon
5
2.5k
ジモティー紹介
tamadon
0
1.2k
ジモティーのSEO
tamadon
0
1.4k
Other Decks in Technology
See All in Technology
Git 研修 Basic【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
310
データ分析を支える技術 生成AI再入門
ishikawa_satoru
0
380
MySQLのロックの種類とその競合
yoku0825
6
1.6k
AWSでRAGを作る法方
sonoda_mj
1
140
LINE WORKSへ簡単通知!Incoming Webhookアプリの紹介
mmclsntr
0
110
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.3k
地理情報とAPIのトレンド
nagix
0
160
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
150
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
140
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
93
13k
The Language of Interfaces
destraynor
151
23k
Designing Experiences People Love
moore
136
23k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
The Mythical Team-Month
searls
217
43k
Faster Mobile Websites
deanohume
303
30k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
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ΛݮΒͯ͠ຬ͢ΔͷͰͳ͘ɺ૿͞ͳ͍Έͷߏங͕େࣄ
͝ਗ਼ௌ͋Γ͕ͱ͏͟͝ ͍·ͨ͠