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
1k
Embedded frameworkを利用して既存プロジェクトでも爆速でTDD
shindyu
March 26, 2019
Tweet
Share
More Decks by shindyu
See All by shindyu
iPhone へのマイナンバーカード搭載におけるデータ規格についての理解を深める
shindyu
2
1.9k
DI-antiPattern.pdf
shindyu
0
90
テスト駆動で会社アプリと個人アプリを開発してみて思ったこと
shindyu
0
740
Other Decks in Technology
See All in Technology
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
510
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
140
2人で作ったAIダッシュボードが、開発組織の次の一手を照らした話― Cursor × SpecKit × 可視化の実践 ― Qiita AI Summit
noalisaai
1
330
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
4
2.2k
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
140
最速で価値を出すための プロダクトエンジニアのツッコミ術
kaacun
1
490
Digitization部 紹介資料
sansan33
PRO
1
6.7k
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
290
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
2
1.3k
Amazon Bedrock AgentCore EvaluationsでAIエージェントを評価してみよう!
yuu551
0
210
2026年はチャンキングを極める!
shibuiwilliam
8
1.8k
SMTP完全に理解した ✉️
yamatai1212
0
160
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
420
Thoughts on Productivity
jonyablonski
74
5k
The SEO identity crisis: Don't let AI make you average
varn
0
62
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
Tell your own story through comics
letsgokoyo
1
800
Statistics for Hackers
jakevdp
799
230k
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
110
30 Presentation Tips
portentint
PRO
1
200
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Bash Introduction
62gerente
615
210k
How to make the Groovebox
asonas
2
1.9k
What's in a price? How to price your products and services
michaelherold
247
13k
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ʂ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠