DONEC QUIS NUNC
CLEAN ARCHITECTURE
• Independent of Frameworks
• Independent of UI
• Independent of Database
• Independent of Everything
• Testable
Slide 5
Slide 5 text
COMPONENTS
CLEAN ARCHITECTURE
• ENTITIES
Enterprise Business Rules
• INTERACTORS
Application Business Rules
• INTERFACE ADAPTORS
Convert Data
• FRAMEWORKS
Implementation Details
Slide 6
Slide 6 text
ONLY THE ‘C’ OF YOUR VIEW, NOT YOUR BUSINESS
UIVIEWCONTROLLER
• viewDidLoad:
• viewWillAppear:
• viewDidAppear:
• viewWillDisappear:
• viewDidDisappear:
• viewWillLayoutSubviews:
• viewDidLayoutSubviews:
FIXTURES
ACCEPTANCE
TESTS
INTERACTOR
PRESENTER
BUSINESS LOGIC
ADAPTORS FRAMEWORKS
TEST DATA
ENTITIES
UI
Slide 9
Slide 9 text
WKINTERFACECONTROLLER
WKINTERFACEOBJECT
INTERACTOR
PRESENTER
BUSINESS LOGIC
ADAPTORS FRAMEWORKS
TEST DATA
ENTITIES
UI
Slide 10
Slide 10 text
THE LONGER IT TAKES TO
READ AND UNDERSTAND A
TEST THE MORE TIME IS
WASTED AND LESS TIME
FOR PRODUCTIVE WORK
Slide 11
Slide 11 text
UNDERSTANDABILITY OF
CONTEXT AND FOCUS
SHORTCUT FOR TESTS
PERCEIVED PRESSURE
TIME FOR PRODUCTIVE
WORK
AMOUNT OF WASTED TIME
TIME TO UNDERSTAND
INTENT
Negative Effect
Management Effect
Positive Effect
VALUE OF INTENT REVEALING TESTS
Slide 12
Slide 12 text
COSY HOME
SPECIFICATION WORKSHOP
Slide 13
Slide 13 text
— COSY HOME, PRODUCT OWNER.
COSY HOME HAS THREE TEMPERATURE SETTINGS
SLUMBER, COMFY, COSY. IN THAT ORDER EACH
SETTING MUST BE GREATER THAN THE LAST, BUT
NOT GREATER THAN 30 DEGREES.
”
“
Slide 14
Slide 14 text
”
“
— Fred Brooks, The Mythical Man Month.
“SHOW ME YOUR FLOWCHARTS AND
CONCEAL YOUR TABLES, AND I SHALL
CONTINUE TO BE MYSTIFIED. SHOW ME
YOUR TABLES, AND I WON’T USUALLY NEED
YOUR FLOWCHARTS; THEY’LL BE OBVIOUS.”
Slide 15
Slide 15 text
BUSINESS
DEVELOPER
TESTER
Slide 16
Slide 16 text
DOUBLE LOOP
TDD
Slide 17
Slide 17 text
EMILY BACHE, CODING-IS-LIKE-COOKING.INFO
DOUBLE LOOP TDD
WRITE A FAILING
ACCEPTANCE TESTS
WRITE A FAILING
UNIT TEST
MAKE THE TEST
PASS
REFACTOR
Minutes
Days
Slide 18
Slide 18 text
HEATINGSTATE
COSY HOME
Slide 19
Slide 19 text
TESTING PYRAMID
FULL STACK
Slide 20
Slide 20 text
DOesN’t scAle (sLow, fRagIle, cOmpLex)
TOo HarD eXerCisE tHe BusIneSs LogIc
TErrIblE dEfeCt LocAliSatIon
ABanDonEd, reVerT tO mAnuAl TesTing
Slide 21
Slide 21 text
XCUITEST
Proceed with caution
Slide 22
Slide 22 text
THANK-YOU
Slide 23
Slide 23 text
cleancoders.com/videos/clean-code
Slide 24
Slide 24 text
Rock-Solid, Fast Acceptance Testing on iOS
stringerstheory.net/acceptance-testing-with-ios
@paulstringer
[email protected]