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
Embedded frameworkを利用して既存プロジェクトでも爆速でTDD
Search
shindyu
March 26, 2019
Technology
2
990
Embedded frameworkを利用して既存プロジェクトでも爆速でTDD
shindyu
March 26, 2019
Tweet
Share
More Decks by shindyu
See All by shindyu
iPhone へのマイナンバーカード搭載におけるデータ規格についての理解を深める
shindyu
2
1.7k
DI-antiPattern.pdf
shindyu
0
81
テスト駆動で会社アプリと個人アプリを開発してみて思ったこと
shindyu
0
720
Other Decks in Technology
See All in Technology
OSSで50の競合と戦うためにやったこと
yamadashy
3
970
もう外には出ない。より快適なフルリモート環境を目指して
mottyzzz
13
9.8k
AIプロダクトのプロンプト実践テクニック / Practical Techniques for AI Product Prompts
saka2jp
0
100
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
180
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
180
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
850
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
140
ヘンリー会社紹介資料(エンジニア向け) / company deck for engineer
henryofficial
0
340
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
380
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
1
170
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
2
2.2k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Site-Speed That Sticks
csswizardry
13
920
Faster Mobile Websites
deanohume
310
31k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
A designer walks into a library…
pauljervisheath
209
24k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Visualization
eitanlees
149
16k
Transcript
iOS #5 Copyright © 2019 Yahoo Japan Corporation. All Rights
Reserved. Embedded frameworkΛར༻ͯ͠طଘϓϩδΣΫτͰരͰTDD 2019.03.26[TUE] @LODGE Ϡϑʔגࣜձࣾ ৽ಊ ܟོ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ৽ಊ
ܟོ ϠϑΦΫ! iOSΤϯδχΞ TDD, PairPrograming @shindyu
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. એʂ
@ٕज़ॻయ̑ ͞ΘֶͬͯΔ! iOSςετۦಈ։ൃ https://booth.pm/ja/items/1040471
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. TDDͯ͠·͔͢ʁ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ϠϑΦΫ!
iOS • 2010͔Β։ൃ։࢝ • Swift: 20ສߦ / Objc: 11ສߦ • 2017ࠒ͔Β։ൃख๏ʹXPಋೖ ɹˠ TDDʴϖΞϓϩ ɹˠ test 3500έʔεҎ্
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. XPΛಋೖ͔ͯ͠Β
ϖΞϓϩɾϖΞϩʔς͢Δ͜ͱͰνʔϜͷٕज़ྗUP ίʔυϨϏϡʔͷετϨε͔Βղ์ TDDʹΑΔ৺ཧత҆શ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. XPΛಋೖ͔ͯ͠Β
ϖΞϓϩ͢Δ͜ͱͰνʔϜͷٕज़ྗUP ίʔυϨϏϡʔͷετϨε͔Βղ์ TDDʹΑΔ৺ཧత҆શ TDDͰRed, Green, RefactorͷϦζϜ͕େࣄ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. XPΛಋೖ͔ͯ͠Β
ϖΞϓϩ͢Δ͜ͱͰνʔϜͷٕज़ྗUP ίʔυϨϏϡʔͷετϨε͔Βղ์ TDDʹΑΔ৺ཧత҆શ TDDͰRed, Green, RefactorͷϦζϜ͕େࣄ ⚠ςετͷϏϧυ/࣮ߦ͕࣌ؒ૿Ճ⚠ → ϖΞϓϩͰͷίετഒ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. CleanArchitecture
+ Embedded frameworkΛ࠾༻
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. CleanArchitecture
+ Embedded frameworkΛ࠾༻ CleanArchitectureͰΛׂ → ׂ͕͞ΕΔ͜ͱͰςετ͕༰қʹͳΔ ׂͨ͠ϞδϡʔϧΛEmbedded frameworkʹ → λʔήοτׂ͢Δ͜ͱͰϏϧυ͕࣌ؒॖ͞ΕΔ → είʔϓ͕খ͘͞ͳͬͯࠩϏϧυޮ͖͘͢ͳΔ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ܭଌ݁Ռ
ΫϦʔϯϏϧυ࣌ؒʢFramework: 6000ߦʣ App: 530s Framework: 18s શςετ࣮ߦ࣌ؒʢApp: 3500case / Framework: 200caseʣ App: 102s Frameworkɿ1s
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. Project
files • App • View / Repository / … • Domain • Presenter / UseCase / Entity / … • PresenterͷςετΛް͍ͨ͘͠ͷͰ ͋͑ͯFrameworkଆʹஔ͍͍ͯΔ • ҎલView͔ΒςετΛॻ͍͍͕ͯͨ Presenter͔Βॻ͘Α͏ʹͨ͠
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. How
to TDD 1. PresenterTestsͰςετΛॻ͘ 2. PresenterTestsΛ௨͢ 3. UIͱPresenter,OutputΛܨ͙
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. How
to TDD 1. PresenterTestsͰςετΛॻ͘ 2. PresenterTestsΛ௨͢ 3. UIͱPresenter,OutputΛܨ͙ Presenter, UseCase, Outputͷ InterfaceΛߟ͑Δ 1SFTFOUFS5FTUTTXJGU
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. How
to TDD 1. PresenterTestsͰςετΛॻ͘ 2. PresenterTestsΛ௨͢ 3. UIͱPresenter,OutputΛܨ͙ PresenterProtocol, PresenterImpl, UseCaseProtocol, OutputProtocolͷ࣮
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. How
to TDD 1. PresenterTestsͰςετΛॻ͘ 2. PresenterTestsΛ௨͢ 3. UIͱPresenter,OutputΛܨ͙ UIEvent → Presenter Output → UIө
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. How
to TDD 1. PresenterTestsͰςετΛॻ͘ 2. PresenterTestsΛ௨͢ 3. UIͱPresenter,OutputΛܨ͙ UIEvent → Presenter Output → UIө ⌘+Ctrl+[ or ⌘+Ctrl+]
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ·ͱΊ
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ·ͱΊ
CleanArchitecture + Embedded FrameworkΛ࠾༻ͨ͠ طଘϓϩδΣΫτͰരͰTDDग़དྷΔΑ͏ʹͳͬͨ രTDDͰ։ൃޮUpʂ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠