NDC Oslo 2014: The integrations we fear and how we can manage them
-
Upload
karoline-klever -
Category
Technology
-
view
100 -
download
1
description
Transcript of NDC Oslo 2014: The integrations we fear and how we can manage them
The integrations we fear and how we can manage
themKaroline Klever
@karolikl
I fear badly written APIs
New_GetChanges()
New2_GetChanges()
Old_GetChanges()
Old_New_GetChanges()
Test_GetChanges()
I fear heavy payloads
I fear uneccessary complexity
I fear third party vendors who are unwilling to cooperate
«We’d rather you didn’t use our APIs as they require about 200 hours of
training»
Quote - Head of Account and Sales
The phases of integration projects
Setup
Implementation
The Setup phase
Find out who to talk to
Communicating the hard way
You
Project ManagerAccount Manager
Tech guy
Project Manager
Reducing the complexity of communication
You Tech guy
The Setup phase
Find out who to talk to
Ask for documentation
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
Get access to everything you need
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
Get access to everything you need
Demand a test environment
Start setting up as soon as possible
Current task Integration Something else
Deadline
Start setting up as soon as possible
Current task Integration Something else
Setup Implementation Something else
Deadline
Current task
Start setting up as soon as possible
Current task Integration Something else
Setup Implementation Something else
Deadline
Setup
Implementation Something else
Current task
Current task
Time consuming communication
Time consuming communication
22 emails
15 days
The phases of integration projects
Setup
Implementation
The Implementation phase
Badly written APIs
Heavy payloads
Uneccessary complexity
Third-party vendors unwilling to cooperate
Hard to maintain
The Implementation phase
Facade pattern
Integration tests
Logging
One facade, one API
ProductFacade.cs
Product API
One facade, several APIs
ProductInventoryFacade.cs
Product API Inventory API
Helper facades
InventoryFacade.cs
Product API ProductFacade.cs
Example: Without facades
Example: With facades
How does the facade look?
The Implementation phase
Facade pattern
Integration tests
Logging
What do I test?
Internal classes/subsystems
External components
Application Service Layer
Example: System under test
Example: Integration test
The Implementation phase
Facade pattern
Integration tests
Logging
Minimal logging
Lots of logging
Logging with PostSharp
OnMethodBoundaryAspect
Injecting code
Decompiled
PostSharp attribute
@karolikl